| // A test file used to try and hit all of the syntax highlighting edge cases. |
| // This file doesn't necessarily compile/represent valid FIDL syntax. |
| library highlighting.test; |
| |
| using foo.bar.baz as qux; |
| |
| type Bits = bits { |
| A = 1; |
| B = 2; |
| C = 3; |
| D = 4; |
| }; |
| |
| const binop uint8 = 1 | 2; |
| const binop Bits = Bits.A | Bits.B | 3 | Bits.D; |
| |
| const foo uint8 = 5; |
| |
| const hi string = "hi"; |
| const hello string = hi; |
| |
| @available(platform="foobar") |
| @available(added=HEAD) |
| @available(platform="all", added=9, deprecated=10, removed=SOME_CONST, note="foo") |
| @available(deprecated=1000) |
| @available(removed=1001, note="bar") |
| alias Foo = foo.bar.baz; |
| alias Bar = vector<string>; |
| alias Baz = Bar:10; |
| |
| alias OptionalChannel = zx.handle:optional; |
| alias OptionalChannelWithRights = zx.handle:<CHANNEL, zx.rights.DUPLICATE, optional>; |
| |
| type HandleConstraints = resource struct { |
| a zx.handle:VMO; |
| b zx.handle:<VMO>; |
| c zx.handle:<VMO, zx.rights.DUPLICATE | zx.rights.READ>; |
| d zx.handle:<VMO | CHANNEL, zx.rights.DUPLICATE | zx.rights.READ>; |
| e zx.handle:<VMO | CHANNEL, zx.rights.DUPLICATE | zx.rights.READ, 25, optional>; |
| }; |
| |
| // hi |
| type Foo = struct {}; |
| type Bar = resource struct {}; |
| type Baz = resource flexible union {}; |
| type Qux = resource flexible strict table {}; |
| type Yay = flexible enum : uint32 {}; // |
| |
| @foobar |
| type Foo = struct { |
| f1 Bar; |
| @barfoo |
| f2 flexible union { |
| // hi |
| 1: u1 Bar; // hi |
| 2: u2 vector<Foo>:<MY_SIZE, optional>; |
| 3: u3 struct {}; |
| @foobar("abc") |
| 4: reserved; |
| }; |
| f3 vector<struct { |
| // hi |
| f33 Bar; |
| }>:<10, optional>; // hi |
| // hi |
| f4 array<enum : uint32 { // hi |
| // hi |
| FOO = 1; |
| BAR = 2; |
| }, 5>; |
| f5 bits { |
| FOO = 0x01; |
| BAR = 0x02; |
| QUX = Bits.A; |
| }; |
| f6 string = "foo"; |
| }; |
| |
| @foo |
| @bar() |
| @foobar("hi") |
| @foo_bar(abc) |
| @foo_bar_(123) |
| @foobar_(1 | 2 | 3) |
| @foobar___(true) |
| @baz |
| protocol Foo { |
| compose foo.bar.baz; |
| |
| Foo(struct {}); |
| Foo() -> (); |
| Foo(struct { |
| f1 uint8 = 12; |
| }) -> (struct { |
| f1 uint32 = 1 | 2; |
| f2 string = "abc"; |
| }) -> (union { |
| 1: f1 uint8; |
| 2: f2 struct { |
| foo Bar; |
| }; |
| }) error uint32; |
| |
| // hi |
| @foo |
| @bar(123) |
| @foo_bar("hi") |
| @foo_bar(a=1, b=2, c = "hello", d=Bits.A) |
| @bar_foo(a=true) |
| Foo(struct { |
| f1 uint8; |
| }) -> (struct { |
| f2 uint8; |
| f3 string:optional = "abc"; |
| }); |
| |
| Foo(struct { |
| f1 Bar; |
| f2 uint8; |
| f3 vector<Bar>:10; |
| f4 vector<struct { |
| f41 vector<table { |
| 1: f411 string:50; |
| 2: f412 string:optional; |
| 3: f413 string:<50, optional>; |
| 4: f414 string:<other.library.MY_SIZE, optional>; |
| 5: f415 vector<string>:<10,optional>; |
| }>:optional; |
| }>:100; |
| }); |
| |
| -> Foo(); |
| -> Foo(struct { |
| // hi |
| f1 Bar; //hi |
| f2 uint8; |
| }); |
| |
| Foo(Foo2) -> (Bar); |
| }; |