feat: add a histrical wit-bindgen
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
a: async func()
|
||||
b: async func(x: s32)
|
||||
c: async func() -> u32
|
||||
|
||||
resource y {
|
||||
a: async func()
|
||||
b: async func(x: s32)
|
||||
c: async func() -> u32
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"resources": [
|
||||
{
|
||||
"name": "y"
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"idx": 0,
|
||||
"primitive": "handle-0"
|
||||
}
|
||||
],
|
||||
"functions": [
|
||||
{
|
||||
"name": "a",
|
||||
"async": true,
|
||||
"params": [],
|
||||
"result": "unit"
|
||||
},
|
||||
{
|
||||
"name": "b",
|
||||
"async": true,
|
||||
"params": [
|
||||
"s32"
|
||||
],
|
||||
"result": "unit"
|
||||
},
|
||||
{
|
||||
"name": "c",
|
||||
"async": true,
|
||||
"params": [],
|
||||
"result": "u32"
|
||||
},
|
||||
{
|
||||
"name": "y::a",
|
||||
"async": true,
|
||||
"params": [
|
||||
"handle-0"
|
||||
],
|
||||
"result": "unit"
|
||||
},
|
||||
{
|
||||
"name": "y::b",
|
||||
"async": true,
|
||||
"params": [
|
||||
"handle-0",
|
||||
"s32"
|
||||
],
|
||||
"result": "unit"
|
||||
},
|
||||
{
|
||||
"name": "y::c",
|
||||
"async": true,
|
||||
"params": [
|
||||
"handle-0"
|
||||
],
|
||||
"result": "u32"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
// hello
|
||||
// world
|
||||
// why, yes
|
||||
// this is a comment
|
||||
/* this too */ /* is a comment */
|
||||
/* this /* is /* a */ nested */ comment */
|
||||
|
||||
|
||||
type /* foo */ bar /* baz */ = //
|
||||
handle //
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
x
|
||||
|
||||
resource /* x */ x // ...
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"resources": [
|
||||
{
|
||||
"name": "x"
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"idx": 0,
|
||||
"name": "bar",
|
||||
"primitive": "handle-0"
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"primitive": "handle-0"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
# A Markdown file!
|
||||
|
||||
containing stuff, and also some code blocks, wit and other.
|
||||
|
||||
```wit
|
||||
x: func()
|
||||
```
|
||||
|
||||
Intervening content, including a non-wit codeblock:
|
||||
```js
|
||||
function func() {}
|
||||
```
|
||||
|
||||
```wit
|
||||
y: func()
|
||||
```
|
||||
|
||||
## A new section
|
||||
|
||||
In which, another wit code block!
|
||||
|
||||
```wit
|
||||
z: func()
|
||||
```
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"functions": [
|
||||
{
|
||||
"name": "x",
|
||||
"params": [],
|
||||
"result": "unit"
|
||||
},
|
||||
{
|
||||
"name": "y",
|
||||
"params": [],
|
||||
"result": "unit"
|
||||
},
|
||||
{
|
||||
"name": "z",
|
||||
"params": [],
|
||||
"result": "unit"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{}
|
||||
@@ -0,0 +1,7 @@
|
||||
f1: func()
|
||||
f2: func(a: u32)
|
||||
f3: func(a: u32,)
|
||||
f4: func() -> u32
|
||||
f6: func() -> tuple<u32, u32>
|
||||
f7: func(a: float32, b: float32) -> tuple<u32, u32>
|
||||
f8: func(a: option<u32>) -> expected<u32, float32>
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"types": [
|
||||
{
|
||||
"idx": 0,
|
||||
"tuple": {
|
||||
"types": [
|
||||
"u32",
|
||||
"u32"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"option": "u32"
|
||||
},
|
||||
{
|
||||
"idx": 2,
|
||||
"expected": {
|
||||
"ok": "u32",
|
||||
"err": "float32"
|
||||
}
|
||||
}
|
||||
],
|
||||
"functions": [
|
||||
{
|
||||
"name": "f1",
|
||||
"params": [],
|
||||
"result": "unit"
|
||||
},
|
||||
{
|
||||
"name": "f2",
|
||||
"params": [
|
||||
"u32"
|
||||
],
|
||||
"result": "unit"
|
||||
},
|
||||
{
|
||||
"name": "f3",
|
||||
"params": [
|
||||
"u32"
|
||||
],
|
||||
"result": "unit"
|
||||
},
|
||||
{
|
||||
"name": "f4",
|
||||
"params": [],
|
||||
"result": "u32"
|
||||
},
|
||||
{
|
||||
"name": "f6",
|
||||
"params": [],
|
||||
"result": "type-0"
|
||||
},
|
||||
{
|
||||
"name": "f7",
|
||||
"params": [
|
||||
"float32",
|
||||
"float32"
|
||||
],
|
||||
"result": "type-0"
|
||||
},
|
||||
{
|
||||
"name": "f8",
|
||||
"params": [
|
||||
"type-1"
|
||||
],
|
||||
"result": "type-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
# Title
|
||||
|
||||
This file is like import-me.wit, but it's a Markdown file with embedded wit
|
||||
code blocks.
|
||||
|
||||
## `foo`
|
||||
```wit
|
||||
/// This is foo.
|
||||
type foo = u32
|
||||
```
|
||||
|
||||
## `x`
|
||||
```wit
|
||||
/// This is x.
|
||||
resource x
|
||||
```
|
||||
|
||||
## `handle`
|
||||
```wit
|
||||
/// This is handle.
|
||||
type %handle = handle x
|
||||
```
|
||||
|
||||
## `some-record`
|
||||
```wit
|
||||
/// This is some-record.
|
||||
type some-record = tuple<u32, u64, float32>
|
||||
```
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"resources": [
|
||||
{
|
||||
"name": "x"
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"idx": 0,
|
||||
"name": "foo",
|
||||
"primitive": "u32"
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"primitive": "handle-0"
|
||||
},
|
||||
{
|
||||
"idx": 2,
|
||||
"name": "handle",
|
||||
"primitive": "handle-0"
|
||||
},
|
||||
{
|
||||
"idx": 3,
|
||||
"name": "some-record",
|
||||
"tuple": {
|
||||
"types": [
|
||||
"u32",
|
||||
"u64",
|
||||
"float32"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
type foo = u32
|
||||
|
||||
resource x
|
||||
|
||||
type %handle = handle x
|
||||
|
||||
type some-record = tuple<u32, u64, float32>
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"resources": [
|
||||
{
|
||||
"name": "x"
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"idx": 0,
|
||||
"name": "foo",
|
||||
"primitive": "u32"
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"primitive": "handle-0"
|
||||
},
|
||||
{
|
||||
"idx": 2,
|
||||
"name": "handle",
|
||||
"primitive": "handle-0"
|
||||
},
|
||||
{
|
||||
"idx": 3,
|
||||
"name": "some-record",
|
||||
"tuple": {
|
||||
"types": [
|
||||
"u32",
|
||||
"u64",
|
||||
"float32"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// This test is like imports.wit, but uses import-me-too, which is a markdown
|
||||
// file instead of a plain wit file.
|
||||
|
||||
use { foo } from import-me-too
|
||||
use { foo as bar } from import-me-too
|
||||
use { x as import-me-x } from import-me-too
|
||||
|
||||
type x = foo
|
||||
type y = bar
|
||||
type z1 = import-me-x
|
||||
type z2 = handle import-me-x
|
||||
|
||||
use { %handle } from import-me-too
|
||||
resource xyz
|
||||
type my-handle = handle xyz
|
||||
type my-handle2 = xyz
|
||||
|
||||
use { some-record } from import-me-too
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"resources": [
|
||||
{
|
||||
"name": "x",
|
||||
"foreign_module": "import-me-too"
|
||||
},
|
||||
{
|
||||
"name": "xyz"
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"idx": 0,
|
||||
"name": "foo",
|
||||
"primitive": "u32",
|
||||
"foreign_module": "import-me-too"
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"primitive": "handle-0",
|
||||
"foreign_module": "import-me-too"
|
||||
},
|
||||
{
|
||||
"idx": 2,
|
||||
"name": "handle",
|
||||
"primitive": "handle-0",
|
||||
"foreign_module": "import-me-too"
|
||||
},
|
||||
{
|
||||
"idx": 3,
|
||||
"name": "some-record",
|
||||
"tuple": {
|
||||
"types": [
|
||||
"u32",
|
||||
"u64",
|
||||
"float32"
|
||||
]
|
||||
},
|
||||
"foreign_module": "import-me-too"
|
||||
},
|
||||
{
|
||||
"idx": 4,
|
||||
"name": "x",
|
||||
"primitive": "type-0"
|
||||
},
|
||||
{
|
||||
"idx": 5,
|
||||
"name": "y",
|
||||
"primitive": "type-0"
|
||||
},
|
||||
{
|
||||
"idx": 6,
|
||||
"name": "z1",
|
||||
"primitive": "type-1"
|
||||
},
|
||||
{
|
||||
"idx": 7,
|
||||
"name": "z2",
|
||||
"primitive": "handle-0"
|
||||
},
|
||||
{
|
||||
"idx": 8,
|
||||
"primitive": "handle-1"
|
||||
},
|
||||
{
|
||||
"idx": 9,
|
||||
"name": "my-handle",
|
||||
"primitive": "handle-1"
|
||||
},
|
||||
{
|
||||
"idx": 10,
|
||||
"name": "my-handle2",
|
||||
"primitive": "type-8"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
use { foo } from import-me
|
||||
use { foo as bar } from import-me
|
||||
use { x as import-me-x } from import-me
|
||||
|
||||
type x = foo
|
||||
type y = bar
|
||||
type z1 = import-me-x
|
||||
type z2 = handle import-me-x
|
||||
|
||||
use { %handle } from import-me
|
||||
resource xyz
|
||||
type my-handle = handle xyz
|
||||
type my-handle2 = xyz
|
||||
|
||||
use { some-record } from import-me
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"resources": [
|
||||
{
|
||||
"name": "x",
|
||||
"foreign_module": "import-me"
|
||||
},
|
||||
{
|
||||
"name": "xyz"
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"idx": 0,
|
||||
"name": "foo",
|
||||
"primitive": "u32",
|
||||
"foreign_module": "import-me"
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"primitive": "handle-0",
|
||||
"foreign_module": "import-me"
|
||||
},
|
||||
{
|
||||
"idx": 2,
|
||||
"name": "handle",
|
||||
"primitive": "handle-0",
|
||||
"foreign_module": "import-me"
|
||||
},
|
||||
{
|
||||
"idx": 3,
|
||||
"name": "some-record",
|
||||
"tuple": {
|
||||
"types": [
|
||||
"u32",
|
||||
"u64",
|
||||
"float32"
|
||||
]
|
||||
},
|
||||
"foreign_module": "import-me"
|
||||
},
|
||||
{
|
||||
"idx": 4,
|
||||
"name": "x",
|
||||
"primitive": "type-0"
|
||||
},
|
||||
{
|
||||
"idx": 5,
|
||||
"name": "y",
|
||||
"primitive": "type-0"
|
||||
},
|
||||
{
|
||||
"idx": 6,
|
||||
"name": "z1",
|
||||
"primitive": "type-1"
|
||||
},
|
||||
{
|
||||
"idx": 7,
|
||||
"name": "z2",
|
||||
"primitive": "handle-0"
|
||||
},
|
||||
{
|
||||
"idx": 8,
|
||||
"primitive": "handle-1"
|
||||
},
|
||||
{
|
||||
"idx": 9,
|
||||
"name": "my-handle",
|
||||
"primitive": "handle-1"
|
||||
},
|
||||
{
|
||||
"idx": 10,
|
||||
"name": "my-handle2",
|
||||
"primitive": "type-8"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
use * from import-me
|
||||
|
||||
type my-handle = handle x
|
||||
type my-handle2 = x
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"resources": [
|
||||
{
|
||||
"name": "x",
|
||||
"foreign_module": "import-me"
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"idx": 0,
|
||||
"name": "foo",
|
||||
"primitive": "u32",
|
||||
"foreign_module": "import-me"
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"name": "handle",
|
||||
"primitive": "handle-0",
|
||||
"foreign_module": "import-me"
|
||||
},
|
||||
{
|
||||
"idx": 2,
|
||||
"name": "some-record",
|
||||
"tuple": {
|
||||
"types": [
|
||||
"u32",
|
||||
"u64",
|
||||
"float32"
|
||||
]
|
||||
},
|
||||
"foreign_module": "import-me"
|
||||
},
|
||||
{
|
||||
"idx": 3,
|
||||
"primitive": "handle-0",
|
||||
"foreign_module": "import-me"
|
||||
},
|
||||
{
|
||||
"idx": 4,
|
||||
"name": "my-handle",
|
||||
"primitive": "handle-0"
|
||||
},
|
||||
{
|
||||
"idx": 5,
|
||||
"name": "my-handle2",
|
||||
"primitive": "type-3"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
a: async
|
||||
@@ -0,0 +1,5 @@
|
||||
expected keyword `func`, found eof
|
||||
--> tests/ui/parse-fail/async.wit:3:1
|
||||
|
|
||||
3 |
|
||||
| ^
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
a: async()
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
expected keyword `func`, found '('
|
||||
--> tests/ui/parse-fail/async1.wit:2:9
|
||||
|
|
||||
2 | a: async()
|
||||
| ^
|
||||
@@ -0,0 +1,5 @@
|
||||
// parse-fail
|
||||
|
||||
type x = list<u32
|
||||
|
||||
type y = u32
|
||||
@@ -0,0 +1,5 @@
|
||||
expected '>', found keyword `type`
|
||||
--> tests/ui/parse-fail/bad-list.wit:5:1
|
||||
|
|
||||
5 | type y = u32
|
||||
| ^
|
||||
@@ -0,0 +1,5 @@
|
||||
// parse-fail
|
||||
|
||||
resource x {
|
||||
x: s32
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
globals not allowed in resources
|
||||
--> tests/ui/parse-fail/bad-resource.wit:4:3
|
||||
|
|
||||
4 | x: s32
|
||||
| ^
|
||||
@@ -0,0 +1,6 @@
|
||||
// parse-fail
|
||||
|
||||
resource x {
|
||||
x: func()
|
||||
x: func()
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
"x" defined twice in this resource
|
||||
--> tests/ui/parse-fail/bad-resource2.wit:5:3
|
||||
|
|
||||
5 | x: func()
|
||||
| ^
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
use {} from foo
|
||||
@@ -0,0 +1,5 @@
|
||||
expected an identifier or string, found '}'
|
||||
--> tests/ui/parse-fail/bad-use.wit:2:6
|
||||
|
|
||||
2 | use {} from foo
|
||||
| ^
|
||||
@@ -0,0 +1,4 @@
|
||||
// parse-fail
|
||||
use { a } from
|
||||
|
||||
type foo = u32
|
||||
@@ -0,0 +1,5 @@
|
||||
expected an identifier or string, found keyword `type`
|
||||
--> tests/ui/parse-fail/bad-use2.wit:4:1
|
||||
|
|
||||
4 | type foo = u32
|
||||
| ^---
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
use * from type
|
||||
@@ -0,0 +1,5 @@
|
||||
expected an identifier or string, found keyword `type`
|
||||
--> tests/ui/parse-fail/bad-use3.wit:2:12
|
||||
|
|
||||
2 | use * from type
|
||||
| ^---
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
use { foo } from bar:
|
||||
@@ -0,0 +1,5 @@
|
||||
expected ':', found whitespace
|
||||
--> tests/ui/parse-fail/bad-use4.wit:2:22
|
||||
|
|
||||
2 | use { foo } from bar:
|
||||
| ^
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
use { foo } from bar:baz
|
||||
@@ -0,0 +1,5 @@
|
||||
expected ':', found an identifier
|
||||
--> tests/ui/parse-fail/bad-use5.wit:2:22
|
||||
|
|
||||
2 | use { foo } from bar:baz
|
||||
| ^
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
|
||||
use { foo } from import-me::bar
|
||||
@@ -0,0 +1,5 @@
|
||||
`bar` not defined in `import-me`
|
||||
--> tests/ui/parse-fail/bad-use6.wit:3:29
|
||||
|
|
||||
3 | use { foo } from import-me::bar
|
||||
| ^--
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
|
||||
use from import-me
|
||||
@@ -0,0 +1,5 @@
|
||||
expected '{', found keyword `from`
|
||||
--> tests/ui/parse-fail/bad-use7.wit:3:5
|
||||
|
|
||||
3 | use from import-me
|
||||
| ^
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
type foo = foo
|
||||
@@ -0,0 +1,5 @@
|
||||
type can recursively refer to itself
|
||||
--> tests/ui/parse-fail/cycle.wit:2:6
|
||||
|
|
||||
2 | type foo = foo
|
||||
| ^--
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
type foo = bar
|
||||
type bar = foo
|
||||
@@ -0,0 +1,5 @@
|
||||
type can recursively refer to itself
|
||||
--> tests/ui/parse-fail/cycle2.wit:2:6
|
||||
|
|
||||
2 | type foo = bar
|
||||
| ^--
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
type foo = bar
|
||||
type bar = option<foo>
|
||||
@@ -0,0 +1,5 @@
|
||||
type can recursively refer to itself
|
||||
--> tests/ui/parse-fail/cycle3.wit:2:6
|
||||
|
|
||||
2 | type foo = bar
|
||||
| ^--
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
type foo = bar
|
||||
record bar { x: foo }
|
||||
@@ -0,0 +1,5 @@
|
||||
type can recursively refer to itself
|
||||
--> tests/ui/parse-fail/cycle4.wit:2:6
|
||||
|
|
||||
2 | type foo = bar
|
||||
| ^--
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
type foo = bar
|
||||
type bar = list<foo>
|
||||
@@ -0,0 +1,5 @@
|
||||
type can recursively refer to itself
|
||||
--> tests/ui/parse-fail/cycle5.wit:2:6
|
||||
|
|
||||
2 | type foo = bar
|
||||
| ^--
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
|
||||
type
|
||||
@@ -0,0 +1,5 @@
|
||||
expected an identifier or string, found eof
|
||||
--> tests/ui/parse-fail/dangling-type.wit:4:1
|
||||
|
|
||||
4 |
|
||||
| ^
|
||||
@@ -0,0 +1,4 @@
|
||||
// parse-fail
|
||||
|
||||
foo: func()
|
||||
foo: func()
|
||||
@@ -0,0 +1,5 @@
|
||||
"foo" defined twice
|
||||
--> tests/ui/parse-fail/duplicate-functions.wit:4:1
|
||||
|
|
||||
4 | foo: func()
|
||||
| ^--
|
||||
@@ -0,0 +1,4 @@
|
||||
// parse-fail
|
||||
|
||||
resource a
|
||||
resource a
|
||||
@@ -0,0 +1,5 @@
|
||||
resource "a" defined twice
|
||||
--> tests/ui/parse-fail/duplicate-resource.wit:4:10
|
||||
|
|
||||
4 | resource a
|
||||
| ^
|
||||
@@ -0,0 +1,4 @@
|
||||
// parse-fail
|
||||
|
||||
type foo = s32
|
||||
type foo = s32
|
||||
@@ -0,0 +1,5 @@
|
||||
type "foo" defined twice
|
||||
--> tests/ui/parse-fail/duplicate-type.wit:4:6
|
||||
|
|
||||
4 | type foo = s32
|
||||
| ^--
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
a: s32
|
||||
a: u32
|
||||
@@ -0,0 +1,5 @@
|
||||
"a" defined twice
|
||||
--> tests/ui/parse-fail/duplicate-value.wit:3:1
|
||||
|
|
||||
3 | a: u32
|
||||
| ^
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
enum t {}
|
||||
@@ -0,0 +1,5 @@
|
||||
empty enum
|
||||
--> tests/ui/parse-fail/empty-enum.wit:2:6
|
||||
|
|
||||
2 | enum t {}
|
||||
| ^
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
union t {}
|
||||
@@ -0,0 +1,5 @@
|
||||
empty union
|
||||
--> tests/ui/parse-fail/empty-union.wit:2:7
|
||||
|
|
||||
2 | union t {}
|
||||
| ^
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
variant t {}
|
||||
@@ -0,0 +1,5 @@
|
||||
empty variant
|
||||
--> tests/ui/parse-fail/empty-variant1.wit:2:9
|
||||
|
|
||||
2 | variant t {}
|
||||
| ^
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
type foo = handle foo
|
||||
@@ -0,0 +1,5 @@
|
||||
no resource named `foo`
|
||||
--> tests/ui/parse-fail/handle-no-resource.wit:2:19
|
||||
|
|
||||
2 | type foo = handle foo
|
||||
| ^--
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
use { nonexistent } from import-me
|
||||
@@ -0,0 +1,5 @@
|
||||
name not defined in submodule
|
||||
--> tests/ui/parse-fail/import-bad.wit:2:7
|
||||
|
|
||||
2 | use { nonexistent } from import-me
|
||||
| ^----------
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
use { foo } from import-me
|
||||
use { foo } from import-me
|
||||
@@ -0,0 +1,5 @@
|
||||
type "foo" defined twice
|
||||
--> tests/ui/parse-fail/import-bad2.wit:3:7
|
||||
|
|
||||
3 | use { foo } from import-me
|
||||
| ^--
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
use { bar } from import-me
|
||||
use { bar } from import-me
|
||||
@@ -0,0 +1,5 @@
|
||||
resource "bar" defined twice
|
||||
--> tests/ui/parse-fail/import-bad3.wit:3:7
|
||||
|
|
||||
3 | use { bar } from import-me
|
||||
| ^--
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
use { bar, bar } from import-me
|
||||
@@ -0,0 +1,5 @@
|
||||
resource "bar" defined twice
|
||||
--> tests/ui/parse-fail/import-bad4.wit:2:12
|
||||
|
|
||||
2 | use { bar, bar } from import-me
|
||||
| ^--
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
use { foo } from import-me
|
||||
use * from import-me
|
||||
@@ -0,0 +1,5 @@
|
||||
type "foo" defined twice
|
||||
--> tests/ui/parse-fail/import-bad5.wit:3:12
|
||||
|
|
||||
3 | use * from import-me
|
||||
| ^--------
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
use { foo } from import-cycle2-v2
|
||||
@@ -0,0 +1 @@
|
||||
file `tests/ui/parse-fail/import-cycle2-v1.wit` recursively imports itself
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
use { foo } from import-cycle2-v1
|
||||
@@ -0,0 +1 @@
|
||||
file `tests/ui/parse-fail/import-cycle2-v2.wit` recursively imports itself
|
||||
@@ -0,0 +1,2 @@
|
||||
type foo = u32
|
||||
resource bar
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"resources": [
|
||||
{
|
||||
"name": "bar"
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"idx": 0,
|
||||
"name": "foo",
|
||||
"primitive": "u32"
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"primitive": "handle-0"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
use { foo } from import1
|
||||
@@ -0,0 +1 @@
|
||||
file `tests/ui/parse-fail/import1.wit` recursively imports itself
|
||||
@@ -0,0 +1,7 @@
|
||||
// parse-fail
|
||||
|
||||
hello
|
||||
|
||||
```wit
|
||||
type foo = bar
|
||||
```
|
||||
@@ -0,0 +1,5 @@
|
||||
no type named `bar`
|
||||
--> tests/ui/parse-fail/invalid-md.md:6:12
|
||||
|
|
||||
6 | type foo = bar
|
||||
| ^--
|
||||
@@ -0,0 +1,2 @@
|
||||
// parse-fail
|
||||
abcd
|
||||
@@ -0,0 +1,5 @@
|
||||
expected ':', found eof
|
||||
--> tests/ui/parse-fail/invalid-toplevel.wit:3:1
|
||||
|
|
||||
3 |
|
||||
| ^
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
|
||||
type option = u32
|
||||
@@ -0,0 +1,5 @@
|
||||
expected an identifier or string, found keyword `option`
|
||||
--> tests/ui/parse-fail/keyword.wit:3:6
|
||||
|
|
||||
3 | type option = u32
|
||||
| ^-----
|
||||
@@ -0,0 +1,3 @@
|
||||
// parse-fail
|
||||
|
||||
type foo = bar
|
||||
@@ -0,0 +1,5 @@
|
||||
no type named `bar`
|
||||
--> tests/ui/parse-fail/undefined-typed.wit:3:12
|
||||
|
|
||||
3 | type foo = bar
|
||||
| ^--
|
||||
@@ -0,0 +1,5 @@
|
||||
unterminated string literal
|
||||
--> tests/ui/parse-fail/unterminated-string.wit:3:1
|
||||
|
|
||||
3 | "
|
||||
| ^
|
||||
@@ -0,0 +1,16 @@
|
||||
resource a
|
||||
resource b
|
||||
resource c
|
||||
resource d {}
|
||||
resource e {
|
||||
x: func()
|
||||
}
|
||||
resource f {
|
||||
x: func()
|
||||
y: func()
|
||||
}
|
||||
resource g implements a
|
||||
resource h implements b {}
|
||||
resource i implements e {
|
||||
z: func()
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user