diff options
313 files changed, 13661 insertions, 11706 deletions
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 2c1192f07..3f52f31f8 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml | |||
@@ -39,7 +39,6 @@ jobs: | |||
39 | with: | 39 | with: |
40 | toolchain: stable | 40 | toolchain: stable |
41 | profile: minimal | 41 | profile: minimal |
42 | target: x86_64-unknown-linux-musl | ||
43 | override: true | 42 | override: true |
44 | 43 | ||
45 | - name: Install Nodejs | 44 | - name: Install Nodejs |
diff --git a/.vscode/launch.json b/.vscode/launch.json index 3f74d7566..6a2fff906 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json | |||
@@ -41,7 +41,7 @@ | |||
41 | "outFiles": [ | 41 | "outFiles": [ |
42 | "${workspaceFolder}/editors/code/out/**/*.js" | 42 | "${workspaceFolder}/editors/code/out/**/*.js" |
43 | ], | 43 | ], |
44 | "preLaunchTask": "Build Extension", | 44 | "preLaunchTask": "Build Server and Extension", |
45 | "skipFiles": [ | 45 | "skipFiles": [ |
46 | "<node_internals>/**/*.js" | 46 | "<node_internals>/**/*.js" |
47 | ], | 47 | ], |
@@ -62,7 +62,7 @@ | |||
62 | "outFiles": [ | 62 | "outFiles": [ |
63 | "${workspaceFolder}/editors/code/out/**/*.js" | 63 | "${workspaceFolder}/editors/code/out/**/*.js" |
64 | ], | 64 | ], |
65 | "preLaunchTask": "Build Extension", | 65 | "preLaunchTask": "Build Server (Release) and Extension", |
66 | "skipFiles": [ | 66 | "skipFiles": [ |
67 | "<node_internals>/**/*.js" | 67 | "<node_internals>/**/*.js" |
68 | ], | 68 | ], |
diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 4037e7cce..0969ce89a 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json | |||
@@ -4,7 +4,7 @@ | |||
4 | "version": "2.0.0", | 4 | "version": "2.0.0", |
5 | "tasks": [ | 5 | "tasks": [ |
6 | { | 6 | { |
7 | "label": "Build Extension", | 7 | "label": "Build Extension in Background", |
8 | "group": "build", | 8 | "group": "build", |
9 | "type": "npm", | 9 | "type": "npm", |
10 | "script": "watch", | 10 | "script": "watch", |
@@ -16,11 +16,40 @@ | |||
16 | "isBackground": true, | 16 | "isBackground": true, |
17 | }, | 17 | }, |
18 | { | 18 | { |
19 | "label": "Build Extension", | ||
20 | "group": "build", | ||
21 | "type": "npm", | ||
22 | "script": "build", | ||
23 | "path": "editors/code/", | ||
24 | "problemMatcher": { | ||
25 | "base": "$tsc", | ||
26 | "fileLocation": ["relative", "${workspaceFolder}/editors/code/"] | ||
27 | }, | ||
28 | }, | ||
29 | { | ||
19 | "label": "Build Server", | 30 | "label": "Build Server", |
20 | "group": "build", | 31 | "group": "build", |
21 | "type": "shell", | 32 | "type": "shell", |
22 | "command": "cargo build --package rust-analyzer", | 33 | "command": "cargo build --package rust-analyzer", |
23 | "problemMatcher": "$rustc" | 34 | "problemMatcher": "$rustc" |
24 | }, | 35 | }, |
36 | { | ||
37 | "label": "Build Server (Release)", | ||
38 | "group": "build", | ||
39 | "type": "shell", | ||
40 | "command": "cargo build --release --package rust-analyzer", | ||
41 | "problemMatcher": "$rustc" | ||
42 | }, | ||
43 | |||
44 | { | ||
45 | "label": "Build Server and Extension", | ||
46 | "dependsOn": ["Build Server", "Build Extension"], | ||
47 | "problemMatcher": "$rustc" | ||
48 | }, | ||
49 | { | ||
50 | "label": "Build Server (Release) and Extension", | ||
51 | "dependsOn": ["Build Server (Release)", "Build Extension"], | ||
52 | "problemMatcher": "$rustc" | ||
53 | } | ||
25 | ] | 54 | ] |
26 | } | 55 | } |
diff --git a/Cargo.lock b/Cargo.lock index 367ff3f82..5d50a766f 100644 --- a/Cargo.lock +++ b/Cargo.lock | |||
@@ -58,9 +58,9 @@ dependencies = [ | |||
58 | 58 | ||
59 | [[package]] | 59 | [[package]] |
60 | name = "backtrace-sys" | 60 | name = "backtrace-sys" |
61 | version = "0.1.36" | 61 | version = "0.1.37" |
62 | source = "registry+https://github.com/rust-lang/crates.io-index" | 62 | source = "registry+https://github.com/rust-lang/crates.io-index" |
63 | checksum = "78848718ee1255a2485d1309ad9cdecfc2e7d0362dd11c6829364c6b35ae1bc7" | 63 | checksum = "18fbebbe1c9d1f383a9cc7e8ccdb471b91c8d024ee9c2ca5b5346121fe8b4399" |
64 | dependencies = [ | 64 | dependencies = [ |
65 | "cc", | 65 | "cc", |
66 | "libc", | 66 | "libc", |
@@ -68,9 +68,9 @@ dependencies = [ | |||
68 | 68 | ||
69 | [[package]] | 69 | [[package]] |
70 | name = "base64" | 70 | name = "base64" |
71 | version = "0.11.0" | 71 | version = "0.12.0" |
72 | source = "registry+https://github.com/rust-lang/crates.io-index" | 72 | source = "registry+https://github.com/rust-lang/crates.io-index" |
73 | checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" | 73 | checksum = "7d5ca2cd0adc3f48f9e9ea5a6bbdf9ccc0bfade884847e484d452414c7ccffb3" |
74 | 74 | ||
75 | [[package]] | 75 | [[package]] |
76 | name = "bitflags" | 76 | name = "bitflags" |
@@ -170,7 +170,7 @@ dependencies = [ | |||
170 | "chalk-ir", | 170 | "chalk-ir", |
171 | "chalk-macros", | 171 | "chalk-macros", |
172 | "chalk-rust-ir", | 172 | "chalk-rust-ir", |
173 | "ena", | 173 | "ena 0.13.1", |
174 | "itertools", | 174 | "itertools", |
175 | "petgraph", | 175 | "petgraph", |
176 | "rustc-hash", | 176 | "rustc-hash", |
@@ -199,14 +199,15 @@ dependencies = [ | |||
199 | 199 | ||
200 | [[package]] | 200 | [[package]] |
201 | name = "console" | 201 | name = "console" |
202 | version = "0.10.0" | 202 | version = "0.10.3" |
203 | source = "registry+https://github.com/rust-lang/crates.io-index" | 203 | source = "registry+https://github.com/rust-lang/crates.io-index" |
204 | checksum = "6728a28023f207181b193262711102bfbaf47cc9d13bc71d0736607ef8efe88c" | 204 | checksum = "2586208b33573b7f76ccfbe5adb076394c88deaf81b84d7213969805b0a952a7" |
205 | dependencies = [ | 205 | dependencies = [ |
206 | "clicolors-control", | 206 | "clicolors-control", |
207 | "encode_unicode", | 207 | "encode_unicode", |
208 | "lazy_static", | 208 | "lazy_static", |
209 | "libc", | 209 | "libc", |
210 | "terminal_size", | ||
210 | "termios", | 211 | "termios", |
211 | "winapi 0.3.8", | 212 | "winapi 0.3.8", |
212 | ] | 213 | ] |
@@ -316,6 +317,15 @@ dependencies = [ | |||
316 | ] | 317 | ] |
317 | 318 | ||
318 | [[package]] | 319 | [[package]] |
320 | name = "ena" | ||
321 | version = "0.14.0" | ||
322 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
323 | checksum = "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3" | ||
324 | dependencies = [ | ||
325 | "log", | ||
326 | ] | ||
327 | |||
328 | [[package]] | ||
319 | name = "encode_unicode" | 329 | name = "encode_unicode" |
320 | version = "0.3.6" | 330 | version = "0.3.6" |
321 | source = "registry+https://github.com/rust-lang/crates.io-index" | 331 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -381,9 +391,9 @@ dependencies = [ | |||
381 | 391 | ||
382 | [[package]] | 392 | [[package]] |
383 | name = "fst" | 393 | name = "fst" |
384 | version = "0.4.1" | 394 | version = "0.4.3" |
385 | source = "registry+https://github.com/rust-lang/crates.io-index" | 395 | source = "registry+https://github.com/rust-lang/crates.io-index" |
386 | checksum = "4eaf9ea41cc964d742f7fc7861db75d2d6e83a3ce0d897d5c6f8b621f015ddc8" | 396 | checksum = "81f9cac32c1741cdf6b66be7dcf0d9c7f25ccf12f8aa84c16cfa31f9f14513b3" |
387 | 397 | ||
388 | [[package]] | 398 | [[package]] |
389 | name = "fuchsia-zircon" | 399 | name = "fuchsia-zircon" |
@@ -447,9 +457,9 @@ dependencies = [ | |||
447 | 457 | ||
448 | [[package]] | 458 | [[package]] |
449 | name = "hermit-abi" | 459 | name = "hermit-abi" |
450 | version = "0.1.11" | 460 | version = "0.1.12" |
451 | source = "registry+https://github.com/rust-lang/crates.io-index" | 461 | source = "registry+https://github.com/rust-lang/crates.io-index" |
452 | checksum = "8a0d737e0f947a1864e93d33fdef4af8445a00d1ed8dc0c8ddb73139ea6abf15" | 462 | checksum = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4" |
453 | dependencies = [ | 463 | dependencies = [ |
454 | "libc", | 464 | "libc", |
455 | ] | 465 | ] |
@@ -645,9 +655,9 @@ dependencies = [ | |||
645 | 655 | ||
646 | [[package]] | 656 | [[package]] |
647 | name = "lsp-types" | 657 | name = "lsp-types" |
648 | version = "0.73.0" | 658 | version = "0.74.1" |
649 | source = "registry+https://github.com/rust-lang/crates.io-index" | 659 | source = "registry+https://github.com/rust-lang/crates.io-index" |
650 | checksum = "93d0cf64ea141b43d9e055f6b9df13f0bce32b103d84237509ce0a571ab9b159" | 660 | checksum = "57c0e6a2b8837d27b29deb3f3e6dc1c6d2f57947677f9be1024e482ec5b59525" |
651 | dependencies = [ | 661 | dependencies = [ |
652 | "base64", | 662 | "base64", |
653 | "bitflags", | 663 | "bitflags", |
@@ -696,9 +706,9 @@ dependencies = [ | |||
696 | 706 | ||
697 | [[package]] | 707 | [[package]] |
698 | name = "mio" | 708 | name = "mio" |
699 | version = "0.6.21" | 709 | version = "0.6.22" |
700 | source = "registry+https://github.com/rust-lang/crates.io-index" | 710 | source = "registry+https://github.com/rust-lang/crates.io-index" |
701 | checksum = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" | 711 | checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" |
702 | dependencies = [ | 712 | dependencies = [ |
703 | "cfg-if", | 713 | "cfg-if", |
704 | "fuchsia-zircon", | 714 | "fuchsia-zircon", |
@@ -739,9 +749,9 @@ dependencies = [ | |||
739 | 749 | ||
740 | [[package]] | 750 | [[package]] |
741 | name = "net2" | 751 | name = "net2" |
742 | version = "0.2.33" | 752 | version = "0.2.34" |
743 | source = "registry+https://github.com/rust-lang/crates.io-index" | 753 | source = "registry+https://github.com/rust-lang/crates.io-index" |
744 | checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" | 754 | checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" |
745 | dependencies = [ | 755 | dependencies = [ |
746 | "cfg-if", | 756 | "cfg-if", |
747 | "libc", | 757 | "libc", |
@@ -814,9 +824,9 @@ dependencies = [ | |||
814 | 824 | ||
815 | [[package]] | 825 | [[package]] |
816 | name = "paste" | 826 | name = "paste" |
817 | version = "0.1.10" | 827 | version = "0.1.11" |
818 | source = "registry+https://github.com/rust-lang/crates.io-index" | 828 | source = "registry+https://github.com/rust-lang/crates.io-index" |
819 | checksum = "ab4fb1930692d1b6a9cfabdde3d06ea0a7d186518e2f4d67660d8970e2fa647a" | 829 | checksum = "a3c897744f63f34f7ae3a024d9162bb5001f4ad661dd24bea0dc9f075d2de1c6" |
820 | dependencies = [ | 830 | dependencies = [ |
821 | "paste-impl", | 831 | "paste-impl", |
822 | "proc-macro-hack", | 832 | "proc-macro-hack", |
@@ -824,9 +834,9 @@ dependencies = [ | |||
824 | 834 | ||
825 | [[package]] | 835 | [[package]] |
826 | name = "paste-impl" | 836 | name = "paste-impl" |
827 | version = "0.1.10" | 837 | version = "0.1.11" |
828 | source = "registry+https://github.com/rust-lang/crates.io-index" | 838 | source = "registry+https://github.com/rust-lang/crates.io-index" |
829 | checksum = "a62486e111e571b1e93b710b61e8f493c0013be39629b714cb166bdb06aa5a8a" | 839 | checksum = "66fd6f92e3594f2dd7b3fc23e42d82e292f7bcda6d8e5dcd167072327234ab89" |
830 | dependencies = [ | 840 | dependencies = [ |
831 | "proc-macro-hack", | 841 | "proc-macro-hack", |
832 | "proc-macro2", | 842 | "proc-macro2", |
@@ -885,9 +895,9 @@ dependencies = [ | |||
885 | 895 | ||
886 | [[package]] | 896 | [[package]] |
887 | name = "quote" | 897 | name = "quote" |
888 | version = "1.0.3" | 898 | version = "1.0.4" |
889 | source = "registry+https://github.com/rust-lang/crates.io-index" | 899 | source = "registry+https://github.com/rust-lang/crates.io-index" |
890 | checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" | 900 | checksum = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7" |
891 | dependencies = [ | 901 | dependencies = [ |
892 | "proc-macro2", | 902 | "proc-macro2", |
893 | ] | 903 | ] |
@@ -1023,7 +1033,7 @@ dependencies = [ | |||
1023 | "chalk-ir", | 1033 | "chalk-ir", |
1024 | "chalk-rust-ir", | 1034 | "chalk-rust-ir", |
1025 | "chalk-solve", | 1035 | "chalk-solve", |
1026 | "ena", | 1036 | "ena 0.14.0", |
1027 | "insta", | 1037 | "insta", |
1028 | "itertools", | 1038 | "itertools", |
1029 | "log", | 1039 | "log", |
@@ -1193,9 +1203,9 @@ dependencies = [ | |||
1193 | 1203 | ||
1194 | [[package]] | 1204 | [[package]] |
1195 | name = "ra_vfs" | 1205 | name = "ra_vfs" |
1196 | version = "0.5.3" | 1206 | version = "0.6.0" |
1197 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1207 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1198 | checksum = "58a265769d5e5655345a9fcbd870a1a7c3658558c0d8efaed79e0669358f46b8" | 1208 | checksum = "fcaa5615f420134aea7667253db101d03a5c5f300eac607872dc2a36407b2ac9" |
1199 | dependencies = [ | 1209 | dependencies = [ |
1200 | "crossbeam-channel", | 1210 | "crossbeam-channel", |
1201 | "jod-thread", | 1211 | "jod-thread", |
@@ -1374,9 +1384,9 @@ dependencies = [ | |||
1374 | 1384 | ||
1375 | [[package]] | 1385 | [[package]] |
1376 | name = "rustc-ap-rustc_lexer" | 1386 | name = "rustc-ap-rustc_lexer" |
1377 | version = "652.0.0" | 1387 | version = "656.0.0" |
1378 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1388 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1379 | checksum = "3a6a43c4d0889218c5e2ae68ffea239f303fc05ab1078c73f74e63feb87f7889" | 1389 | checksum = "9cbba98ec46e96a4663197dfa8c0378752de2006e314e5400c0ca74929d6692f" |
1380 | dependencies = [ | 1390 | dependencies = [ |
1381 | "unicode-xid", | 1391 | "unicode-xid", |
1382 | ] | 1392 | ] |
@@ -1486,18 +1496,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" | |||
1486 | 1496 | ||
1487 | [[package]] | 1497 | [[package]] |
1488 | name = "serde" | 1498 | name = "serde" |
1489 | version = "1.0.104" | 1499 | version = "1.0.106" |
1490 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1500 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1491 | checksum = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449" | 1501 | checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399" |
1492 | dependencies = [ | 1502 | dependencies = [ |
1493 | "serde_derive", | 1503 | "serde_derive", |
1494 | ] | 1504 | ] |
1495 | 1505 | ||
1496 | [[package]] | 1506 | [[package]] |
1497 | name = "serde_derive" | 1507 | name = "serde_derive" |
1498 | version = "1.0.104" | 1508 | version = "1.0.106" |
1499 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1509 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1500 | checksum = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64" | 1510 | checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" |
1501 | dependencies = [ | 1511 | dependencies = [ |
1502 | "proc-macro2", | 1512 | "proc-macro2", |
1503 | "quote", | 1513 | "quote", |
@@ -1506,9 +1516,9 @@ dependencies = [ | |||
1506 | 1516 | ||
1507 | [[package]] | 1517 | [[package]] |
1508 | name = "serde_json" | 1518 | name = "serde_json" |
1509 | version = "1.0.51" | 1519 | version = "1.0.52" |
1510 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1520 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1511 | checksum = "da07b57ee2623368351e9a0488bb0b261322a15a6e0ae53e243cbdc0f4208da9" | 1521 | checksum = "a7894c8ed05b7a3a279aeb79025fdec1d3158080b75b98a08faf2806bb799edd" |
1512 | dependencies = [ | 1522 | dependencies = [ |
1513 | "itoa", | 1523 | "itoa", |
1514 | "ryu", | 1524 | "ryu", |
@@ -1607,6 +1617,16 @@ dependencies = [ | |||
1607 | ] | 1617 | ] |
1608 | 1618 | ||
1609 | [[package]] | 1619 | [[package]] |
1620 | name = "terminal_size" | ||
1621 | version = "0.1.12" | ||
1622 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1623 | checksum = "8038f95fc7a6f351163f4b964af631bd26c9e828f7db085f2a84aca56f70d13b" | ||
1624 | dependencies = [ | ||
1625 | "libc", | ||
1626 | "winapi 0.3.8", | ||
1627 | ] | ||
1628 | |||
1629 | [[package]] | ||
1610 | name = "termios" | 1630 | name = "termios" |
1611 | version = "0.3.2" | 1631 | version = "0.3.2" |
1612 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1632 | source = "registry+https://github.com/rust-lang/crates.io-index" |
diff --git a/crates/ra_assists/src/ast_transform.rs b/crates/ra_assists/src/ast_transform.rs index 52b4c82db..9ac65ab39 100644 --- a/crates/ra_assists/src/ast_transform.rs +++ b/crates/ra_assists/src/ast_transform.rs | |||
@@ -85,6 +85,7 @@ impl<'a> SubstituteTypeParams<'a> { | |||
85 | ast::TypeRef::PathType(path_type) => path_type.path()?, | 85 | ast::TypeRef::PathType(path_type) => path_type.path()?, |
86 | _ => return None, | 86 | _ => return None, |
87 | }; | 87 | }; |
88 | // FIXME: use `hir::Path::from_src` instead. | ||
88 | let path = hir::Path::from_ast(path)?; | 89 | let path = hir::Path::from_ast(path)?; |
89 | let resolution = self.source_scope.resolve_hir_path(&path)?; | 90 | let resolution = self.source_scope.resolve_hir_path(&path)?; |
90 | match resolution { | 91 | match resolution { |
@@ -128,6 +129,7 @@ impl<'a> QualifyPaths<'a> { | |||
128 | // don't try to qualify `Fn(Foo) -> Bar` paths, they are in prelude anyway | 129 | // don't try to qualify `Fn(Foo) -> Bar` paths, they are in prelude anyway |
129 | return None; | 130 | return None; |
130 | } | 131 | } |
132 | // FIXME: use `hir::Path::from_src` instead. | ||
131 | let hir_path = hir::Path::from_ast(p.clone()); | 133 | let hir_path = hir::Path::from_ast(p.clone()); |
132 | let resolution = self.source_scope.resolve_hir_path(&hir_path?)?; | 134 | let resolution = self.source_scope.resolve_hir_path(&hir_path?)?; |
133 | match resolution { | 135 | match resolution { |
diff --git a/crates/ra_assists/src/doc_tests/generated.rs b/crates/ra_assists/src/doc_tests/generated.rs index e4fa9ee36..6696cc832 100644 --- a/crates/ra_assists/src/doc_tests/generated.rs +++ b/crates/ra_assists/src/doc_tests/generated.rs | |||
@@ -180,7 +180,9 @@ trait Trait<T> { | |||
180 | } | 180 | } |
181 | 181 | ||
182 | impl Trait<u32> for () { | 182 | impl Trait<u32> for () { |
183 | fn foo(&self) -> u32 { todo!() } | 183 | fn foo(&self) -> u32 { |
184 | todo!() | ||
185 | } | ||
184 | 186 | ||
185 | } | 187 | } |
186 | "#####, | 188 | "#####, |
@@ -726,3 +728,22 @@ use std::{collections::HashMap}; | |||
726 | "#####, | 728 | "#####, |
727 | ) | 729 | ) |
728 | } | 730 | } |
731 | |||
732 | #[test] | ||
733 | fn doctest_unwrap_block() { | ||
734 | check( | ||
735 | "unwrap_block", | ||
736 | r#####" | ||
737 | fn foo() { | ||
738 | if true {<|> | ||
739 | println!("foo"); | ||
740 | } | ||
741 | } | ||
742 | "#####, | ||
743 | r#####" | ||
744 | fn foo() { | ||
745 | println!("foo"); | ||
746 | } | ||
747 | "#####, | ||
748 | ) | ||
749 | } | ||
diff --git a/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs b/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs index 03806724a..49deb6701 100644 --- a/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs +++ b/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs | |||
@@ -1,11 +1,12 @@ | |||
1 | use ra_ide_db::RootDatabase; | ||
1 | use ra_syntax::{ | 2 | use ra_syntax::{ |
2 | ast::{self, AstNode, NameOwner}, | 3 | ast::{self, AstNode, NameOwner}, |
3 | TextSize, | 4 | TextSize, |
4 | }; | 5 | }; |
5 | use stdx::format_to; | 6 | use stdx::format_to; |
6 | 7 | ||
7 | use crate::{Assist, AssistCtx, AssistId}; | 8 | use crate::{utils::FamousDefs, Assist, AssistCtx, AssistId}; |
8 | use ra_ide_db::RootDatabase; | 9 | use test_utils::tested_by; |
9 | 10 | ||
10 | // Assist add_from_impl_for_enum | 11 | // Assist add_from_impl_for_enum |
11 | // | 12 | // |
@@ -41,7 +42,8 @@ pub(crate) fn add_from_impl_for_enum(ctx: AssistCtx) -> Option<Assist> { | |||
41 | _ => return None, | 42 | _ => return None, |
42 | }; | 43 | }; |
43 | 44 | ||
44 | if already_has_from_impl(ctx.sema, &variant) { | 45 | if existing_from_impl(ctx.sema, &variant).is_some() { |
46 | tested_by!(test_add_from_impl_already_exists); | ||
45 | return None; | 47 | return None; |
46 | } | 48 | } |
47 | 49 | ||
@@ -70,41 +72,33 @@ impl From<{0}> for {1} {{ | |||
70 | ) | 72 | ) |
71 | } | 73 | } |
72 | 74 | ||
73 | fn already_has_from_impl( | 75 | fn existing_from_impl( |
74 | sema: &'_ hir::Semantics<'_, RootDatabase>, | 76 | sema: &'_ hir::Semantics<'_, RootDatabase>, |
75 | variant: &ast::EnumVariant, | 77 | variant: &ast::EnumVariant, |
76 | ) -> bool { | 78 | ) -> Option<()> { |
77 | let scope = sema.scope(&variant.syntax()); | 79 | let variant = sema.to_def(variant)?; |
80 | let enum_ = variant.parent_enum(sema.db); | ||
81 | let krate = enum_.module(sema.db).krate(); | ||
78 | 82 | ||
79 | let from_path = ast::make::path_from_text("From"); | 83 | let from_trait = FamousDefs(sema, krate).core_convert_From()?; |
80 | let from_hir_path = match hir::Path::from_ast(from_path) { | ||
81 | Some(p) => p, | ||
82 | None => return false, | ||
83 | }; | ||
84 | let from_trait = match scope.resolve_hir_path(&from_hir_path) { | ||
85 | Some(hir::PathResolution::Def(hir::ModuleDef::Trait(t))) => t, | ||
86 | _ => return false, | ||
87 | }; | ||
88 | 84 | ||
89 | let e: hir::Enum = match sema.to_def(&variant.parent_enum()) { | 85 | let enum_type = enum_.ty(sema.db); |
90 | Some(e) => e, | ||
91 | None => return false, | ||
92 | }; | ||
93 | let e_ty = e.ty(sema.db); | ||
94 | 86 | ||
95 | let hir_enum_var: hir::EnumVariant = match sema.to_def(variant) { | 87 | let wrapped_type = variant.fields(sema.db).get(0)?.signature_ty(sema.db); |
96 | Some(ev) => ev, | ||
97 | None => return false, | ||
98 | }; | ||
99 | let var_ty = hir_enum_var.fields(sema.db)[0].signature_ty(sema.db); | ||
100 | 88 | ||
101 | e_ty.impls_trait(sema.db, from_trait, &[var_ty]) | 89 | if enum_type.impls_trait(sema.db, from_trait, &[wrapped_type]) { |
90 | Some(()) | ||
91 | } else { | ||
92 | None | ||
93 | } | ||
102 | } | 94 | } |
103 | 95 | ||
104 | #[cfg(test)] | 96 | #[cfg(test)] |
105 | mod tests { | 97 | mod tests { |
106 | use super::*; | 98 | use super::*; |
99 | |||
107 | use crate::helpers::{check_assist, check_assist_not_applicable}; | 100 | use crate::helpers::{check_assist, check_assist_not_applicable}; |
101 | use test_utils::covers; | ||
108 | 102 | ||
109 | #[test] | 103 | #[test] |
110 | fn test_add_from_impl_for_enum() { | 104 | fn test_add_from_impl_for_enum() { |
@@ -136,36 +130,40 @@ mod tests { | |||
136 | ); | 130 | ); |
137 | } | 131 | } |
138 | 132 | ||
133 | fn check_not_applicable(ra_fixture: &str) { | ||
134 | let fixture = | ||
135 | format!("//- main.rs crate:main deps:core\n{}\n{}", ra_fixture, FamousDefs::FIXTURE); | ||
136 | check_assist_not_applicable(add_from_impl_for_enum, &fixture) | ||
137 | } | ||
138 | |||
139 | #[test] | 139 | #[test] |
140 | fn test_add_from_impl_no_element() { | 140 | fn test_add_from_impl_no_element() { |
141 | check_assist_not_applicable(add_from_impl_for_enum, "enum A { <|>One }"); | 141 | check_not_applicable("enum A { <|>One }"); |
142 | } | 142 | } |
143 | 143 | ||
144 | #[test] | 144 | #[test] |
145 | fn test_add_from_impl_more_than_one_element_in_tuple() { | 145 | fn test_add_from_impl_more_than_one_element_in_tuple() { |
146 | check_assist_not_applicable(add_from_impl_for_enum, "enum A { <|>One(u32, String) }"); | 146 | check_not_applicable("enum A { <|>One(u32, String) }"); |
147 | } | 147 | } |
148 | 148 | ||
149 | #[test] | 149 | #[test] |
150 | fn test_add_from_impl_struct_variant() { | 150 | fn test_add_from_impl_struct_variant() { |
151 | check_assist_not_applicable(add_from_impl_for_enum, "enum A { <|>One { x: u32 } }"); | 151 | check_not_applicable("enum A { <|>One { x: u32 } }"); |
152 | } | 152 | } |
153 | 153 | ||
154 | #[test] | 154 | #[test] |
155 | fn test_add_from_impl_already_exists() { | 155 | fn test_add_from_impl_already_exists() { |
156 | check_assist_not_applicable( | 156 | covers!(test_add_from_impl_already_exists); |
157 | add_from_impl_for_enum, | 157 | check_not_applicable( |
158 | r#"enum A { <|>One(u32), } | 158 | r#" |
159 | enum A { <|>One(u32), } | ||
159 | 160 | ||
160 | impl From<u32> for A { | 161 | impl From<u32> for A { |
161 | fn from(v: u32) -> Self { | 162 | fn from(v: u32) -> Self { |
162 | A::One(v) | 163 | A::One(v) |
163 | } | 164 | } |
164 | } | 165 | } |
165 | 166 | "#, | |
166 | pub trait From<T> { | ||
167 | fn from(T) -> Self; | ||
168 | }"#, | ||
169 | ); | 167 | ); |
170 | } | 168 | } |
171 | 169 | ||
diff --git a/crates/ra_assists/src/handlers/add_missing_impl_members.rs b/crates/ra_assists/src/handlers/add_missing_impl_members.rs index 2d6d44980..e466c9a86 100644 --- a/crates/ra_assists/src/handlers/add_missing_impl_members.rs +++ b/crates/ra_assists/src/handlers/add_missing_impl_members.rs | |||
@@ -1,6 +1,10 @@ | |||
1 | use hir::HasSource; | 1 | use hir::HasSource; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | ast::{self, edit, make, AstNode, NameOwner}, | 3 | ast::{ |
4 | self, | ||
5 | edit::{self, IndentLevel}, | ||
6 | make, AstNode, NameOwner, | ||
7 | }, | ||
4 | SmolStr, | 8 | SmolStr, |
5 | }; | 9 | }; |
6 | 10 | ||
@@ -40,7 +44,9 @@ enum AddMissingImplMembersMode { | |||
40 | // } | 44 | // } |
41 | // | 45 | // |
42 | // impl Trait<u32> for () { | 46 | // impl Trait<u32> for () { |
43 | // fn foo(&self) -> u32 { todo!() } | 47 | // fn foo(&self) -> u32 { |
48 | // todo!() | ||
49 | // } | ||
44 | // | 50 | // |
45 | // } | 51 | // } |
46 | // ``` | 52 | // ``` |
@@ -165,7 +171,9 @@ fn add_missing_impl_members_inner( | |||
165 | 171 | ||
166 | fn add_body(fn_def: ast::FnDef) -> ast::FnDef { | 172 | fn add_body(fn_def: ast::FnDef) -> ast::FnDef { |
167 | if fn_def.body().is_none() { | 173 | if fn_def.body().is_none() { |
168 | fn_def.with_body(make::block_from_expr(make::expr_todo())) | 174 | let body = make::block_expr(None, Some(make::expr_todo())); |
175 | let body = IndentLevel(1).increase_indent(body); | ||
176 | fn_def.with_body(body) | ||
169 | } else { | 177 | } else { |
170 | fn_def | 178 | fn_def |
171 | } | 179 | } |
@@ -181,7 +189,7 @@ mod tests { | |||
181 | fn test_add_missing_impl_members() { | 189 | fn test_add_missing_impl_members() { |
182 | check_assist( | 190 | check_assist( |
183 | add_missing_impl_members, | 191 | add_missing_impl_members, |
184 | " | 192 | r#" |
185 | trait Foo { | 193 | trait Foo { |
186 | type Output; | 194 | type Output; |
187 | 195 | ||
@@ -197,8 +205,8 @@ struct S; | |||
197 | impl Foo for S { | 205 | impl Foo for S { |
198 | fn bar(&self) {} | 206 | fn bar(&self) {} |
199 | <|> | 207 | <|> |
200 | }", | 208 | }"#, |
201 | " | 209 | r#" |
202 | trait Foo { | 210 | trait Foo { |
203 | type Output; | 211 | type Output; |
204 | 212 | ||
@@ -215,10 +223,14 @@ impl Foo for S { | |||
215 | fn bar(&self) {} | 223 | fn bar(&self) {} |
216 | <|>type Output; | 224 | <|>type Output; |
217 | const CONST: usize = 42; | 225 | const CONST: usize = 42; |
218 | fn foo(&self) { todo!() } | 226 | fn foo(&self) { |
219 | fn baz(&self) { todo!() } | 227 | todo!() |
228 | } | ||
229 | fn baz(&self) { | ||
230 | todo!() | ||
231 | } | ||
220 | 232 | ||
221 | }", | 233 | }"#, |
222 | ); | 234 | ); |
223 | } | 235 | } |
224 | 236 | ||
@@ -226,7 +238,7 @@ impl Foo for S { | |||
226 | fn test_copied_overriden_members() { | 238 | fn test_copied_overriden_members() { |
227 | check_assist( | 239 | check_assist( |
228 | add_missing_impl_members, | 240 | add_missing_impl_members, |
229 | " | 241 | r#" |
230 | trait Foo { | 242 | trait Foo { |
231 | fn foo(&self); | 243 | fn foo(&self); |
232 | fn bar(&self) -> bool { true } | 244 | fn bar(&self) -> bool { true } |
@@ -238,8 +250,8 @@ struct S; | |||
238 | impl Foo for S { | 250 | impl Foo for S { |
239 | fn bar(&self) {} | 251 | fn bar(&self) {} |
240 | <|> | 252 | <|> |
241 | }", | 253 | }"#, |
242 | " | 254 | r#" |
243 | trait Foo { | 255 | trait Foo { |
244 | fn foo(&self); | 256 | fn foo(&self); |
245 | fn bar(&self) -> bool { true } | 257 | fn bar(&self) -> bool { true } |
@@ -250,9 +262,11 @@ struct S; | |||
250 | 262 | ||
251 | impl Foo for S { | 263 | impl Foo for S { |
252 | fn bar(&self) {} | 264 | fn bar(&self) {} |
253 | <|>fn foo(&self) { todo!() } | 265 | <|>fn foo(&self) { |
266 | todo!() | ||
267 | } | ||
254 | 268 | ||
255 | }", | 269 | }"#, |
256 | ); | 270 | ); |
257 | } | 271 | } |
258 | 272 | ||
@@ -260,16 +274,18 @@ impl Foo for S { | |||
260 | fn test_empty_impl_def() { | 274 | fn test_empty_impl_def() { |
261 | check_assist( | 275 | check_assist( |
262 | add_missing_impl_members, | 276 | add_missing_impl_members, |
263 | " | 277 | r#" |
264 | trait Foo { fn foo(&self); } | 278 | trait Foo { fn foo(&self); } |
265 | struct S; | 279 | struct S; |
266 | impl Foo for S { <|> }", | 280 | impl Foo for S { <|> }"#, |
267 | " | 281 | r#" |
268 | trait Foo { fn foo(&self); } | 282 | trait Foo { fn foo(&self); } |
269 | struct S; | 283 | struct S; |
270 | impl Foo for S { | 284 | impl Foo for S { |
271 | <|>fn foo(&self) { todo!() } | 285 | <|>fn foo(&self) { |
272 | }", | 286 | todo!() |
287 | } | ||
288 | }"#, | ||
273 | ); | 289 | ); |
274 | } | 290 | } |
275 | 291 | ||
@@ -277,16 +293,18 @@ impl Foo for S { | |||
277 | fn fill_in_type_params_1() { | 293 | fn fill_in_type_params_1() { |
278 | check_assist( | 294 | check_assist( |
279 | add_missing_impl_members, | 295 | add_missing_impl_members, |
280 | " | 296 | r#" |
281 | trait Foo<T> { fn foo(&self, t: T) -> &T; } | 297 | trait Foo<T> { fn foo(&self, t: T) -> &T; } |
282 | struct S; | 298 | struct S; |
283 | impl Foo<u32> for S { <|> }", | 299 | impl Foo<u32> for S { <|> }"#, |
284 | " | 300 | r#" |
285 | trait Foo<T> { fn foo(&self, t: T) -> &T; } | 301 | trait Foo<T> { fn foo(&self, t: T) -> &T; } |
286 | struct S; | 302 | struct S; |
287 | impl Foo<u32> for S { | 303 | impl Foo<u32> for S { |
288 | <|>fn foo(&self, t: u32) -> &u32 { todo!() } | 304 | <|>fn foo(&self, t: u32) -> &u32 { |
289 | }", | 305 | todo!() |
306 | } | ||
307 | }"#, | ||
290 | ); | 308 | ); |
291 | } | 309 | } |
292 | 310 | ||
@@ -294,16 +312,18 @@ impl Foo<u32> for S { | |||
294 | fn fill_in_type_params_2() { | 312 | fn fill_in_type_params_2() { |
295 | check_assist( | 313 | check_assist( |
296 | add_missing_impl_members, | 314 | add_missing_impl_members, |
297 | " | 315 | r#" |
298 | trait Foo<T> { fn foo(&self, t: T) -> &T; } | 316 | trait Foo<T> { fn foo(&self, t: T) -> &T; } |
299 | struct S; | 317 | struct S; |
300 | impl<U> Foo<U> for S { <|> }", | 318 | impl<U> Foo<U> for S { <|> }"#, |
301 | " | 319 | r#" |
302 | trait Foo<T> { fn foo(&self, t: T) -> &T; } | 320 | trait Foo<T> { fn foo(&self, t: T) -> &T; } |
303 | struct S; | 321 | struct S; |
304 | impl<U> Foo<U> for S { | 322 | impl<U> Foo<U> for S { |
305 | <|>fn foo(&self, t: U) -> &U { todo!() } | 323 | <|>fn foo(&self, t: U) -> &U { |
306 | }", | 324 | todo!() |
325 | } | ||
326 | }"#, | ||
307 | ); | 327 | ); |
308 | } | 328 | } |
309 | 329 | ||
@@ -311,16 +331,18 @@ impl<U> Foo<U> for S { | |||
311 | fn test_cursor_after_empty_impl_def() { | 331 | fn test_cursor_after_empty_impl_def() { |
312 | check_assist( | 332 | check_assist( |
313 | add_missing_impl_members, | 333 | add_missing_impl_members, |
314 | " | 334 | r#" |
315 | trait Foo { fn foo(&self); } | 335 | trait Foo { fn foo(&self); } |
316 | struct S; | 336 | struct S; |
317 | impl Foo for S {}<|>", | 337 | impl Foo for S {}<|>"#, |
318 | " | 338 | r#" |
319 | trait Foo { fn foo(&self); } | 339 | trait Foo { fn foo(&self); } |
320 | struct S; | 340 | struct S; |
321 | impl Foo for S { | 341 | impl Foo for S { |
322 | <|>fn foo(&self) { todo!() } | 342 | <|>fn foo(&self) { |
323 | }", | 343 | todo!() |
344 | } | ||
345 | }"#, | ||
324 | ) | 346 | ) |
325 | } | 347 | } |
326 | 348 | ||
@@ -328,22 +350,24 @@ impl Foo for S { | |||
328 | fn test_qualify_path_1() { | 350 | fn test_qualify_path_1() { |
329 | check_assist( | 351 | check_assist( |
330 | add_missing_impl_members, | 352 | add_missing_impl_members, |
331 | " | 353 | r#" |
332 | mod foo { | 354 | mod foo { |
333 | pub struct Bar; | 355 | pub struct Bar; |
334 | trait Foo { fn foo(&self, bar: Bar); } | 356 | trait Foo { fn foo(&self, bar: Bar); } |
335 | } | 357 | } |
336 | struct S; | 358 | struct S; |
337 | impl foo::Foo for S { <|> }", | 359 | impl foo::Foo for S { <|> }"#, |
338 | " | 360 | r#" |
339 | mod foo { | 361 | mod foo { |
340 | pub struct Bar; | 362 | pub struct Bar; |
341 | trait Foo { fn foo(&self, bar: Bar); } | 363 | trait Foo { fn foo(&self, bar: Bar); } |
342 | } | 364 | } |
343 | struct S; | 365 | struct S; |
344 | impl foo::Foo for S { | 366 | impl foo::Foo for S { |
345 | <|>fn foo(&self, bar: foo::Bar) { todo!() } | 367 | <|>fn foo(&self, bar: foo::Bar) { |
346 | }", | 368 | todo!() |
369 | } | ||
370 | }"#, | ||
347 | ); | 371 | ); |
348 | } | 372 | } |
349 | 373 | ||
@@ -351,22 +375,24 @@ impl foo::Foo for S { | |||
351 | fn test_qualify_path_generic() { | 375 | fn test_qualify_path_generic() { |
352 | check_assist( | 376 | check_assist( |
353 | add_missing_impl_members, | 377 | add_missing_impl_members, |
354 | " | 378 | r#" |
355 | mod foo { | 379 | mod foo { |
356 | pub struct Bar<T>; | 380 | pub struct Bar<T>; |
357 | trait Foo { fn foo(&self, bar: Bar<u32>); } | 381 | trait Foo { fn foo(&self, bar: Bar<u32>); } |
358 | } | 382 | } |
359 | struct S; | 383 | struct S; |
360 | impl foo::Foo for S { <|> }", | 384 | impl foo::Foo for S { <|> }"#, |
361 | " | 385 | r#" |
362 | mod foo { | 386 | mod foo { |
363 | pub struct Bar<T>; | 387 | pub struct Bar<T>; |
364 | trait Foo { fn foo(&self, bar: Bar<u32>); } | 388 | trait Foo { fn foo(&self, bar: Bar<u32>); } |
365 | } | 389 | } |
366 | struct S; | 390 | struct S; |
367 | impl foo::Foo for S { | 391 | impl foo::Foo for S { |
368 | <|>fn foo(&self, bar: foo::Bar<u32>) { todo!() } | 392 | <|>fn foo(&self, bar: foo::Bar<u32>) { |
369 | }", | 393 | todo!() |
394 | } | ||
395 | }"#, | ||
370 | ); | 396 | ); |
371 | } | 397 | } |
372 | 398 | ||
@@ -374,22 +400,24 @@ impl foo::Foo for S { | |||
374 | fn test_qualify_path_and_substitute_param() { | 400 | fn test_qualify_path_and_substitute_param() { |
375 | check_assist( | 401 | check_assist( |
376 | add_missing_impl_members, | 402 | add_missing_impl_members, |
377 | " | 403 | r#" |
378 | mod foo { | 404 | mod foo { |
379 | pub struct Bar<T>; | 405 | pub struct Bar<T>; |
380 | trait Foo<T> { fn foo(&self, bar: Bar<T>); } | 406 | trait Foo<T> { fn foo(&self, bar: Bar<T>); } |
381 | } | 407 | } |
382 | struct S; | 408 | struct S; |
383 | impl foo::Foo<u32> for S { <|> }", | 409 | impl foo::Foo<u32> for S { <|> }"#, |
384 | " | 410 | r#" |
385 | mod foo { | 411 | mod foo { |
386 | pub struct Bar<T>; | 412 | pub struct Bar<T>; |
387 | trait Foo<T> { fn foo(&self, bar: Bar<T>); } | 413 | trait Foo<T> { fn foo(&self, bar: Bar<T>); } |
388 | } | 414 | } |
389 | struct S; | 415 | struct S; |
390 | impl foo::Foo<u32> for S { | 416 | impl foo::Foo<u32> for S { |
391 | <|>fn foo(&self, bar: foo::Bar<u32>) { todo!() } | 417 | <|>fn foo(&self, bar: foo::Bar<u32>) { |
392 | }", | 418 | todo!() |
419 | } | ||
420 | }"#, | ||
393 | ); | 421 | ); |
394 | } | 422 | } |
395 | 423 | ||
@@ -398,15 +426,15 @@ impl foo::Foo<u32> for S { | |||
398 | // when substituting params, the substituted param should not be qualified! | 426 | // when substituting params, the substituted param should not be qualified! |
399 | check_assist( | 427 | check_assist( |
400 | add_missing_impl_members, | 428 | add_missing_impl_members, |
401 | " | 429 | r#" |
402 | mod foo { | 430 | mod foo { |
403 | trait Foo<T> { fn foo(&self, bar: T); } | 431 | trait Foo<T> { fn foo(&self, bar: T); } |
404 | pub struct Param; | 432 | pub struct Param; |
405 | } | 433 | } |
406 | struct Param; | 434 | struct Param; |
407 | struct S; | 435 | struct S; |
408 | impl foo::Foo<Param> for S { <|> }", | 436 | impl foo::Foo<Param> for S { <|> }"#, |
409 | " | 437 | r#" |
410 | mod foo { | 438 | mod foo { |
411 | trait Foo<T> { fn foo(&self, bar: T); } | 439 | trait Foo<T> { fn foo(&self, bar: T); } |
412 | pub struct Param; | 440 | pub struct Param; |
@@ -414,8 +442,10 @@ mod foo { | |||
414 | struct Param; | 442 | struct Param; |
415 | struct S; | 443 | struct S; |
416 | impl foo::Foo<Param> for S { | 444 | impl foo::Foo<Param> for S { |
417 | <|>fn foo(&self, bar: Param) { todo!() } | 445 | <|>fn foo(&self, bar: Param) { |
418 | }", | 446 | todo!() |
447 | } | ||
448 | }"#, | ||
419 | ); | 449 | ); |
420 | } | 450 | } |
421 | 451 | ||
@@ -423,15 +453,15 @@ impl foo::Foo<Param> for S { | |||
423 | fn test_qualify_path_associated_item() { | 453 | fn test_qualify_path_associated_item() { |
424 | check_assist( | 454 | check_assist( |
425 | add_missing_impl_members, | 455 | add_missing_impl_members, |
426 | " | 456 | r#" |
427 | mod foo { | 457 | mod foo { |
428 | pub struct Bar<T>; | 458 | pub struct Bar<T>; |
429 | impl Bar<T> { type Assoc = u32; } | 459 | impl Bar<T> { type Assoc = u32; } |
430 | trait Foo { fn foo(&self, bar: Bar<u32>::Assoc); } | 460 | trait Foo { fn foo(&self, bar: Bar<u32>::Assoc); } |
431 | } | 461 | } |
432 | struct S; | 462 | struct S; |
433 | impl foo::Foo for S { <|> }", | 463 | impl foo::Foo for S { <|> }"#, |
434 | " | 464 | r#" |
435 | mod foo { | 465 | mod foo { |
436 | pub struct Bar<T>; | 466 | pub struct Bar<T>; |
437 | impl Bar<T> { type Assoc = u32; } | 467 | impl Bar<T> { type Assoc = u32; } |
@@ -439,8 +469,10 @@ mod foo { | |||
439 | } | 469 | } |
440 | struct S; | 470 | struct S; |
441 | impl foo::Foo for S { | 471 | impl foo::Foo for S { |
442 | <|>fn foo(&self, bar: foo::Bar<u32>::Assoc) { todo!() } | 472 | <|>fn foo(&self, bar: foo::Bar<u32>::Assoc) { |
443 | }", | 473 | todo!() |
474 | } | ||
475 | }"#, | ||
444 | ); | 476 | ); |
445 | } | 477 | } |
446 | 478 | ||
@@ -448,15 +480,15 @@ impl foo::Foo for S { | |||
448 | fn test_qualify_path_nested() { | 480 | fn test_qualify_path_nested() { |
449 | check_assist( | 481 | check_assist( |
450 | add_missing_impl_members, | 482 | add_missing_impl_members, |
451 | " | 483 | r#" |
452 | mod foo { | 484 | mod foo { |
453 | pub struct Bar<T>; | 485 | pub struct Bar<T>; |
454 | pub struct Baz; | 486 | pub struct Baz; |
455 | trait Foo { fn foo(&self, bar: Bar<Baz>); } | 487 | trait Foo { fn foo(&self, bar: Bar<Baz>); } |
456 | } | 488 | } |
457 | struct S; | 489 | struct S; |
458 | impl foo::Foo for S { <|> }", | 490 | impl foo::Foo for S { <|> }"#, |
459 | " | 491 | r#" |
460 | mod foo { | 492 | mod foo { |
461 | pub struct Bar<T>; | 493 | pub struct Bar<T>; |
462 | pub struct Baz; | 494 | pub struct Baz; |
@@ -464,8 +496,10 @@ mod foo { | |||
464 | } | 496 | } |
465 | struct S; | 497 | struct S; |
466 | impl foo::Foo for S { | 498 | impl foo::Foo for S { |
467 | <|>fn foo(&self, bar: foo::Bar<foo::Baz>) { todo!() } | 499 | <|>fn foo(&self, bar: foo::Bar<foo::Baz>) { |
468 | }", | 500 | todo!() |
501 | } | ||
502 | }"#, | ||
469 | ); | 503 | ); |
470 | } | 504 | } |
471 | 505 | ||
@@ -473,22 +507,24 @@ impl foo::Foo for S { | |||
473 | fn test_qualify_path_fn_trait_notation() { | 507 | fn test_qualify_path_fn_trait_notation() { |
474 | check_assist( | 508 | check_assist( |
475 | add_missing_impl_members, | 509 | add_missing_impl_members, |
476 | " | 510 | r#" |
477 | mod foo { | 511 | mod foo { |
478 | pub trait Fn<Args> { type Output; } | 512 | pub trait Fn<Args> { type Output; } |
479 | trait Foo { fn foo(&self, bar: dyn Fn(u32) -> i32); } | 513 | trait Foo { fn foo(&self, bar: dyn Fn(u32) -> i32); } |
480 | } | 514 | } |
481 | struct S; | 515 | struct S; |
482 | impl foo::Foo for S { <|> }", | 516 | impl foo::Foo for S { <|> }"#, |
483 | " | 517 | r#" |
484 | mod foo { | 518 | mod foo { |
485 | pub trait Fn<Args> { type Output; } | 519 | pub trait Fn<Args> { type Output; } |
486 | trait Foo { fn foo(&self, bar: dyn Fn(u32) -> i32); } | 520 | trait Foo { fn foo(&self, bar: dyn Fn(u32) -> i32); } |
487 | } | 521 | } |
488 | struct S; | 522 | struct S; |
489 | impl foo::Foo for S { | 523 | impl foo::Foo for S { |
490 | <|>fn foo(&self, bar: dyn Fn(u32) -> i32) { todo!() } | 524 | <|>fn foo(&self, bar: dyn Fn(u32) -> i32) { |
491 | }", | 525 | todo!() |
526 | } | ||
527 | }"#, | ||
492 | ); | 528 | ); |
493 | } | 529 | } |
494 | 530 | ||
@@ -496,10 +532,10 @@ impl foo::Foo for S { | |||
496 | fn test_empty_trait() { | 532 | fn test_empty_trait() { |
497 | check_assist_not_applicable( | 533 | check_assist_not_applicable( |
498 | add_missing_impl_members, | 534 | add_missing_impl_members, |
499 | " | 535 | r#" |
500 | trait Foo; | 536 | trait Foo; |
501 | struct S; | 537 | struct S; |
502 | impl Foo for S { <|> }", | 538 | impl Foo for S { <|> }"#, |
503 | ) | 539 | ) |
504 | } | 540 | } |
505 | 541 | ||
@@ -507,13 +543,13 @@ impl Foo for S { <|> }", | |||
507 | fn test_ignore_unnamed_trait_members_and_default_methods() { | 543 | fn test_ignore_unnamed_trait_members_and_default_methods() { |
508 | check_assist_not_applicable( | 544 | check_assist_not_applicable( |
509 | add_missing_impl_members, | 545 | add_missing_impl_members, |
510 | " | 546 | r#" |
511 | trait Foo { | 547 | trait Foo { |
512 | fn (arg: u32); | 548 | fn (arg: u32); |
513 | fn valid(some: u32) -> bool { false } | 549 | fn valid(some: u32) -> bool { false } |
514 | } | 550 | } |
515 | struct S; | 551 | struct S; |
516 | impl Foo for S { <|> }", | 552 | impl Foo for S { <|> }"#, |
517 | ) | 553 | ) |
518 | } | 554 | } |
519 | 555 | ||
@@ -544,7 +580,9 @@ trait Foo { | |||
544 | struct S; | 580 | struct S; |
545 | impl Foo for S { | 581 | impl Foo for S { |
546 | <|>type Output; | 582 | <|>type Output; |
547 | fn foo(&self) { todo!() } | 583 | fn foo(&self) { |
584 | todo!() | ||
585 | } | ||
548 | }"#, | 586 | }"#, |
549 | ) | 587 | ) |
550 | } | 588 | } |
@@ -553,7 +591,7 @@ impl Foo for S { | |||
553 | fn test_default_methods() { | 591 | fn test_default_methods() { |
554 | check_assist( | 592 | check_assist( |
555 | add_missing_default_members, | 593 | add_missing_default_members, |
556 | " | 594 | r#" |
557 | trait Foo { | 595 | trait Foo { |
558 | type Output; | 596 | type Output; |
559 | 597 | ||
@@ -563,8 +601,8 @@ trait Foo { | |||
563 | fn foo(some: u32) -> bool; | 601 | fn foo(some: u32) -> bool; |
564 | } | 602 | } |
565 | struct S; | 603 | struct S; |
566 | impl Foo for S { <|> }", | 604 | impl Foo for S { <|> }"#, |
567 | " | 605 | r#" |
568 | trait Foo { | 606 | trait Foo { |
569 | type Output; | 607 | type Output; |
570 | 608 | ||
@@ -576,7 +614,7 @@ trait Foo { | |||
576 | struct S; | 614 | struct S; |
577 | impl Foo for S { | 615 | impl Foo for S { |
578 | <|>fn valid(some: u32) -> bool { false } | 616 | <|>fn valid(some: u32) -> bool { false } |
579 | }", | 617 | }"#, |
580 | ) | 618 | ) |
581 | } | 619 | } |
582 | } | 620 | } |
diff --git a/crates/ra_assists/src/handlers/early_return.rs b/crates/ra_assists/src/handlers/early_return.rs index ea6c56f8c..eede2fe91 100644 --- a/crates/ra_assists/src/handlers/early_return.rs +++ b/crates/ra_assists/src/handlers/early_return.rs | |||
@@ -2,7 +2,7 @@ use std::{iter::once, ops::RangeInclusive}; | |||
2 | 2 | ||
3 | use ra_syntax::{ | 3 | use ra_syntax::{ |
4 | algo::replace_children, | 4 | algo::replace_children, |
5 | ast::{self, edit::IndentLevel, make, Block, Pat::TupleStructPat}, | 5 | ast::{self, edit::IndentLevel, make}, |
6 | AstNode, | 6 | AstNode, |
7 | SyntaxKind::{FN_DEF, LOOP_EXPR, L_CURLY, R_CURLY, WHILE_EXPR, WHITESPACE}, | 7 | SyntaxKind::{FN_DEF, LOOP_EXPR, L_CURLY, R_CURLY, WHILE_EXPR, WHITESPACE}, |
8 | SyntaxNode, | 8 | SyntaxNode, |
@@ -47,7 +47,7 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx) -> Option<Assist> { | |||
47 | // Check if there is an IfLet that we can handle. | 47 | // Check if there is an IfLet that we can handle. |
48 | let if_let_pat = match cond.pat() { | 48 | let if_let_pat = match cond.pat() { |
49 | None => None, // No IfLet, supported. | 49 | None => None, // No IfLet, supported. |
50 | Some(TupleStructPat(pat)) if pat.args().count() == 1 => { | 50 | Some(ast::Pat::TupleStructPat(pat)) if pat.args().count() == 1 => { |
51 | let path = pat.path()?; | 51 | let path = pat.path()?; |
52 | match path.qualifier() { | 52 | match path.qualifier() { |
53 | None => { | 53 | None => { |
@@ -61,9 +61,9 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx) -> Option<Assist> { | |||
61 | }; | 61 | }; |
62 | 62 | ||
63 | let cond_expr = cond.expr()?; | 63 | let cond_expr = cond.expr()?; |
64 | let then_block = if_expr.then_branch()?.block()?; | 64 | let then_block = if_expr.then_branch()?; |
65 | 65 | ||
66 | let parent_block = if_expr.syntax().parent()?.ancestors().find_map(ast::Block::cast)?; | 66 | let parent_block = if_expr.syntax().parent()?.ancestors().find_map(ast::BlockExpr::cast)?; |
67 | 67 | ||
68 | if parent_block.expr()? != if_expr.clone().into() { | 68 | if parent_block.expr()? != if_expr.clone().into() { |
69 | return None; | 69 | return None; |
@@ -80,7 +80,7 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx) -> Option<Assist> { | |||
80 | return None; | 80 | return None; |
81 | } | 81 | } |
82 | 82 | ||
83 | let parent_container = parent_block.syntax().parent()?.parent()?; | 83 | let parent_container = parent_block.syntax().parent()?; |
84 | 84 | ||
85 | let early_expression: ast::Expr = match parent_container.kind() { | 85 | let early_expression: ast::Expr = match parent_container.kind() { |
86 | WHILE_EXPR | LOOP_EXPR => make::expr_continue(), | 86 | WHILE_EXPR | LOOP_EXPR => make::expr_continue(), |
@@ -144,13 +144,13 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx) -> Option<Assist> { | |||
144 | } | 144 | } |
145 | }; | 145 | }; |
146 | edit.target(if_expr.syntax().text_range()); | 146 | edit.target(if_expr.syntax().text_range()); |
147 | edit.replace_ast(parent_block, ast::Block::cast(new_block).unwrap()); | 147 | edit.replace_ast(parent_block, ast::BlockExpr::cast(new_block).unwrap()); |
148 | edit.set_cursor(cursor_position); | 148 | edit.set_cursor(cursor_position); |
149 | 149 | ||
150 | fn replace( | 150 | fn replace( |
151 | new_expr: &SyntaxNode, | 151 | new_expr: &SyntaxNode, |
152 | then_block: &Block, | 152 | then_block: &ast::BlockExpr, |
153 | parent_block: &Block, | 153 | parent_block: &ast::BlockExpr, |
154 | if_expr: &ast::IfExpr, | 154 | if_expr: &ast::IfExpr, |
155 | ) -> SyntaxNode { | 155 | ) -> SyntaxNode { |
156 | let then_block_items = IndentLevel::from(1).decrease_indent(then_block.clone()); | 156 | let then_block_items = IndentLevel::from(1).decrease_indent(then_block.clone()); |
diff --git a/crates/ra_assists/src/handlers/inline_local_variable.rs b/crates/ra_assists/src/handlers/inline_local_variable.rs index f5702f6e0..60ec536a7 100644 --- a/crates/ra_assists/src/handlers/inline_local_variable.rs +++ b/crates/ra_assists/src/handlers/inline_local_variable.rs | |||
@@ -89,6 +89,7 @@ pub(crate) fn inline_local_variable(ctx: AssistCtx) -> Option<Assist> { | |||
89 | | (ast::Expr::ParenExpr(_), _) | 89 | | (ast::Expr::ParenExpr(_), _) |
90 | | (ast::Expr::PathExpr(_), _) | 90 | | (ast::Expr::PathExpr(_), _) |
91 | | (ast::Expr::BlockExpr(_), _) | 91 | | (ast::Expr::BlockExpr(_), _) |
92 | | (ast::Expr::EffectExpr(_), _) | ||
92 | | (_, ast::Expr::CallExpr(_)) | 93 | | (_, ast::Expr::CallExpr(_)) |
93 | | (_, ast::Expr::TupleExpr(_)) | 94 | | (_, ast::Expr::TupleExpr(_)) |
94 | | (_, ast::Expr::ArrayExpr(_)) | 95 | | (_, ast::Expr::ArrayExpr(_)) |
diff --git a/crates/ra_assists/src/handlers/introduce_variable.rs b/crates/ra_assists/src/handlers/introduce_variable.rs index eda9ac296..39c656305 100644 --- a/crates/ra_assists/src/handlers/introduce_variable.rs +++ b/crates/ra_assists/src/handlers/introduce_variable.rs | |||
@@ -111,7 +111,7 @@ fn valid_target_expr(node: SyntaxNode) -> Option<ast::Expr> { | |||
111 | /// expression like a lambda or match arm. | 111 | /// expression like a lambda or match arm. |
112 | fn anchor_stmt(expr: ast::Expr) -> Option<(SyntaxNode, bool)> { | 112 | fn anchor_stmt(expr: ast::Expr) -> Option<(SyntaxNode, bool)> { |
113 | expr.syntax().ancestors().find_map(|node| { | 113 | expr.syntax().ancestors().find_map(|node| { |
114 | if let Some(expr) = node.parent().and_then(ast::Block::cast).and_then(|it| it.expr()) { | 114 | if let Some(expr) = node.parent().and_then(ast::BlockExpr::cast).and_then(|it| it.expr()) { |
115 | if expr.syntax() == &node { | 115 | if expr.syntax() == &node { |
116 | tested_by!(test_introduce_var_last_expr); | 116 | tested_by!(test_introduce_var_last_expr); |
117 | return Some((node, false)); | 117 | return Some((node, false)); |
diff --git a/crates/ra_assists/src/handlers/move_guard.rs b/crates/ra_assists/src/handlers/move_guard.rs index d5ccdd91c..b084dd9ee 100644 --- a/crates/ra_assists/src/handlers/move_guard.rs +++ b/crates/ra_assists/src/handlers/move_guard.rs | |||
@@ -113,9 +113,9 @@ pub(crate) fn move_arm_cond_to_match_guard(ctx: AssistCtx) -> Option<Assist> { | |||
113 | "Move condition to match guard", | 113 | "Move condition to match guard", |
114 | |edit| { | 114 | |edit| { |
115 | edit.target(if_expr.syntax().text_range()); | 115 | edit.target(if_expr.syntax().text_range()); |
116 | let then_only_expr = then_block.block().and_then(|it| it.statements().next()).is_none(); | 116 | let then_only_expr = then_block.statements().next().is_none(); |
117 | 117 | ||
118 | match &then_block.block().and_then(|it| it.expr()) { | 118 | match &then_block.expr() { |
119 | Some(then_expr) if then_only_expr => { | 119 | Some(then_expr) if then_only_expr => { |
120 | edit.replace(if_expr.syntax().text_range(), then_expr.syntax().text()) | 120 | edit.replace(if_expr.syntax().text_range(), then_expr.syntax().text()) |
121 | } | 121 | } |
diff --git a/crates/ra_assists/src/handlers/replace_if_let_with_match.rs b/crates/ra_assists/src/handlers/replace_if_let_with_match.rs index 0a0a88f3d..9841f6980 100644 --- a/crates/ra_assists/src/handlers/replace_if_let_with_match.rs +++ b/crates/ra_assists/src/handlers/replace_if_let_with_match.rs | |||
@@ -1,11 +1,10 @@ | |||
1 | use ra_fmt::unwrap_trivial_block; | 1 | use ra_fmt::unwrap_trivial_block; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | ast::{self, make}, | 3 | ast::{self, edit::IndentLevel, make}, |
4 | AstNode, | 4 | AstNode, |
5 | }; | 5 | }; |
6 | 6 | ||
7 | use crate::{Assist, AssistCtx, AssistId}; | 7 | use crate::{utils::TryEnum, Assist, AssistCtx, AssistId}; |
8 | use ast::edit::IndentLevel; | ||
9 | 8 | ||
10 | // Assist: replace_if_let_with_match | 9 | // Assist: replace_if_let_with_match |
11 | // | 10 | // |
@@ -44,15 +43,21 @@ pub(crate) fn replace_if_let_with_match(ctx: AssistCtx) -> Option<Assist> { | |||
44 | ast::ElseBranch::IfExpr(_) => return None, | 43 | ast::ElseBranch::IfExpr(_) => return None, |
45 | }; | 44 | }; |
46 | 45 | ||
47 | ctx.add_assist(AssistId("replace_if_let_with_match"), "Replace with match", |edit| { | 46 | let sema = ctx.sema; |
47 | ctx.add_assist(AssistId("replace_if_let_with_match"), "Replace with match", move |edit| { | ||
48 | let match_expr = { | 48 | let match_expr = { |
49 | let then_arm = { | 49 | let then_arm = { |
50 | let then_expr = unwrap_trivial_block(then_block); | 50 | let then_expr = unwrap_trivial_block(then_block); |
51 | make::match_arm(vec![pat], then_expr) | 51 | make::match_arm(vec![pat.clone()], then_expr) |
52 | }; | 52 | }; |
53 | let else_arm = { | 53 | let else_arm = { |
54 | let pattern = sema | ||
55 | .type_of_pat(&pat) | ||
56 | .and_then(|ty| TryEnum::from_ty(sema, &ty)) | ||
57 | .map(|it| it.sad_pattern()) | ||
58 | .unwrap_or_else(|| make::placeholder_pat().into()); | ||
54 | let else_expr = unwrap_trivial_block(else_block); | 59 | let else_expr = unwrap_trivial_block(else_block); |
55 | make::match_arm(vec![make::placeholder_pat().into()], else_expr) | 60 | make::match_arm(vec![pattern], else_expr) |
56 | }; | 61 | }; |
57 | make::expr_match(expr, make::match_arm_list(vec![then_arm, else_arm])) | 62 | make::expr_match(expr, make::match_arm_list(vec![then_arm, else_arm])) |
58 | }; | 63 | }; |
@@ -68,6 +73,7 @@ pub(crate) fn replace_if_let_with_match(ctx: AssistCtx) -> Option<Assist> { | |||
68 | #[cfg(test)] | 73 | #[cfg(test)] |
69 | mod tests { | 74 | mod tests { |
70 | use super::*; | 75 | use super::*; |
76 | |||
71 | use crate::helpers::{check_assist, check_assist_target}; | 77 | use crate::helpers::{check_assist, check_assist_target}; |
72 | 78 | ||
73 | #[test] | 79 | #[test] |
@@ -145,4 +151,64 @@ impl VariantData { | |||
145 | }", | 151 | }", |
146 | ); | 152 | ); |
147 | } | 153 | } |
154 | |||
155 | #[test] | ||
156 | fn special_case_option() { | ||
157 | check_assist( | ||
158 | replace_if_let_with_match, | ||
159 | r#" | ||
160 | enum Option<T> { Some(T), None } | ||
161 | use Option::*; | ||
162 | |||
163 | fn foo(x: Option<i32>) { | ||
164 | <|>if let Some(x) = x { | ||
165 | println!("{}", x) | ||
166 | } else { | ||
167 | println!("none") | ||
168 | } | ||
169 | } | ||
170 | "#, | ||
171 | r#" | ||
172 | enum Option<T> { Some(T), None } | ||
173 | use Option::*; | ||
174 | |||
175 | fn foo(x: Option<i32>) { | ||
176 | <|>match x { | ||
177 | Some(x) => println!("{}", x), | ||
178 | None => println!("none"), | ||
179 | } | ||
180 | } | ||
181 | "#, | ||
182 | ); | ||
183 | } | ||
184 | |||
185 | #[test] | ||
186 | fn special_case_result() { | ||
187 | check_assist( | ||
188 | replace_if_let_with_match, | ||
189 | r#" | ||
190 | enum Result<T, E> { Ok(T), Err(E) } | ||
191 | use Result::*; | ||
192 | |||
193 | fn foo(x: Result<i32, ()>) { | ||
194 | <|>if let Ok(x) = x { | ||
195 | println!("{}", x) | ||
196 | } else { | ||
197 | println!("none") | ||
198 | } | ||
199 | } | ||
200 | "#, | ||
201 | r#" | ||
202 | enum Result<T, E> { Ok(T), Err(E) } | ||
203 | use Result::*; | ||
204 | |||
205 | fn foo(x: Result<i32, ()>) { | ||
206 | <|>match x { | ||
207 | Ok(x) => println!("{}", x), | ||
208 | Err(_) => println!("none"), | ||
209 | } | ||
210 | } | ||
211 | "#, | ||
212 | ); | ||
213 | } | ||
148 | } | 214 | } |
diff --git a/crates/ra_assists/src/handlers/replace_let_with_if_let.rs b/crates/ra_assists/src/handlers/replace_let_with_if_let.rs index bdbaae389..0cf23b754 100644 --- a/crates/ra_assists/src/handlers/replace_let_with_if_let.rs +++ b/crates/ra_assists/src/handlers/replace_let_with_if_let.rs | |||
@@ -1,6 +1,5 @@ | |||
1 | use std::iter::once; | 1 | use std::iter::once; |
2 | 2 | ||
3 | use hir::Adt; | ||
4 | use ra_syntax::{ | 3 | use ra_syntax::{ |
5 | ast::{ | 4 | ast::{ |
6 | self, | 5 | self, |
@@ -12,6 +11,7 @@ use ra_syntax::{ | |||
12 | 11 | ||
13 | use crate::{ | 12 | use crate::{ |
14 | assist_ctx::{Assist, AssistCtx}, | 13 | assist_ctx::{Assist, AssistCtx}, |
14 | utils::TryEnum, | ||
15 | AssistId, | 15 | AssistId, |
16 | }; | 16 | }; |
17 | 17 | ||
@@ -45,20 +45,10 @@ pub(crate) fn replace_let_with_if_let(ctx: AssistCtx) -> Option<Assist> { | |||
45 | let init = let_stmt.initializer()?; | 45 | let init = let_stmt.initializer()?; |
46 | let original_pat = let_stmt.pat()?; | 46 | let original_pat = let_stmt.pat()?; |
47 | let ty = ctx.sema.type_of_expr(&init)?; | 47 | let ty = ctx.sema.type_of_expr(&init)?; |
48 | let enum_ = match ty.as_adt() { | 48 | let happy_variant = TryEnum::from_ty(ctx.sema, &ty).map(|it| it.happy_case()); |
49 | Some(Adt::Enum(it)) => it, | ||
50 | _ => return None, | ||
51 | }; | ||
52 | let happy_case = | ||
53 | [("Result", "Ok"), ("Option", "Some")].iter().find_map(|(known_type, happy_case)| { | ||
54 | if &enum_.name(ctx.db).to_string() == known_type { | ||
55 | return Some(happy_case); | ||
56 | } | ||
57 | None | ||
58 | }); | ||
59 | 49 | ||
60 | ctx.add_assist(AssistId("replace_let_with_if_let"), "Replace with if-let", |edit| { | 50 | ctx.add_assist(AssistId("replace_let_with_if_let"), "Replace with if-let", |edit| { |
61 | let with_placeholder: ast::Pat = match happy_case { | 51 | let with_placeholder: ast::Pat = match happy_variant { |
62 | None => make::placeholder_pat().into(), | 52 | None => make::placeholder_pat().into(), |
63 | Some(var_name) => make::tuple_struct_pat( | 53 | Some(var_name) => make::tuple_struct_pat( |
64 | make::path_unqualified(make::path_segment(make::name_ref(var_name))), | 54 | make::path_unqualified(make::path_segment(make::name_ref(var_name))), |
diff --git a/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs b/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs index 2f02df303..918e8dd8d 100644 --- a/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs +++ b/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs | |||
@@ -27,7 +27,7 @@ pub(crate) fn replace_qualified_name_with_use(ctx: AssistCtx) -> Option<Assist> | |||
27 | return None; | 27 | return None; |
28 | } | 28 | } |
29 | 29 | ||
30 | let hir_path = hir::Path::from_ast(path.clone())?; | 30 | let hir_path = ctx.sema.lower_path(&path)?; |
31 | let segments = collect_hir_path_segments(&hir_path)?; | 31 | let segments = collect_hir_path_segments(&hir_path)?; |
32 | if segments.len() < 2 { | 32 | if segments.len() < 2 { |
33 | return None; | 33 | return None; |
diff --git a/crates/ra_assists/src/handlers/replace_unwrap_with_match.rs b/crates/ra_assists/src/handlers/replace_unwrap_with_match.rs index 62cb7a763..62d4ea522 100644 --- a/crates/ra_assists/src/handlers/replace_unwrap_with_match.rs +++ b/crates/ra_assists/src/handlers/replace_unwrap_with_match.rs | |||
@@ -1,12 +1,11 @@ | |||
1 | use std::iter; | 1 | use std::iter; |
2 | 2 | ||
3 | use ra_syntax::{ | 3 | use ra_syntax::{ |
4 | ast::{self, make}, | 4 | ast::{self, edit::IndentLevel, make}, |
5 | AstNode, | 5 | AstNode, |
6 | }; | 6 | }; |
7 | 7 | ||
8 | use crate::{Assist, AssistCtx, AssistId}; | 8 | use crate::{utils::TryEnum, Assist, AssistCtx, AssistId}; |
9 | use ast::edit::IndentLevel; | ||
10 | 9 | ||
11 | // Assist: replace_unwrap_with_match | 10 | // Assist: replace_unwrap_with_match |
12 | // | 11 | // |
@@ -38,42 +37,27 @@ pub(crate) fn replace_unwrap_with_match(ctx: AssistCtx) -> Option<Assist> { | |||
38 | } | 37 | } |
39 | let caller = method_call.expr()?; | 38 | let caller = method_call.expr()?; |
40 | let ty = ctx.sema.type_of_expr(&caller)?; | 39 | let ty = ctx.sema.type_of_expr(&caller)?; |
40 | let happy_variant = TryEnum::from_ty(ctx.sema, &ty)?.happy_case(); | ||
41 | 41 | ||
42 | let type_name = ty.as_adt()?.name(ctx.sema.db).to_string(); | 42 | ctx.add_assist(AssistId("replace_unwrap_with_match"), "Replace unwrap with match", |edit| { |
43 | let ok_path = make::path_unqualified(make::path_segment(make::name_ref(happy_variant))); | ||
44 | let it = make::bind_pat(make::name("a")).into(); | ||
45 | let ok_tuple = make::tuple_struct_pat(ok_path, iter::once(it)).into(); | ||
43 | 46 | ||
44 | for (unwrap_type, variant_name) in [("Result", "Ok"), ("Option", "Some")].iter() { | 47 | let bind_path = make::path_unqualified(make::path_segment(make::name_ref("a"))); |
45 | if &type_name == unwrap_type { | 48 | let ok_arm = make::match_arm(iter::once(ok_tuple), make::expr_path(bind_path)); |
46 | return ctx.add_assist( | ||
47 | AssistId("replace_unwrap_with_match"), | ||
48 | "Replace unwrap with match", | ||
49 | |edit| { | ||
50 | let ok_path = | ||
51 | make::path_unqualified(make::path_segment(make::name_ref(variant_name))); | ||
52 | let it = make::bind_pat(make::name("a")).into(); | ||
53 | let ok_tuple = make::tuple_struct_pat(ok_path, iter::once(it)).into(); | ||
54 | 49 | ||
55 | let bind_path = make::path_unqualified(make::path_segment(make::name_ref("a"))); | 50 | let unreachable_call = make::unreachable_macro_call().into(); |
56 | let ok_arm = make::match_arm(iter::once(ok_tuple), make::expr_path(bind_path)); | 51 | let err_arm = make::match_arm(iter::once(make::placeholder_pat().into()), unreachable_call); |
57 | 52 | ||
58 | let unreachable_call = make::unreachable_macro_call().into(); | 53 | let match_arm_list = make::match_arm_list(vec![ok_arm, err_arm]); |
59 | let err_arm = make::match_arm( | 54 | let match_expr = make::expr_match(caller.clone(), match_arm_list); |
60 | iter::once(make::placeholder_pat().into()), | 55 | let match_expr = IndentLevel::from_node(method_call.syntax()).increase_indent(match_expr); |
61 | unreachable_call, | ||
62 | ); | ||
63 | 56 | ||
64 | let match_arm_list = make::match_arm_list(vec![ok_arm, err_arm]); | 57 | edit.target(method_call.syntax().text_range()); |
65 | let match_expr = make::expr_match(caller.clone(), match_arm_list); | 58 | edit.set_cursor(caller.syntax().text_range().start()); |
66 | let match_expr = | 59 | edit.replace_ast::<ast::Expr>(method_call.into(), match_expr); |
67 | IndentLevel::from_node(method_call.syntax()).increase_indent(match_expr); | 60 | }) |
68 | |||
69 | edit.target(method_call.syntax().text_range()); | ||
70 | edit.set_cursor(caller.syntax().text_range().start()); | ||
71 | edit.replace_ast::<ast::Expr>(method_call.into(), match_expr); | ||
72 | }, | ||
73 | ); | ||
74 | } | ||
75 | } | ||
76 | None | ||
77 | } | 61 | } |
78 | 62 | ||
79 | #[cfg(test)] | 63 | #[cfg(test)] |
diff --git a/crates/ra_assists/src/handlers/unwrap_block.rs b/crates/ra_assists/src/handlers/unwrap_block.rs new file mode 100644 index 000000000..58649c47e --- /dev/null +++ b/crates/ra_assists/src/handlers/unwrap_block.rs | |||
@@ -0,0 +1,348 @@ | |||
1 | use crate::{Assist, AssistCtx, AssistId}; | ||
2 | |||
3 | use ast::{BlockExpr, Expr, ForExpr, IfExpr, LoopBodyOwner, LoopExpr, WhileExpr}; | ||
4 | use ra_fmt::unwrap_trivial_block; | ||
5 | use ra_syntax::{ast, AstNode, TextRange, T}; | ||
6 | |||
7 | // Assist: unwrap_block | ||
8 | // | ||
9 | // This assist removes if...else, for, while and loop control statements to just keep the body. | ||
10 | // | ||
11 | // ``` | ||
12 | // fn foo() { | ||
13 | // if true {<|> | ||
14 | // println!("foo"); | ||
15 | // } | ||
16 | // } | ||
17 | // ``` | ||
18 | // -> | ||
19 | // ``` | ||
20 | // fn foo() { | ||
21 | // println!("foo"); | ||
22 | // } | ||
23 | // ``` | ||
24 | pub(crate) fn unwrap_block(ctx: AssistCtx) -> Option<Assist> { | ||
25 | let l_curly_token = ctx.find_token_at_offset(T!['{'])?; | ||
26 | |||
27 | let res = if let Some(if_expr) = l_curly_token.ancestors().find_map(IfExpr::cast) { | ||
28 | // if expression | ||
29 | let expr_to_unwrap = if_expr.blocks().find_map(|expr| extract_expr(ctx.frange.range, expr)); | ||
30 | let expr_to_unwrap = expr_to_unwrap?; | ||
31 | // Find if we are in a else if block | ||
32 | let ancestor = if_expr.syntax().ancestors().skip(1).find_map(ast::IfExpr::cast); | ||
33 | |||
34 | if let Some(ancestor) = ancestor { | ||
35 | Some((ast::Expr::IfExpr(ancestor), expr_to_unwrap)) | ||
36 | } else { | ||
37 | Some((ast::Expr::IfExpr(if_expr), expr_to_unwrap)) | ||
38 | } | ||
39 | } else if let Some(for_expr) = l_curly_token.ancestors().find_map(ForExpr::cast) { | ||
40 | // for expression | ||
41 | let block_expr = for_expr.loop_body()?; | ||
42 | extract_expr(ctx.frange.range, block_expr) | ||
43 | .map(|expr_to_unwrap| (ast::Expr::ForExpr(for_expr), expr_to_unwrap)) | ||
44 | } else if let Some(while_expr) = l_curly_token.ancestors().find_map(WhileExpr::cast) { | ||
45 | // while expression | ||
46 | let block_expr = while_expr.loop_body()?; | ||
47 | extract_expr(ctx.frange.range, block_expr) | ||
48 | .map(|expr_to_unwrap| (ast::Expr::WhileExpr(while_expr), expr_to_unwrap)) | ||
49 | } else if let Some(loop_expr) = l_curly_token.ancestors().find_map(LoopExpr::cast) { | ||
50 | // loop expression | ||
51 | let block_expr = loop_expr.loop_body()?; | ||
52 | extract_expr(ctx.frange.range, block_expr) | ||
53 | .map(|expr_to_unwrap| (ast::Expr::LoopExpr(loop_expr), expr_to_unwrap)) | ||
54 | } else { | ||
55 | None | ||
56 | }; | ||
57 | |||
58 | let (expr, expr_to_unwrap) = res?; | ||
59 | ctx.add_assist(AssistId("unwrap_block"), "Unwrap block", |edit| { | ||
60 | edit.set_cursor(expr.syntax().text_range().start()); | ||
61 | edit.target(expr_to_unwrap.syntax().text_range()); | ||
62 | |||
63 | let pat_start: &[_] = &[' ', '{', '\n']; | ||
64 | let expr_to_unwrap = expr_to_unwrap.to_string(); | ||
65 | let expr_string = expr_to_unwrap.trim_start_matches(pat_start); | ||
66 | let mut expr_string_lines: Vec<&str> = expr_string.lines().collect(); | ||
67 | expr_string_lines.pop(); // Delete last line | ||
68 | |||
69 | let expr_string = expr_string_lines | ||
70 | .into_iter() | ||
71 | .map(|line| line.replacen(" ", "", 1)) // Delete indentation | ||
72 | .collect::<Vec<String>>() | ||
73 | .join("\n"); | ||
74 | |||
75 | edit.replace(expr.syntax().text_range(), expr_string); | ||
76 | }) | ||
77 | } | ||
78 | |||
79 | fn extract_expr(cursor_range: TextRange, block: BlockExpr) -> Option<Expr> { | ||
80 | let cursor_in_range = block.l_curly_token()?.text_range().contains_range(cursor_range); | ||
81 | |||
82 | if cursor_in_range { | ||
83 | Some(unwrap_trivial_block(block)) | ||
84 | } else { | ||
85 | None | ||
86 | } | ||
87 | } | ||
88 | |||
89 | #[cfg(test)] | ||
90 | mod tests { | ||
91 | use crate::helpers::{check_assist, check_assist_not_applicable}; | ||
92 | |||
93 | use super::*; | ||
94 | |||
95 | #[test] | ||
96 | fn simple_if() { | ||
97 | check_assist( | ||
98 | unwrap_block, | ||
99 | r#" | ||
100 | fn main() { | ||
101 | bar(); | ||
102 | if true {<|> | ||
103 | foo(); | ||
104 | |||
105 | //comment | ||
106 | bar(); | ||
107 | } else { | ||
108 | println!("bar"); | ||
109 | } | ||
110 | } | ||
111 | "#, | ||
112 | r#" | ||
113 | fn main() { | ||
114 | bar(); | ||
115 | <|>foo(); | ||
116 | |||
117 | //comment | ||
118 | bar(); | ||
119 | } | ||
120 | "#, | ||
121 | ); | ||
122 | } | ||
123 | |||
124 | #[test] | ||
125 | fn simple_if_else() { | ||
126 | check_assist( | ||
127 | unwrap_block, | ||
128 | r#" | ||
129 | fn main() { | ||
130 | bar(); | ||
131 | if true { | ||
132 | foo(); | ||
133 | |||
134 | //comment | ||
135 | bar(); | ||
136 | } else {<|> | ||
137 | println!("bar"); | ||
138 | } | ||
139 | } | ||
140 | "#, | ||
141 | r#" | ||
142 | fn main() { | ||
143 | bar(); | ||
144 | <|>println!("bar"); | ||
145 | } | ||
146 | "#, | ||
147 | ); | ||
148 | } | ||
149 | |||
150 | #[test] | ||
151 | fn simple_if_else_if() { | ||
152 | check_assist( | ||
153 | unwrap_block, | ||
154 | r#" | ||
155 | fn main() { | ||
156 | //bar(); | ||
157 | if true { | ||
158 | println!("true"); | ||
159 | |||
160 | //comment | ||
161 | //bar(); | ||
162 | } else if false {<|> | ||
163 | println!("bar"); | ||
164 | } else { | ||
165 | println!("foo"); | ||
166 | } | ||
167 | } | ||
168 | "#, | ||
169 | r#" | ||
170 | fn main() { | ||
171 | //bar(); | ||
172 | <|>println!("bar"); | ||
173 | } | ||
174 | "#, | ||
175 | ); | ||
176 | } | ||
177 | |||
178 | #[test] | ||
179 | fn simple_if_bad_cursor_position() { | ||
180 | check_assist_not_applicable( | ||
181 | unwrap_block, | ||
182 | r#" | ||
183 | fn main() { | ||
184 | bar();<|> | ||
185 | if true { | ||
186 | foo(); | ||
187 | |||
188 | //comment | ||
189 | bar(); | ||
190 | } else { | ||
191 | println!("bar"); | ||
192 | } | ||
193 | } | ||
194 | "#, | ||
195 | ); | ||
196 | } | ||
197 | |||
198 | #[test] | ||
199 | fn simple_for() { | ||
200 | check_assist( | ||
201 | unwrap_block, | ||
202 | r#" | ||
203 | fn main() { | ||
204 | for i in 0..5 {<|> | ||
205 | if true { | ||
206 | foo(); | ||
207 | |||
208 | //comment | ||
209 | bar(); | ||
210 | } else { | ||
211 | println!("bar"); | ||
212 | } | ||
213 | } | ||
214 | } | ||
215 | "#, | ||
216 | r#" | ||
217 | fn main() { | ||
218 | <|>if true { | ||
219 | foo(); | ||
220 | |||
221 | //comment | ||
222 | bar(); | ||
223 | } else { | ||
224 | println!("bar"); | ||
225 | } | ||
226 | } | ||
227 | "#, | ||
228 | ); | ||
229 | } | ||
230 | |||
231 | #[test] | ||
232 | fn simple_if_in_for() { | ||
233 | check_assist( | ||
234 | unwrap_block, | ||
235 | r#" | ||
236 | fn main() { | ||
237 | for i in 0..5 { | ||
238 | if true {<|> | ||
239 | foo(); | ||
240 | |||
241 | //comment | ||
242 | bar(); | ||
243 | } else { | ||
244 | println!("bar"); | ||
245 | } | ||
246 | } | ||
247 | } | ||
248 | "#, | ||
249 | r#" | ||
250 | fn main() { | ||
251 | for i in 0..5 { | ||
252 | <|>foo(); | ||
253 | |||
254 | //comment | ||
255 | bar(); | ||
256 | } | ||
257 | } | ||
258 | "#, | ||
259 | ); | ||
260 | } | ||
261 | |||
262 | #[test] | ||
263 | fn simple_loop() { | ||
264 | check_assist( | ||
265 | unwrap_block, | ||
266 | r#" | ||
267 | fn main() { | ||
268 | loop {<|> | ||
269 | if true { | ||
270 | foo(); | ||
271 | |||
272 | //comment | ||
273 | bar(); | ||
274 | } else { | ||
275 | println!("bar"); | ||
276 | } | ||
277 | } | ||
278 | } | ||
279 | "#, | ||
280 | r#" | ||
281 | fn main() { | ||
282 | <|>if true { | ||
283 | foo(); | ||
284 | |||
285 | //comment | ||
286 | bar(); | ||
287 | } else { | ||
288 | println!("bar"); | ||
289 | } | ||
290 | } | ||
291 | "#, | ||
292 | ); | ||
293 | } | ||
294 | |||
295 | #[test] | ||
296 | fn simple_while() { | ||
297 | check_assist( | ||
298 | unwrap_block, | ||
299 | r#" | ||
300 | fn main() { | ||
301 | while true {<|> | ||
302 | if true { | ||
303 | foo(); | ||
304 | |||
305 | //comment | ||
306 | bar(); | ||
307 | } else { | ||
308 | println!("bar"); | ||
309 | } | ||
310 | } | ||
311 | } | ||
312 | "#, | ||
313 | r#" | ||
314 | fn main() { | ||
315 | <|>if true { | ||
316 | foo(); | ||
317 | |||
318 | //comment | ||
319 | bar(); | ||
320 | } else { | ||
321 | println!("bar"); | ||
322 | } | ||
323 | } | ||
324 | "#, | ||
325 | ); | ||
326 | } | ||
327 | |||
328 | #[test] | ||
329 | fn simple_if_in_while_bad_cursor_position() { | ||
330 | check_assist_not_applicable( | ||
331 | unwrap_block, | ||
332 | r#" | ||
333 | fn main() { | ||
334 | while true { | ||
335 | if true { | ||
336 | foo();<|> | ||
337 | |||
338 | //comment | ||
339 | bar(); | ||
340 | } else { | ||
341 | println!("bar"); | ||
342 | } | ||
343 | } | ||
344 | } | ||
345 | "#, | ||
346 | ); | ||
347 | } | ||
348 | } | ||
diff --git a/crates/ra_assists/src/lib.rs b/crates/ra_assists/src/lib.rs index 64bd87afb..c5df86600 100644 --- a/crates/ra_assists/src/lib.rs +++ b/crates/ra_assists/src/lib.rs | |||
@@ -143,6 +143,7 @@ mod handlers { | |||
143 | mod split_import; | 143 | mod split_import; |
144 | mod add_from_impl_for_enum; | 144 | mod add_from_impl_for_enum; |
145 | mod reorder_fields; | 145 | mod reorder_fields; |
146 | mod unwrap_block; | ||
146 | 147 | ||
147 | pub(crate) fn all() -> &'static [AssistHandler] { | 148 | pub(crate) fn all() -> &'static [AssistHandler] { |
148 | &[ | 149 | &[ |
@@ -181,6 +182,7 @@ mod handlers { | |||
181 | replace_unwrap_with_match::replace_unwrap_with_match, | 182 | replace_unwrap_with_match::replace_unwrap_with_match, |
182 | split_import::split_import, | 183 | split_import::split_import, |
183 | add_from_impl_for_enum::add_from_impl_for_enum, | 184 | add_from_impl_for_enum::add_from_impl_for_enum, |
185 | unwrap_block::unwrap_block, | ||
184 | // These are manually sorted for better priorities | 186 | // These are manually sorted for better priorities |
185 | add_missing_impl_members::add_missing_impl_members, | 187 | add_missing_impl_members::add_missing_impl_members, |
186 | add_missing_impl_members::add_missing_default_members, | 188 | add_missing_impl_members::add_missing_default_members, |
diff --git a/crates/ra_assists/src/marks.rs b/crates/ra_assists/src/marks.rs index 6c2a2b8b6..8d910205f 100644 --- a/crates/ra_assists/src/marks.rs +++ b/crates/ra_assists/src/marks.rs | |||
@@ -8,4 +8,5 @@ test_utils::marks![ | |||
8 | test_not_inline_mut_variable | 8 | test_not_inline_mut_variable |
9 | test_not_applicable_if_variable_unused | 9 | test_not_applicable_if_variable_unused |
10 | change_visibility_field_false_positive | 10 | change_visibility_field_false_positive |
11 | test_add_from_impl_already_exists | ||
11 | ]; | 12 | ]; |
diff --git a/crates/ra_assists/src/utils.rs b/crates/ra_assists/src/utils.rs index 3d6c59bda..efd988697 100644 --- a/crates/ra_assists/src/utils.rs +++ b/crates/ra_assists/src/utils.rs | |||
@@ -1,7 +1,9 @@ | |||
1 | //! Assorted functions shared by several assists. | 1 | //! Assorted functions shared by several assists. |
2 | pub(crate) mod insert_use; | 2 | pub(crate) mod insert_use; |
3 | 3 | ||
4 | use hir::Semantics; | 4 | use std::iter; |
5 | |||
6 | use hir::{Adt, Crate, Semantics, Trait, Type}; | ||
5 | use ra_ide_db::RootDatabase; | 7 | use ra_ide_db::RootDatabase; |
6 | use ra_syntax::{ | 8 | use ra_syntax::{ |
7 | ast::{self, make, NameOwner}, | 9 | ast::{self, make, NameOwner}, |
@@ -99,3 +101,109 @@ fn invert_special_case(expr: &ast::Expr) -> Option<ast::Expr> { | |||
99 | _ => None, | 101 | _ => None, |
100 | } | 102 | } |
101 | } | 103 | } |
104 | |||
105 | #[derive(Clone, Copy)] | ||
106 | pub(crate) enum TryEnum { | ||
107 | Result, | ||
108 | Option, | ||
109 | } | ||
110 | |||
111 | impl TryEnum { | ||
112 | const ALL: [TryEnum; 2] = [TryEnum::Option, TryEnum::Result]; | ||
113 | |||
114 | pub(crate) fn from_ty(sema: &Semantics<RootDatabase>, ty: &Type) -> Option<TryEnum> { | ||
115 | let enum_ = match ty.as_adt() { | ||
116 | Some(Adt::Enum(it)) => it, | ||
117 | _ => return None, | ||
118 | }; | ||
119 | TryEnum::ALL.iter().find_map(|&var| { | ||
120 | if &enum_.name(sema.db).to_string() == var.type_name() { | ||
121 | return Some(var); | ||
122 | } | ||
123 | None | ||
124 | }) | ||
125 | } | ||
126 | |||
127 | pub(crate) fn happy_case(self) -> &'static str { | ||
128 | match self { | ||
129 | TryEnum::Result => "Ok", | ||
130 | TryEnum::Option => "Some", | ||
131 | } | ||
132 | } | ||
133 | |||
134 | pub(crate) fn sad_pattern(self) -> ast::Pat { | ||
135 | match self { | ||
136 | TryEnum::Result => make::tuple_struct_pat( | ||
137 | make::path_unqualified(make::path_segment(make::name_ref("Err"))), | ||
138 | iter::once(make::placeholder_pat().into()), | ||
139 | ) | ||
140 | .into(), | ||
141 | TryEnum::Option => make::bind_pat(make::name("None")).into(), | ||
142 | } | ||
143 | } | ||
144 | |||
145 | fn type_name(self) -> &'static str { | ||
146 | match self { | ||
147 | TryEnum::Result => "Result", | ||
148 | TryEnum::Option => "Option", | ||
149 | } | ||
150 | } | ||
151 | } | ||
152 | |||
153 | /// Helps with finding well-know things inside the standard library. This is | ||
154 | /// somewhat similar to the known paths infra inside hir, but it different; We | ||
155 | /// want to make sure that IDE specific paths don't become interesting inside | ||
156 | /// the compiler itself as well. | ||
157 | pub(crate) struct FamousDefs<'a, 'b>(pub(crate) &'a Semantics<'b, RootDatabase>, pub(crate) Crate); | ||
158 | |||
159 | #[allow(non_snake_case)] | ||
160 | impl FamousDefs<'_, '_> { | ||
161 | #[cfg(test)] | ||
162 | pub(crate) const FIXTURE: &'static str = r#" | ||
163 | //- /libcore.rs crate:core | ||
164 | pub mod convert{ | ||
165 | pub trait From<T> { | ||
166 | fn from(T) -> Self; | ||
167 | } | ||
168 | } | ||
169 | |||
170 | pub mod prelude { pub use crate::convert::From } | ||
171 | #[prelude_import] | ||
172 | pub use prelude::*; | ||
173 | "#; | ||
174 | |||
175 | pub(crate) fn core_convert_From(&self) -> Option<Trait> { | ||
176 | self.find_trait("core:convert:From") | ||
177 | } | ||
178 | |||
179 | fn find_trait(&self, path: &str) -> Option<Trait> { | ||
180 | let db = self.0.db; | ||
181 | let mut path = path.split(':'); | ||
182 | let trait_ = path.next_back()?; | ||
183 | let std_crate = path.next()?; | ||
184 | let std_crate = self | ||
185 | .1 | ||
186 | .dependencies(db) | ||
187 | .into_iter() | ||
188 | .find(|dep| &dep.name.to_string() == std_crate)? | ||
189 | .krate; | ||
190 | |||
191 | let mut module = std_crate.root_module(db)?; | ||
192 | for segment in path { | ||
193 | module = module.children(db).find_map(|child| { | ||
194 | let name = child.name(db)?; | ||
195 | if &name.to_string() == segment { | ||
196 | Some(child) | ||
197 | } else { | ||
198 | None | ||
199 | } | ||
200 | })?; | ||
201 | } | ||
202 | let def = | ||
203 | module.scope(db, None).into_iter().find(|(name, _def)| &name.to_string() == trait_)?.1; | ||
204 | match def { | ||
205 | hir::ScopeDef::ModuleDef(hir::ModuleDef::Trait(it)) => Some(it), | ||
206 | _ => None, | ||
207 | } | ||
208 | } | ||
209 | } | ||
diff --git a/crates/ra_flycheck/Cargo.toml b/crates/ra_flycheck/Cargo.toml index 76e5cada4..324c33d9d 100644 --- a/crates/ra_flycheck/Cargo.toml +++ b/crates/ra_flycheck/Cargo.toml | |||
@@ -6,7 +6,7 @@ authors = ["rust-analyzer developers"] | |||
6 | 6 | ||
7 | [dependencies] | 7 | [dependencies] |
8 | crossbeam-channel = "0.4.0" | 8 | crossbeam-channel = "0.4.0" |
9 | lsp-types = { version = "0.73.0", features = ["proposed"] } | 9 | lsp-types = { version = "0.74.0", features = ["proposed"] } |
10 | log = "0.4.8" | 10 | log = "0.4.8" |
11 | cargo_metadata = "0.9.1" | 11 | cargo_metadata = "0.9.1" |
12 | serde_json = "1.0.48" | 12 | serde_json = "1.0.48" |
diff --git a/crates/ra_fmt/src/lib.rs b/crates/ra_fmt/src/lib.rs index 0b4ba1bbe..f910ded9d 100644 --- a/crates/ra_fmt/src/lib.rs +++ b/crates/ra_fmt/src/lib.rs | |||
@@ -42,7 +42,6 @@ pub fn unwrap_trivial_block(block: ast::BlockExpr) -> ast::Expr { | |||
42 | } | 42 | } |
43 | 43 | ||
44 | pub fn extract_trivial_expression(block: &ast::BlockExpr) -> Option<ast::Expr> { | 44 | pub fn extract_trivial_expression(block: &ast::BlockExpr) -> Option<ast::Expr> { |
45 | let block = block.block()?; | ||
46 | let has_anything_else = |thing: &SyntaxNode| -> bool { | 45 | let has_anything_else = |thing: &SyntaxNode| -> bool { |
47 | let mut non_trivial_children = | 46 | let mut non_trivial_children = |
48 | block.syntax().children_with_tokens().filter(|it| match it.kind() { | 47 | block.syntax().children_with_tokens().filter(|it| match it.kind() { |
@@ -57,18 +56,17 @@ pub fn extract_trivial_expression(block: &ast::BlockExpr) -> Option<ast::Expr> { | |||
57 | return None; | 56 | return None; |
58 | } | 57 | } |
59 | return Some(expr); | 58 | return Some(expr); |
60 | } else { | 59 | } |
61 | // Unwrap `{ continue; }` | 60 | // Unwrap `{ continue; }` |
62 | let (stmt,) = block.statements().next_tuple()?; | 61 | let (stmt,) = block.statements().next_tuple()?; |
63 | if let ast::Stmt::ExprStmt(expr_stmt) = stmt { | 62 | if let ast::Stmt::ExprStmt(expr_stmt) = stmt { |
64 | if has_anything_else(expr_stmt.syntax()) { | 63 | if has_anything_else(expr_stmt.syntax()) { |
65 | return None; | 64 | return None; |
66 | } | 65 | } |
67 | let expr = expr_stmt.expr()?; | 66 | let expr = expr_stmt.expr()?; |
68 | match expr.syntax().kind() { | 67 | match expr.syntax().kind() { |
69 | CONTINUE_EXPR | BREAK_EXPR | RETURN_EXPR => return Some(expr), | 68 | CONTINUE_EXPR | BREAK_EXPR | RETURN_EXPR => return Some(expr), |
70 | _ => (), | 69 | _ => (), |
71 | } | ||
72 | } | 70 | } |
73 | } | 71 | } |
74 | None | 72 | None |
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index fb788736d..af59aa1b6 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs | |||
@@ -953,6 +953,16 @@ impl TypeParam { | |||
953 | pub fn module(self, db: &dyn HirDatabase) -> Module { | 953 | pub fn module(self, db: &dyn HirDatabase) -> Module { |
954 | self.id.parent.module(db.upcast()).into() | 954 | self.id.parent.module(db.upcast()).into() |
955 | } | 955 | } |
956 | |||
957 | pub fn ty(self, db: &dyn HirDatabase) -> Type { | ||
958 | let resolver = self.id.parent.resolver(db.upcast()); | ||
959 | let environment = TraitEnvironment::lower(db, &resolver); | ||
960 | let ty = Ty::Placeholder(self.id); | ||
961 | Type { | ||
962 | krate: self.id.parent.module(db.upcast()).krate, | ||
963 | ty: InEnvironment { value: ty, environment }, | ||
964 | } | ||
965 | } | ||
956 | } | 966 | } |
957 | 967 | ||
958 | // FIXME: rename from `ImplDef` to `Impl` | 968 | // FIXME: rename from `ImplDef` to `Impl` |
@@ -1157,18 +1167,21 @@ impl Type { | |||
1157 | 1167 | ||
1158 | pub fn fields(&self, db: &dyn HirDatabase) -> Vec<(Field, Type)> { | 1168 | pub fn fields(&self, db: &dyn HirDatabase) -> Vec<(Field, Type)> { |
1159 | if let Ty::Apply(a_ty) = &self.ty.value { | 1169 | if let Ty::Apply(a_ty) = &self.ty.value { |
1160 | if let TypeCtor::Adt(AdtId::StructId(s)) = a_ty.ctor { | 1170 | let variant_id = match a_ty.ctor { |
1161 | let var_def = s.into(); | 1171 | TypeCtor::Adt(AdtId::StructId(s)) => s.into(), |
1162 | return db | 1172 | TypeCtor::Adt(AdtId::UnionId(u)) => u.into(), |
1163 | .field_types(var_def) | 1173 | _ => return Vec::new(), |
1164 | .iter() | 1174 | }; |
1165 | .map(|(local_id, ty)| { | 1175 | |
1166 | let def = Field { parent: var_def.into(), id: local_id }; | 1176 | return db |
1167 | let ty = ty.clone().subst(&a_ty.parameters); | 1177 | .field_types(variant_id) |
1168 | (def, self.derived(ty)) | 1178 | .iter() |
1169 | }) | 1179 | .map(|(local_id, ty)| { |
1170 | .collect(); | 1180 | let def = Field { parent: variant_id.into(), id: local_id }; |
1171 | } | 1181 | let ty = ty.clone().subst(&a_ty.parameters); |
1182 | (def, self.derived(ty)) | ||
1183 | }) | ||
1184 | .collect(); | ||
1172 | }; | 1185 | }; |
1173 | Vec::new() | 1186 | Vec::new() |
1174 | } | 1187 | } |
diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs index 312ef3814..c5df4ac24 100644 --- a/crates/ra_hir/src/lib.rs +++ b/crates/ra_hir/src/lib.rs | |||
@@ -70,6 +70,7 @@ pub use hir_def::{ | |||
70 | type_ref::Mutability, | 70 | type_ref::Mutability, |
71 | }; | 71 | }; |
72 | pub use hir_expand::{ | 72 | pub use hir_expand::{ |
73 | name::Name, HirFileId, InFile, MacroCallId, MacroCallLoc, MacroDefId, MacroFile, Origin, | 73 | hygiene::Hygiene, name::Name, HirFileId, InFile, MacroCallId, MacroCallLoc, MacroDefId, |
74 | MacroFile, Origin, | ||
74 | }; | 75 | }; |
75 | pub use hir_ty::{display::HirDisplay, CallableDef}; | 76 | pub use hir_ty::{display::HirDisplay, CallableDef}; |
diff --git a/crates/ra_hir/src/semantics.rs b/crates/ra_hir/src/semantics.rs index 86bfb416c..515e5eb17 100644 --- a/crates/ra_hir/src/semantics.rs +++ b/crates/ra_hir/src/semantics.rs | |||
@@ -8,7 +8,8 @@ use hir_def::{ | |||
8 | resolver::{self, HasResolver, Resolver}, | 8 | resolver::{self, HasResolver, Resolver}, |
9 | AsMacroCall, TraitId, | 9 | AsMacroCall, TraitId, |
10 | }; | 10 | }; |
11 | use hir_expand::ExpansionInfo; | 11 | use hir_expand::{hygiene::Hygiene, ExpansionInfo}; |
12 | use hir_ty::associated_type_shorthand_candidates; | ||
12 | use itertools::Itertools; | 13 | use itertools::Itertools; |
13 | use ra_db::{FileId, FileRange}; | 14 | use ra_db::{FileId, FileRange}; |
14 | use ra_prof::profile; | 15 | use ra_prof::profile; |
@@ -24,8 +25,9 @@ use crate::{ | |||
24 | semantics::source_to_def::{ChildContainer, SourceToDefCache, SourceToDefCtx}, | 25 | semantics::source_to_def::{ChildContainer, SourceToDefCache, SourceToDefCtx}, |
25 | source_analyzer::{resolve_hir_path, SourceAnalyzer}, | 26 | source_analyzer::{resolve_hir_path, SourceAnalyzer}, |
26 | AssocItem, Field, Function, HirFileId, ImplDef, InFile, Local, MacroDef, Module, ModuleDef, | 27 | AssocItem, Field, Function, HirFileId, ImplDef, InFile, Local, MacroDef, Module, ModuleDef, |
27 | Name, Origin, Path, ScopeDef, Trait, Type, TypeParam, | 28 | Name, Origin, Path, ScopeDef, Trait, Type, TypeAlias, TypeParam, |
28 | }; | 29 | }; |
30 | use resolver::TypeNs; | ||
29 | 31 | ||
30 | #[derive(Debug, Clone, PartialEq, Eq)] | 32 | #[derive(Debug, Clone, PartialEq, Eq)] |
31 | pub enum PathResolution { | 33 | pub enum PathResolution { |
@@ -40,6 +42,44 @@ pub enum PathResolution { | |||
40 | AssocItem(AssocItem), | 42 | AssocItem(AssocItem), |
41 | } | 43 | } |
42 | 44 | ||
45 | impl PathResolution { | ||
46 | fn in_type_ns(&self) -> Option<TypeNs> { | ||
47 | match self { | ||
48 | PathResolution::Def(ModuleDef::Adt(adt)) => Some(TypeNs::AdtId((*adt).into())), | ||
49 | PathResolution::Def(ModuleDef::BuiltinType(builtin)) => { | ||
50 | Some(TypeNs::BuiltinType(*builtin)) | ||
51 | } | ||
52 | PathResolution::Def(ModuleDef::Const(_)) | ||
53 | | PathResolution::Def(ModuleDef::EnumVariant(_)) | ||
54 | | PathResolution::Def(ModuleDef::Function(_)) | ||
55 | | PathResolution::Def(ModuleDef::Module(_)) | ||
56 | | PathResolution::Def(ModuleDef::Static(_)) | ||
57 | | PathResolution::Def(ModuleDef::Trait(_)) => None, | ||
58 | PathResolution::Def(ModuleDef::TypeAlias(alias)) => { | ||
59 | Some(TypeNs::TypeAliasId((*alias).into())) | ||
60 | } | ||
61 | PathResolution::Local(_) | PathResolution::Macro(_) => None, | ||
62 | PathResolution::TypeParam(param) => Some(TypeNs::GenericParam((*param).into())), | ||
63 | PathResolution::SelfType(impl_def) => Some(TypeNs::SelfType((*impl_def).into())), | ||
64 | PathResolution::AssocItem(AssocItem::Const(_)) | ||
65 | | PathResolution::AssocItem(AssocItem::Function(_)) => None, | ||
66 | PathResolution::AssocItem(AssocItem::TypeAlias(alias)) => { | ||
67 | Some(TypeNs::TypeAliasId((*alias).into())) | ||
68 | } | ||
69 | } | ||
70 | } | ||
71 | |||
72 | /// Returns an iterator over associated types that may be specified after this path (using | ||
73 | /// `Ty::Assoc` syntax). | ||
74 | pub fn assoc_type_shorthand_candidates<R>( | ||
75 | &self, | ||
76 | db: &dyn HirDatabase, | ||
77 | mut cb: impl FnMut(TypeAlias) -> Option<R>, | ||
78 | ) -> Option<R> { | ||
79 | associated_type_shorthand_candidates(db, self.in_type_ns()?, |_, _, id| cb(id.into())) | ||
80 | } | ||
81 | } | ||
82 | |||
43 | /// Primary API to get semantic information, like types, from syntax trees. | 83 | /// Primary API to get semantic information, like types, from syntax trees. |
44 | pub struct Semantics<'db, DB> { | 84 | pub struct Semantics<'db, DB> { |
45 | pub db: &'db DB, | 85 | pub db: &'db DB, |
@@ -206,6 +246,11 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> { | |||
206 | self.analyze(path.syntax()).resolve_path(self.db, path) | 246 | self.analyze(path.syntax()).resolve_path(self.db, path) |
207 | } | 247 | } |
208 | 248 | ||
249 | pub fn lower_path(&self, path: &ast::Path) -> Option<Path> { | ||
250 | let src = self.find_file(path.syntax().clone()); | ||
251 | Path::from_src(path.clone(), &Hygiene::new(self.db.upcast(), src.file_id.into())) | ||
252 | } | ||
253 | |||
209 | pub fn resolve_bind_pat_to_const(&self, pat: &ast::BindPat) -> Option<ModuleDef> { | 254 | pub fn resolve_bind_pat_to_const(&self, pat: &ast::BindPat) -> Option<ModuleDef> { |
210 | self.analyze(pat.syntax()).resolve_bind_pat_to_const(self.db, pat) | 255 | self.analyze(pat.syntax()).resolve_bind_pat_to_const(self.db, pat) |
211 | } | 256 | } |
diff --git a/crates/ra_hir/src/semantics/source_to_def.rs b/crates/ra_hir/src/semantics/source_to_def.rs index 6f3b5b2da..8af64fdc1 100644 --- a/crates/ra_hir/src/semantics/source_to_def.rs +++ b/crates/ra_hir/src/semantics/source_to_def.rs | |||
@@ -151,7 +151,7 @@ impl SourceToDefCtx<'_, '_> { | |||
151 | let krate = self.file_to_def(file_id)?.krate; | 151 | let krate = self.file_to_def(file_id)?.krate; |
152 | let file_ast_id = self.db.ast_id_map(src.file_id).ast_id(&src.value); | 152 | let file_ast_id = self.db.ast_id_map(src.file_id).ast_id(&src.value); |
153 | let ast_id = Some(AstId::new(src.file_id, file_ast_id)); | 153 | let ast_id = Some(AstId::new(src.file_id, file_ast_id)); |
154 | Some(MacroDefId { krate: Some(krate), ast_id, kind }) | 154 | Some(MacroDefId { krate: Some(krate), ast_id, kind, local_inner: false }) |
155 | } | 155 | } |
156 | 156 | ||
157 | pub(super) fn find_container(&mut self, src: InFile<&SyntaxNode>) -> Option<ChildContainer> { | 157 | pub(super) fn find_container(&mut self, src: InFile<&SyntaxNode>) -> Option<ChildContainer> { |
diff --git a/crates/ra_hir/src/source_analyzer.rs b/crates/ra_hir/src/source_analyzer.rs index 74d64c97d..c63d1b847 100644 --- a/crates/ra_hir/src/source_analyzer.rs +++ b/crates/ra_hir/src/source_analyzer.rs | |||
@@ -224,7 +224,8 @@ impl SourceAnalyzer { | |||
224 | } | 224 | } |
225 | } | 225 | } |
226 | // This must be a normal source file rather than macro file. | 226 | // This must be a normal source file rather than macro file. |
227 | let hir_path = crate::Path::from_ast(path.clone())?; | 227 | let hir_path = |
228 | crate::Path::from_src(path.clone(), &Hygiene::new(db.upcast(), self.file_id))?; | ||
228 | resolve_hir_path(db, &self.resolver, &hir_path) | 229 | resolve_hir_path(db, &self.resolver, &hir_path) |
229 | } | 230 | } |
230 | 231 | ||
diff --git a/crates/ra_hir_def/src/adt.rs b/crates/ra_hir_def/src/adt.rs index 753becc3d..8eef51828 100644 --- a/crates/ra_hir_def/src/adt.rs +++ b/crates/ra_hir_def/src/adt.rs | |||
@@ -12,9 +12,15 @@ use ra_prof::profile; | |||
12 | use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner, VisibilityOwner}; | 12 | use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner, VisibilityOwner}; |
13 | 13 | ||
14 | use crate::{ | 14 | use crate::{ |
15 | body::CfgExpander, db::DefDatabase, src::HasChildSource, src::HasSource, trace::Trace, | 15 | body::{CfgExpander, LowerCtx}, |
16 | type_ref::TypeRef, visibility::RawVisibility, EnumId, HasModule, LocalEnumVariantId, | 16 | db::DefDatabase, |
17 | LocalFieldId, Lookup, ModuleId, StructId, UnionId, VariantId, | 17 | src::HasChildSource, |
18 | src::HasSource, | ||
19 | trace::Trace, | ||
20 | type_ref::TypeRef, | ||
21 | visibility::RawVisibility, | ||
22 | EnumId, HasModule, LocalEnumVariantId, LocalFieldId, Lookup, ModuleId, StructId, UnionId, | ||
23 | VariantId, | ||
18 | }; | 24 | }; |
19 | 25 | ||
20 | /// Note that we use `StructData` for unions as well! | 26 | /// Note that we use `StructData` for unions as well! |
@@ -198,6 +204,8 @@ fn lower_struct( | |||
198 | trace: &mut Trace<FieldData, Either<ast::TupleFieldDef, ast::RecordFieldDef>>, | 204 | trace: &mut Trace<FieldData, Either<ast::TupleFieldDef, ast::RecordFieldDef>>, |
199 | ast: &InFile<ast::StructKind>, | 205 | ast: &InFile<ast::StructKind>, |
200 | ) -> StructKind { | 206 | ) -> StructKind { |
207 | let ctx = LowerCtx::new(db, ast.file_id); | ||
208 | |||
201 | match &ast.value { | 209 | match &ast.value { |
202 | ast::StructKind::Tuple(fl) => { | 210 | ast::StructKind::Tuple(fl) => { |
203 | for (i, fd) in fl.fields().enumerate() { | 211 | for (i, fd) in fl.fields().enumerate() { |
@@ -210,7 +218,7 @@ fn lower_struct( | |||
210 | || Either::Left(fd.clone()), | 218 | || Either::Left(fd.clone()), |
211 | || FieldData { | 219 | || FieldData { |
212 | name: Name::new_tuple_field(i), | 220 | name: Name::new_tuple_field(i), |
213 | type_ref: TypeRef::from_ast_opt(fd.type_ref()), | 221 | type_ref: TypeRef::from_ast_opt(&ctx, fd.type_ref()), |
214 | visibility: RawVisibility::from_ast(db, ast.with_value(fd.visibility())), | 222 | visibility: RawVisibility::from_ast(db, ast.with_value(fd.visibility())), |
215 | }, | 223 | }, |
216 | ); | 224 | ); |
@@ -228,7 +236,7 @@ fn lower_struct( | |||
228 | || Either::Right(fd.clone()), | 236 | || Either::Right(fd.clone()), |
229 | || FieldData { | 237 | || FieldData { |
230 | name: fd.name().map(|n| n.as_name()).unwrap_or_else(Name::missing), | 238 | name: fd.name().map(|n| n.as_name()).unwrap_or_else(Name::missing), |
231 | type_ref: TypeRef::from_ast_opt(fd.ascribed_type()), | 239 | type_ref: TypeRef::from_ast_opt(&ctx, fd.ascribed_type()), |
232 | visibility: RawVisibility::from_ast(db, ast.with_value(fd.visibility())), | 240 | visibility: RawVisibility::from_ast(db, ast.with_value(fd.visibility())), |
233 | }, | 241 | }, |
234 | ); | 242 | ); |
diff --git a/crates/ra_hir_def/src/attr.rs b/crates/ra_hir_def/src/attr.rs index 5a86af8ba..576cd0c65 100644 --- a/crates/ra_hir_def/src/attr.rs +++ b/crates/ra_hir_def/src/attr.rs | |||
@@ -140,6 +140,7 @@ impl Attr { | |||
140 | } | 140 | } |
141 | } | 141 | } |
142 | 142 | ||
143 | #[derive(Debug, Clone, Copy)] | ||
143 | pub struct AttrQuery<'a> { | 144 | pub struct AttrQuery<'a> { |
144 | attrs: &'a Attrs, | 145 | attrs: &'a Attrs, |
145 | key: &'static str, | 146 | key: &'static str, |
diff --git a/crates/ra_hir_def/src/body.rs b/crates/ra_hir_def/src/body.rs index 890cefcaf..4edaad960 100644 --- a/crates/ra_hir_def/src/body.rs +++ b/crates/ra_hir_def/src/body.rs | |||
@@ -15,6 +15,8 @@ use ra_prof::profile; | |||
15 | use ra_syntax::{ast, AstNode, AstPtr}; | 15 | use ra_syntax::{ast, AstNode, AstPtr}; |
16 | use rustc_hash::FxHashMap; | 16 | use rustc_hash::FxHashMap; |
17 | 17 | ||
18 | pub(crate) use lower::LowerCtx; | ||
19 | |||
18 | use crate::{ | 20 | use crate::{ |
19 | attr::Attrs, | 21 | attr::Attrs, |
20 | db::DefDatabase, | 22 | db::DefDatabase, |
diff --git a/crates/ra_hir_def/src/body/lower.rs b/crates/ra_hir_def/src/body/lower.rs index 571603854..687216dc3 100644 --- a/crates/ra_hir_def/src/body/lower.rs +++ b/crates/ra_hir_def/src/body/lower.rs | |||
@@ -3,8 +3,9 @@ | |||
3 | 3 | ||
4 | use either::Either; | 4 | use either::Either; |
5 | use hir_expand::{ | 5 | use hir_expand::{ |
6 | hygiene::Hygiene, | ||
6 | name::{name, AsName, Name}, | 7 | name::{name, AsName, Name}, |
7 | MacroDefId, MacroDefKind, | 8 | HirFileId, MacroDefId, MacroDefKind, |
8 | }; | 9 | }; |
9 | use ra_arena::Arena; | 10 | use ra_arena::Arena; |
10 | use ra_syntax::{ | 11 | use ra_syntax::{ |
@@ -26,7 +27,7 @@ use crate::{ | |||
26 | LogicOp, MatchArm, Ordering, Pat, PatId, RecordFieldPat, RecordLitField, Statement, | 27 | LogicOp, MatchArm, Ordering, Pat, PatId, RecordFieldPat, RecordLitField, Statement, |
27 | }, | 28 | }, |
28 | item_scope::BuiltinShadowMode, | 29 | item_scope::BuiltinShadowMode, |
29 | path::GenericArgs, | 30 | path::{GenericArgs, Path}, |
30 | type_ref::{Mutability, TypeRef}, | 31 | type_ref::{Mutability, TypeRef}, |
31 | AdtId, ConstLoc, ContainerId, DefWithBodyId, EnumLoc, FunctionLoc, Intern, ModuleDefId, | 32 | AdtId, ConstLoc, ContainerId, DefWithBodyId, EnumLoc, FunctionLoc, Intern, ModuleDefId, |
32 | StaticLoc, StructLoc, TraitLoc, TypeAliasLoc, UnionLoc, | 33 | StaticLoc, StructLoc, TraitLoc, TypeAliasLoc, UnionLoc, |
@@ -35,6 +36,23 @@ use crate::{ | |||
35 | use super::{ExprSource, PatSource}; | 36 | use super::{ExprSource, PatSource}; |
36 | use ast::AstChildren; | 37 | use ast::AstChildren; |
37 | 38 | ||
39 | pub(crate) struct LowerCtx { | ||
40 | hygiene: Hygiene, | ||
41 | } | ||
42 | |||
43 | impl LowerCtx { | ||
44 | pub fn new(db: &dyn DefDatabase, file_id: HirFileId) -> Self { | ||
45 | LowerCtx { hygiene: Hygiene::new(db.upcast(), file_id) } | ||
46 | } | ||
47 | pub fn with_hygiene(hygiene: &Hygiene) -> Self { | ||
48 | LowerCtx { hygiene: hygiene.clone() } | ||
49 | } | ||
50 | |||
51 | pub fn lower_path(&self, ast: ast::Path) -> Option<Path> { | ||
52 | Path::from_src(ast, &self.hygiene) | ||
53 | } | ||
54 | } | ||
55 | |||
38 | pub(super) fn lower( | 56 | pub(super) fn lower( |
39 | db: &dyn DefDatabase, | 57 | db: &dyn DefDatabase, |
40 | def: DefWithBodyId, | 58 | def: DefWithBodyId, |
@@ -42,10 +60,13 @@ pub(super) fn lower( | |||
42 | params: Option<ast::ParamList>, | 60 | params: Option<ast::ParamList>, |
43 | body: Option<ast::Expr>, | 61 | body: Option<ast::Expr>, |
44 | ) -> (Body, BodySourceMap) { | 62 | ) -> (Body, BodySourceMap) { |
63 | let ctx = LowerCtx::new(db, expander.current_file_id.clone()); | ||
64 | |||
45 | ExprCollector { | 65 | ExprCollector { |
46 | db, | 66 | db, |
47 | def, | 67 | def, |
48 | expander, | 68 | expander, |
69 | ctx, | ||
49 | source_map: BodySourceMap::default(), | 70 | source_map: BodySourceMap::default(), |
50 | body: Body { | 71 | body: Body { |
51 | exprs: Arena::default(), | 72 | exprs: Arena::default(), |
@@ -62,7 +83,7 @@ struct ExprCollector<'a> { | |||
62 | db: &'a dyn DefDatabase, | 83 | db: &'a dyn DefDatabase, |
63 | def: DefWithBodyId, | 84 | def: DefWithBodyId, |
64 | expander: Expander, | 85 | expander: Expander, |
65 | 86 | ctx: LowerCtx, | |
66 | body: Body, | 87 | body: Body, |
67 | source_map: BodySourceMap, | 88 | source_map: BodySourceMap, |
68 | } | 89 | } |
@@ -182,10 +203,16 @@ impl ExprCollector<'_> { | |||
182 | 203 | ||
183 | self.alloc_expr(Expr::If { condition, then_branch, else_branch }, syntax_ptr) | 204 | self.alloc_expr(Expr::If { condition, then_branch, else_branch }, syntax_ptr) |
184 | } | 205 | } |
185 | ast::Expr::TryBlockExpr(e) => { | 206 | ast::Expr::EffectExpr(e) => match e.effect() { |
186 | let body = self.collect_block_opt(e.body()); | 207 | ast::Effect::Try(_) => { |
187 | self.alloc_expr(Expr::TryBlock { body }, syntax_ptr) | 208 | let body = self.collect_block_opt(e.block_expr()); |
188 | } | 209 | self.alloc_expr(Expr::TryBlock { body }, syntax_ptr) |
210 | } | ||
211 | // FIXME: we need to record these effects somewhere... | ||
212 | ast::Effect::Async(_) | ast::Effect::Label(_) | ast::Effect::Unsafe(_) => { | ||
213 | self.collect_block_opt(e.block_expr()) | ||
214 | } | ||
215 | }, | ||
189 | ast::Expr::BlockExpr(e) => self.collect_block(e), | 216 | ast::Expr::BlockExpr(e) => self.collect_block(e), |
190 | ast::Expr::LoopExpr(e) => { | 217 | ast::Expr::LoopExpr(e) => { |
191 | let body = self.collect_block_opt(e.loop_body()); | 218 | let body = self.collect_block_opt(e.loop_body()); |
@@ -241,7 +268,8 @@ impl ExprCollector<'_> { | |||
241 | Vec::new() | 268 | Vec::new() |
242 | }; | 269 | }; |
243 | let method_name = e.name_ref().map(|nr| nr.as_name()).unwrap_or_else(Name::missing); | 270 | let method_name = e.name_ref().map(|nr| nr.as_name()).unwrap_or_else(Name::missing); |
244 | let generic_args = e.type_arg_list().and_then(GenericArgs::from_ast); | 271 | let generic_args = |
272 | e.type_arg_list().and_then(|it| GenericArgs::from_ast(&self.ctx, it)); | ||
245 | self.alloc_expr( | 273 | self.alloc_expr( |
246 | Expr::MethodCall { receiver, method_name, args, generic_args }, | 274 | Expr::MethodCall { receiver, method_name, args, generic_args }, |
247 | syntax_ptr, | 275 | syntax_ptr, |
@@ -347,7 +375,7 @@ impl ExprCollector<'_> { | |||
347 | } | 375 | } |
348 | ast::Expr::CastExpr(e) => { | 376 | ast::Expr::CastExpr(e) => { |
349 | let expr = self.collect_expr_opt(e.expr()); | 377 | let expr = self.collect_expr_opt(e.expr()); |
350 | let type_ref = TypeRef::from_ast_opt(e.type_ref()); | 378 | let type_ref = TypeRef::from_ast_opt(&self.ctx, e.type_ref()); |
351 | self.alloc_expr(Expr::Cast { expr, type_ref }, syntax_ptr) | 379 | self.alloc_expr(Expr::Cast { expr, type_ref }, syntax_ptr) |
352 | } | 380 | } |
353 | ast::Expr::RefExpr(e) => { | 381 | ast::Expr::RefExpr(e) => { |
@@ -369,12 +397,16 @@ impl ExprCollector<'_> { | |||
369 | if let Some(pl) = e.param_list() { | 397 | if let Some(pl) = e.param_list() { |
370 | for param in pl.params() { | 398 | for param in pl.params() { |
371 | let pat = self.collect_pat_opt(param.pat()); | 399 | let pat = self.collect_pat_opt(param.pat()); |
372 | let type_ref = param.ascribed_type().map(TypeRef::from_ast); | 400 | let type_ref = |
401 | param.ascribed_type().map(|it| TypeRef::from_ast(&self.ctx, it)); | ||
373 | args.push(pat); | 402 | args.push(pat); |
374 | arg_types.push(type_ref); | 403 | arg_types.push(type_ref); |
375 | } | 404 | } |
376 | } | 405 | } |
377 | let ret_type = e.ret_type().and_then(|r| r.type_ref()).map(TypeRef::from_ast); | 406 | let ret_type = e |
407 | .ret_type() | ||
408 | .and_then(|r| r.type_ref()) | ||
409 | .map(|it| TypeRef::from_ast(&self.ctx, it)); | ||
378 | let body = self.collect_expr_opt(e.body()); | 410 | let body = self.collect_expr_opt(e.body()); |
379 | self.alloc_expr(Expr::Lambda { args, arg_types, ret_type, body }, syntax_ptr) | 411 | self.alloc_expr(Expr::Lambda { args, arg_types, ret_type, body }, syntax_ptr) |
380 | } | 412 | } |
@@ -434,6 +466,7 @@ impl ExprCollector<'_> { | |||
434 | krate: Some(self.expander.module.krate), | 466 | krate: Some(self.expander.module.krate), |
435 | ast_id: Some(self.expander.ast_id(&e)), | 467 | ast_id: Some(self.expander.ast_id(&e)), |
436 | kind: MacroDefKind::Declarative, | 468 | kind: MacroDefKind::Declarative, |
469 | local_inner: false, | ||
437 | }; | 470 | }; |
438 | self.body.item_scope.define_legacy_macro(name, mac); | 471 | self.body.item_scope.define_legacy_macro(name, mac); |
439 | 472 | ||
@@ -468,19 +501,15 @@ impl ExprCollector<'_> { | |||
468 | } | 501 | } |
469 | } | 502 | } |
470 | 503 | ||
471 | fn collect_block(&mut self, expr: ast::BlockExpr) -> ExprId { | 504 | fn collect_block(&mut self, block: ast::BlockExpr) -> ExprId { |
472 | let syntax_node_ptr = AstPtr::new(&expr.clone().into()); | 505 | let syntax_node_ptr = AstPtr::new(&block.clone().into()); |
473 | let block = match expr.block() { | ||
474 | Some(block) => block, | ||
475 | None => return self.alloc_expr(Expr::Missing, syntax_node_ptr), | ||
476 | }; | ||
477 | self.collect_block_items(&block); | 506 | self.collect_block_items(&block); |
478 | let statements = block | 507 | let statements = block |
479 | .statements() | 508 | .statements() |
480 | .map(|s| match s { | 509 | .map(|s| match s { |
481 | ast::Stmt::LetStmt(stmt) => { | 510 | ast::Stmt::LetStmt(stmt) => { |
482 | let pat = self.collect_pat_opt(stmt.pat()); | 511 | let pat = self.collect_pat_opt(stmt.pat()); |
483 | let type_ref = stmt.ascribed_type().map(TypeRef::from_ast); | 512 | let type_ref = stmt.ascribed_type().map(|it| TypeRef::from_ast(&self.ctx, it)); |
484 | let initializer = stmt.initializer().map(|e| self.collect_expr(e)); | 513 | let initializer = stmt.initializer().map(|e| self.collect_expr(e)); |
485 | Statement::Let { pat, type_ref, initializer } | 514 | Statement::Let { pat, type_ref, initializer } |
486 | } | 515 | } |
@@ -491,7 +520,7 @@ impl ExprCollector<'_> { | |||
491 | self.alloc_expr(Expr::Block { statements, tail }, syntax_node_ptr) | 520 | self.alloc_expr(Expr::Block { statements, tail }, syntax_node_ptr) |
492 | } | 521 | } |
493 | 522 | ||
494 | fn collect_block_items(&mut self, block: &ast::Block) { | 523 | fn collect_block_items(&mut self, block: &ast::BlockExpr) { |
495 | let container = ContainerId::DefWithBodyId(self.def); | 524 | let container = ContainerId::DefWithBodyId(self.def); |
496 | for item in block.items() { | 525 | for item in block.items() { |
497 | let (def, name): (ModuleDefId, Option<ast::Name>) = match item { | 526 | let (def, name): (ModuleDefId, Option<ast::Name>) = match item { |
diff --git a/crates/ra_hir_def/src/data.rs b/crates/ra_hir_def/src/data.rs index ccb682f9a..7a2067e49 100644 --- a/crates/ra_hir_def/src/data.rs +++ b/crates/ra_hir_def/src/data.rs | |||
@@ -15,6 +15,7 @@ use ra_syntax::ast::{ | |||
15 | 15 | ||
16 | use crate::{ | 16 | use crate::{ |
17 | attr::Attrs, | 17 | attr::Attrs, |
18 | body::LowerCtx, | ||
18 | db::DefDatabase, | 19 | db::DefDatabase, |
19 | path::{path, AssociatedTypeBinding, GenericArgs, Path}, | 20 | path::{path, AssociatedTypeBinding, GenericArgs, Path}, |
20 | src::HasSource, | 21 | src::HasSource, |
@@ -40,13 +41,14 @@ impl FunctionData { | |||
40 | pub(crate) fn fn_data_query(db: &impl DefDatabase, func: FunctionId) -> Arc<FunctionData> { | 41 | pub(crate) fn fn_data_query(db: &impl DefDatabase, func: FunctionId) -> Arc<FunctionData> { |
41 | let loc = func.lookup(db); | 42 | let loc = func.lookup(db); |
42 | let src = loc.source(db); | 43 | let src = loc.source(db); |
44 | let ctx = LowerCtx::new(db, src.file_id); | ||
43 | let name = src.value.name().map(|n| n.as_name()).unwrap_or_else(Name::missing); | 45 | let name = src.value.name().map(|n| n.as_name()).unwrap_or_else(Name::missing); |
44 | let mut params = Vec::new(); | 46 | let mut params = Vec::new(); |
45 | let mut has_self_param = false; | 47 | let mut has_self_param = false; |
46 | if let Some(param_list) = src.value.param_list() { | 48 | if let Some(param_list) = src.value.param_list() { |
47 | if let Some(self_param) = param_list.self_param() { | 49 | if let Some(self_param) = param_list.self_param() { |
48 | let self_type = if let Some(type_ref) = self_param.ascribed_type() { | 50 | let self_type = if let Some(type_ref) = self_param.ascribed_type() { |
49 | TypeRef::from_ast(type_ref) | 51 | TypeRef::from_ast(&ctx, type_ref) |
50 | } else { | 52 | } else { |
51 | let self_type = TypeRef::Path(name![Self].into()); | 53 | let self_type = TypeRef::Path(name![Self].into()); |
52 | match self_param.kind() { | 54 | match self_param.kind() { |
@@ -63,14 +65,14 @@ impl FunctionData { | |||
63 | has_self_param = true; | 65 | has_self_param = true; |
64 | } | 66 | } |
65 | for param in param_list.params() { | 67 | for param in param_list.params() { |
66 | let type_ref = TypeRef::from_ast_opt(param.ascribed_type()); | 68 | let type_ref = TypeRef::from_ast_opt(&ctx, param.ascribed_type()); |
67 | params.push(type_ref); | 69 | params.push(type_ref); |
68 | } | 70 | } |
69 | } | 71 | } |
70 | let attrs = Attrs::new(&src.value, &Hygiene::new(db.upcast(), src.file_id)); | 72 | let attrs = Attrs::new(&src.value, &Hygiene::new(db.upcast(), src.file_id)); |
71 | 73 | ||
72 | let ret_type = if let Some(type_ref) = src.value.ret_type().and_then(|rt| rt.type_ref()) { | 74 | let ret_type = if let Some(type_ref) = src.value.ret_type().and_then(|rt| rt.type_ref()) { |
73 | TypeRef::from_ast(type_ref) | 75 | TypeRef::from_ast(&ctx, type_ref) |
74 | } else { | 76 | } else { |
75 | TypeRef::unit() | 77 | TypeRef::unit() |
76 | }; | 78 | }; |
@@ -122,7 +124,8 @@ impl TypeAliasData { | |||
122 | let loc = typ.lookup(db); | 124 | let loc = typ.lookup(db); |
123 | let node = loc.source(db); | 125 | let node = loc.source(db); |
124 | let name = node.value.name().map_or_else(Name::missing, |n| n.as_name()); | 126 | let name = node.value.name().map_or_else(Name::missing, |n| n.as_name()); |
125 | let type_ref = node.value.type_ref().map(TypeRef::from_ast); | 127 | let lower_ctx = LowerCtx::new(db, node.file_id); |
128 | let type_ref = node.value.type_ref().map(|it| TypeRef::from_ast(&lower_ctx, it)); | ||
126 | let vis_default = RawVisibility::default_for_container(loc.container); | 129 | let vis_default = RawVisibility::default_for_container(loc.container); |
127 | let visibility = RawVisibility::from_ast_with_default( | 130 | let visibility = RawVisibility::from_ast_with_default( |
128 | db, | 131 | db, |
@@ -130,7 +133,7 @@ impl TypeAliasData { | |||
130 | node.as_ref().map(|n| n.visibility()), | 133 | node.as_ref().map(|n| n.visibility()), |
131 | ); | 134 | ); |
132 | let bounds = if let Some(bound_list) = node.value.type_bound_list() { | 135 | let bounds = if let Some(bound_list) = node.value.type_bound_list() { |
133 | bound_list.bounds().map(TypeBound::from_ast).collect() | 136 | bound_list.bounds().map(|it| TypeBound::from_ast(&lower_ctx, it)).collect() |
134 | } else { | 137 | } else { |
135 | Vec::new() | 138 | Vec::new() |
136 | }; | 139 | }; |
@@ -223,9 +226,10 @@ impl ImplData { | |||
223 | let _p = profile("impl_data_query"); | 226 | let _p = profile("impl_data_query"); |
224 | let impl_loc = id.lookup(db); | 227 | let impl_loc = id.lookup(db); |
225 | let src = impl_loc.source(db); | 228 | let src = impl_loc.source(db); |
229 | let lower_ctx = LowerCtx::new(db, src.file_id); | ||
226 | 230 | ||
227 | let target_trait = src.value.target_trait().map(TypeRef::from_ast); | 231 | let target_trait = src.value.target_trait().map(|it| TypeRef::from_ast(&lower_ctx, it)); |
228 | let target_type = TypeRef::from_ast_opt(src.value.target_type()); | 232 | let target_type = TypeRef::from_ast_opt(&lower_ctx, src.value.target_type()); |
229 | let is_negative = src.value.excl_token().is_some(); | 233 | let is_negative = src.value.excl_token().is_some(); |
230 | let module_id = impl_loc.container.module(db); | 234 | let module_id = impl_loc.container.module(db); |
231 | 235 | ||
@@ -279,8 +283,9 @@ impl ConstData { | |||
279 | vis_default: RawVisibility, | 283 | vis_default: RawVisibility, |
280 | node: InFile<N>, | 284 | node: InFile<N>, |
281 | ) -> ConstData { | 285 | ) -> ConstData { |
286 | let ctx = LowerCtx::new(db, node.file_id); | ||
282 | let name = node.value.name().map(|n| n.as_name()); | 287 | let name = node.value.name().map(|n| n.as_name()); |
283 | let type_ref = TypeRef::from_ast_opt(node.value.ascribed_type()); | 288 | let type_ref = TypeRef::from_ast_opt(&ctx, node.value.ascribed_type()); |
284 | let visibility = | 289 | let visibility = |
285 | RawVisibility::from_ast_with_default(db, vis_default, node.map(|n| n.visibility())); | 290 | RawVisibility::from_ast_with_default(db, vis_default, node.map(|n| n.visibility())); |
286 | ConstData { name, type_ref, visibility } | 291 | ConstData { name, type_ref, visibility } |
diff --git a/crates/ra_hir_def/src/generics.rs b/crates/ra_hir_def/src/generics.rs index d850244c4..09a5241f7 100644 --- a/crates/ra_hir_def/src/generics.rs +++ b/crates/ra_hir_def/src/generics.rs | |||
@@ -15,6 +15,7 @@ use ra_prof::profile; | |||
15 | use ra_syntax::ast::{self, NameOwner, TypeBoundsOwner, TypeParamsOwner}; | 15 | use ra_syntax::ast::{self, NameOwner, TypeBoundsOwner, TypeParamsOwner}; |
16 | 16 | ||
17 | use crate::{ | 17 | use crate::{ |
18 | body::LowerCtx, | ||
18 | child_by_source::ChildBySource, | 19 | child_by_source::ChildBySource, |
19 | db::DefDatabase, | 20 | db::DefDatabase, |
20 | dyn_map::DynMap, | 21 | dyn_map::DynMap, |
@@ -80,11 +81,13 @@ impl GenericParams { | |||
80 | fn new(db: &dyn DefDatabase, def: GenericDefId) -> (GenericParams, InFile<SourceMap>) { | 81 | fn new(db: &dyn DefDatabase, def: GenericDefId) -> (GenericParams, InFile<SourceMap>) { |
81 | let mut generics = GenericParams { types: Arena::default(), where_predicates: Vec::new() }; | 82 | let mut generics = GenericParams { types: Arena::default(), where_predicates: Vec::new() }; |
82 | let mut sm = ArenaMap::default(); | 83 | let mut sm = ArenaMap::default(); |
84 | |||
83 | // FIXME: add `: Sized` bound for everything except for `Self` in traits | 85 | // FIXME: add `: Sized` bound for everything except for `Self` in traits |
84 | let file_id = match def { | 86 | let file_id = match def { |
85 | GenericDefId::FunctionId(it) => { | 87 | GenericDefId::FunctionId(it) => { |
86 | let src = it.lookup(db).source(db); | 88 | let src = it.lookup(db).source(db); |
87 | generics.fill(&mut sm, &src.value); | 89 | let lower_ctx = LowerCtx::new(db, src.file_id); |
90 | generics.fill(&lower_ctx, &mut sm, &src.value); | ||
88 | // lower `impl Trait` in arguments | 91 | // lower `impl Trait` in arguments |
89 | let data = db.function_data(it); | 92 | let data = db.function_data(it); |
90 | for param in &data.params { | 93 | for param in &data.params { |
@@ -94,21 +97,25 @@ impl GenericParams { | |||
94 | } | 97 | } |
95 | GenericDefId::AdtId(AdtId::StructId(it)) => { | 98 | GenericDefId::AdtId(AdtId::StructId(it)) => { |
96 | let src = it.lookup(db).source(db); | 99 | let src = it.lookup(db).source(db); |
97 | generics.fill(&mut sm, &src.value); | 100 | let lower_ctx = LowerCtx::new(db, src.file_id); |
101 | generics.fill(&lower_ctx, &mut sm, &src.value); | ||
98 | src.file_id | 102 | src.file_id |
99 | } | 103 | } |
100 | GenericDefId::AdtId(AdtId::UnionId(it)) => { | 104 | GenericDefId::AdtId(AdtId::UnionId(it)) => { |
101 | let src = it.lookup(db).source(db); | 105 | let src = it.lookup(db).source(db); |
102 | generics.fill(&mut sm, &src.value); | 106 | let lower_ctx = LowerCtx::new(db, src.file_id); |
107 | generics.fill(&lower_ctx, &mut sm, &src.value); | ||
103 | src.file_id | 108 | src.file_id |
104 | } | 109 | } |
105 | GenericDefId::AdtId(AdtId::EnumId(it)) => { | 110 | GenericDefId::AdtId(AdtId::EnumId(it)) => { |
106 | let src = it.lookup(db).source(db); | 111 | let src = it.lookup(db).source(db); |
107 | generics.fill(&mut sm, &src.value); | 112 | let lower_ctx = LowerCtx::new(db, src.file_id); |
113 | generics.fill(&lower_ctx, &mut sm, &src.value); | ||
108 | src.file_id | 114 | src.file_id |
109 | } | 115 | } |
110 | GenericDefId::TraitId(it) => { | 116 | GenericDefId::TraitId(it) => { |
111 | let src = it.lookup(db).source(db); | 117 | let src = it.lookup(db).source(db); |
118 | let lower_ctx = LowerCtx::new(db, src.file_id); | ||
112 | 119 | ||
113 | // traits get the Self type as an implicit first type parameter | 120 | // traits get the Self type as an implicit first type parameter |
114 | let self_param_id = generics.types.alloc(TypeParamData { | 121 | let self_param_id = generics.types.alloc(TypeParamData { |
@@ -120,14 +127,16 @@ impl GenericParams { | |||
120 | // add super traits as bounds on Self | 127 | // add super traits as bounds on Self |
121 | // i.e., trait Foo: Bar is equivalent to trait Foo where Self: Bar | 128 | // i.e., trait Foo: Bar is equivalent to trait Foo where Self: Bar |
122 | let self_param = TypeRef::Path(name![Self].into()); | 129 | let self_param = TypeRef::Path(name![Self].into()); |
123 | generics.fill_bounds(&src.value, self_param); | 130 | generics.fill_bounds(&lower_ctx, &src.value, self_param); |
124 | 131 | ||
125 | generics.fill(&mut sm, &src.value); | 132 | generics.fill(&lower_ctx, &mut sm, &src.value); |
126 | src.file_id | 133 | src.file_id |
127 | } | 134 | } |
128 | GenericDefId::TypeAliasId(it) => { | 135 | GenericDefId::TypeAliasId(it) => { |
129 | let src = it.lookup(db).source(db); | 136 | let src = it.lookup(db).source(db); |
130 | generics.fill(&mut sm, &src.value); | 137 | let lower_ctx = LowerCtx::new(db, src.file_id); |
138 | |||
139 | generics.fill(&lower_ctx, &mut sm, &src.value); | ||
131 | src.file_id | 140 | src.file_id |
132 | } | 141 | } |
133 | // Note that we don't add `Self` here: in `impl`s, `Self` is not a | 142 | // Note that we don't add `Self` here: in `impl`s, `Self` is not a |
@@ -135,7 +144,9 @@ impl GenericParams { | |||
135 | // type, so this is handled by the resolver. | 144 | // type, so this is handled by the resolver. |
136 | GenericDefId::ImplId(it) => { | 145 | GenericDefId::ImplId(it) => { |
137 | let src = it.lookup(db).source(db); | 146 | let src = it.lookup(db).source(db); |
138 | generics.fill(&mut sm, &src.value); | 147 | let lower_ctx = LowerCtx::new(db, src.file_id); |
148 | |||
149 | generics.fill(&lower_ctx, &mut sm, &src.value); | ||
139 | src.file_id | 150 | src.file_id |
140 | } | 151 | } |
141 | // We won't be using this ID anyway | 152 | // We won't be using this ID anyway |
@@ -145,28 +156,38 @@ impl GenericParams { | |||
145 | (generics, InFile::new(file_id, sm)) | 156 | (generics, InFile::new(file_id, sm)) |
146 | } | 157 | } |
147 | 158 | ||
148 | fn fill(&mut self, sm: &mut SourceMap, node: &dyn TypeParamsOwner) { | 159 | fn fill(&mut self, lower_ctx: &LowerCtx, sm: &mut SourceMap, node: &dyn TypeParamsOwner) { |
149 | if let Some(params) = node.type_param_list() { | 160 | if let Some(params) = node.type_param_list() { |
150 | self.fill_params(sm, params) | 161 | self.fill_params(lower_ctx, sm, params) |
151 | } | 162 | } |
152 | if let Some(where_clause) = node.where_clause() { | 163 | if let Some(where_clause) = node.where_clause() { |
153 | self.fill_where_predicates(where_clause); | 164 | self.fill_where_predicates(lower_ctx, where_clause); |
154 | } | 165 | } |
155 | } | 166 | } |
156 | 167 | ||
157 | fn fill_bounds(&mut self, node: &dyn ast::TypeBoundsOwner, type_ref: TypeRef) { | 168 | fn fill_bounds( |
169 | &mut self, | ||
170 | lower_ctx: &LowerCtx, | ||
171 | node: &dyn ast::TypeBoundsOwner, | ||
172 | type_ref: TypeRef, | ||
173 | ) { | ||
158 | for bound in | 174 | for bound in |
159 | node.type_bound_list().iter().flat_map(|type_bound_list| type_bound_list.bounds()) | 175 | node.type_bound_list().iter().flat_map(|type_bound_list| type_bound_list.bounds()) |
160 | { | 176 | { |
161 | self.add_where_predicate_from_bound(bound, type_ref.clone()); | 177 | self.add_where_predicate_from_bound(lower_ctx, bound, type_ref.clone()); |
162 | } | 178 | } |
163 | } | 179 | } |
164 | 180 | ||
165 | fn fill_params(&mut self, sm: &mut SourceMap, params: ast::TypeParamList) { | 181 | fn fill_params( |
182 | &mut self, | ||
183 | lower_ctx: &LowerCtx, | ||
184 | sm: &mut SourceMap, | ||
185 | params: ast::TypeParamList, | ||
186 | ) { | ||
166 | for type_param in params.type_params() { | 187 | for type_param in params.type_params() { |
167 | let name = type_param.name().map_or_else(Name::missing, |it| it.as_name()); | 188 | let name = type_param.name().map_or_else(Name::missing, |it| it.as_name()); |
168 | // FIXME: Use `Path::from_src` | 189 | // FIXME: Use `Path::from_src` |
169 | let default = type_param.default_type().map(TypeRef::from_ast); | 190 | let default = type_param.default_type().map(|it| TypeRef::from_ast(lower_ctx, it)); |
170 | let param = TypeParamData { | 191 | let param = TypeParamData { |
171 | name: Some(name.clone()), | 192 | name: Some(name.clone()), |
172 | default, | 193 | default, |
@@ -176,29 +197,34 @@ impl GenericParams { | |||
176 | sm.insert(param_id, Either::Right(type_param.clone())); | 197 | sm.insert(param_id, Either::Right(type_param.clone())); |
177 | 198 | ||
178 | let type_ref = TypeRef::Path(name.into()); | 199 | let type_ref = TypeRef::Path(name.into()); |
179 | self.fill_bounds(&type_param, type_ref); | 200 | self.fill_bounds(&lower_ctx, &type_param, type_ref); |
180 | } | 201 | } |
181 | } | 202 | } |
182 | 203 | ||
183 | fn fill_where_predicates(&mut self, where_clause: ast::WhereClause) { | 204 | fn fill_where_predicates(&mut self, lower_ctx: &LowerCtx, where_clause: ast::WhereClause) { |
184 | for pred in where_clause.predicates() { | 205 | for pred in where_clause.predicates() { |
185 | let type_ref = match pred.type_ref() { | 206 | let type_ref = match pred.type_ref() { |
186 | Some(type_ref) => type_ref, | 207 | Some(type_ref) => type_ref, |
187 | None => continue, | 208 | None => continue, |
188 | }; | 209 | }; |
189 | let type_ref = TypeRef::from_ast(type_ref); | 210 | let type_ref = TypeRef::from_ast(lower_ctx, type_ref); |
190 | for bound in pred.type_bound_list().iter().flat_map(|l| l.bounds()) { | 211 | for bound in pred.type_bound_list().iter().flat_map(|l| l.bounds()) { |
191 | self.add_where_predicate_from_bound(bound, type_ref.clone()); | 212 | self.add_where_predicate_from_bound(lower_ctx, bound, type_ref.clone()); |
192 | } | 213 | } |
193 | } | 214 | } |
194 | } | 215 | } |
195 | 216 | ||
196 | fn add_where_predicate_from_bound(&mut self, bound: ast::TypeBound, type_ref: TypeRef) { | 217 | fn add_where_predicate_from_bound( |
218 | &mut self, | ||
219 | lower_ctx: &LowerCtx, | ||
220 | bound: ast::TypeBound, | ||
221 | type_ref: TypeRef, | ||
222 | ) { | ||
197 | if bound.question_token().is_some() { | 223 | if bound.question_token().is_some() { |
198 | // FIXME: remove this bound | 224 | // FIXME: remove this bound |
199 | return; | 225 | return; |
200 | } | 226 | } |
201 | let bound = TypeBound::from_ast(bound); | 227 | let bound = TypeBound::from_ast(lower_ctx, bound); |
202 | self.where_predicates | 228 | self.where_predicates |
203 | .push(WherePredicate { target: WherePredicateTarget::TypeRef(type_ref), bound }); | 229 | .push(WherePredicate { target: WherePredicateTarget::TypeRef(type_ref), bound }); |
204 | } | 230 | } |
diff --git a/crates/ra_hir_def/src/nameres/collector.rs b/crates/ra_hir_def/src/nameres/collector.rs index 98c74fe25..bf3968bd6 100644 --- a/crates/ra_hir_def/src/nameres/collector.rs +++ b/crates/ra_hir_def/src/nameres/collector.rs | |||
@@ -204,6 +204,7 @@ impl DefCollector<'_> { | |||
204 | ast_id: None, | 204 | ast_id: None, |
205 | krate: Some(krate), | 205 | krate: Some(krate), |
206 | kind: MacroDefKind::CustomDerive(expander), | 206 | kind: MacroDefKind::CustomDerive(expander), |
207 | local_inner: false, | ||
207 | }; | 208 | }; |
208 | 209 | ||
209 | self.define_proc_macro(name.clone(), macro_id); | 210 | self.define_proc_macro(name.clone(), macro_id); |
@@ -941,6 +942,7 @@ impl ModCollector<'_, '_> { | |||
941 | ast_id: Some(ast_id.ast_id), | 942 | ast_id: Some(ast_id.ast_id), |
942 | krate: Some(self.def_collector.def_map.krate), | 943 | krate: Some(self.def_collector.def_map.krate), |
943 | kind: MacroDefKind::Declarative, | 944 | kind: MacroDefKind::Declarative, |
945 | local_inner: mac.local_inner, | ||
944 | }; | 946 | }; |
945 | self.def_collector.define_macro(self.module_id, name.clone(), macro_id, mac.export); | 947 | self.def_collector.define_macro(self.module_id, name.clone(), macro_id, mac.export); |
946 | } | 948 | } |
diff --git a/crates/ra_hir_def/src/nameres/raw.rs b/crates/ra_hir_def/src/nameres/raw.rs index 39b011ad7..a71503c76 100644 --- a/crates/ra_hir_def/src/nameres/raw.rs +++ b/crates/ra_hir_def/src/nameres/raw.rs | |||
@@ -188,6 +188,7 @@ pub(super) struct MacroData { | |||
188 | pub(super) path: ModPath, | 188 | pub(super) path: ModPath, |
189 | pub(super) name: Option<Name>, | 189 | pub(super) name: Option<Name>, |
190 | pub(super) export: bool, | 190 | pub(super) export: bool, |
191 | pub(super) local_inner: bool, | ||
191 | pub(super) builtin: bool, | 192 | pub(super) builtin: bool, |
192 | } | 193 | } |
193 | 194 | ||
@@ -401,14 +402,32 @@ impl RawItemsCollector { | |||
401 | 402 | ||
402 | let name = m.name().map(|it| it.as_name()); | 403 | let name = m.name().map(|it| it.as_name()); |
403 | let ast_id = self.source_ast_id_map.ast_id(&m); | 404 | let ast_id = self.source_ast_id_map.ast_id(&m); |
404 | // FIXME: cfg_attr | ||
405 | let export = m.attrs().filter_map(|x| x.simple_name()).any(|name| name == "macro_export"); | ||
406 | 405 | ||
407 | // FIXME: cfg_attr | 406 | // FIXME: cfg_attr |
408 | let builtin = | 407 | let export_attr = attrs.by_key("macro_export"); |
409 | m.attrs().filter_map(|x| x.simple_name()).any(|name| name == "rustc_builtin_macro"); | 408 | |
409 | let export = export_attr.exists(); | ||
410 | let local_inner = if export { | ||
411 | export_attr.tt_values().map(|it| &it.token_trees).flatten().any(|it| match it { | ||
412 | tt::TokenTree::Leaf(tt::Leaf::Ident(ident)) => { | ||
413 | ident.text.contains("local_inner_macros") | ||
414 | } | ||
415 | _ => false, | ||
416 | }) | ||
417 | } else { | ||
418 | false | ||
419 | }; | ||
420 | |||
421 | let builtin = attrs.by_key("rustc_builtin_macro").exists(); | ||
410 | 422 | ||
411 | let m = self.raw_items.macros.alloc(MacroData { ast_id, path, name, export, builtin }); | 423 | let m = self.raw_items.macros.alloc(MacroData { |
424 | ast_id, | ||
425 | path, | ||
426 | name, | ||
427 | export, | ||
428 | local_inner, | ||
429 | builtin, | ||
430 | }); | ||
412 | self.push_item(current_module, attrs, RawItemKind::Macro(m)); | 431 | self.push_item(current_module, attrs, RawItemKind::Macro(m)); |
413 | } | 432 | } |
414 | 433 | ||
diff --git a/crates/ra_hir_def/src/nameres/tests/macros.rs b/crates/ra_hir_def/src/nameres/tests/macros.rs index b0befdfbd..9bc0e6287 100644 --- a/crates/ra_hir_def/src/nameres/tests/macros.rs +++ b/crates/ra_hir_def/src/nameres/tests/macros.rs | |||
@@ -136,6 +136,43 @@ fn macro_rules_export_with_local_inner_macros_are_visible() { | |||
136 | } | 136 | } |
137 | 137 | ||
138 | #[test] | 138 | #[test] |
139 | fn local_inner_macros_makes_local_macros_usable() { | ||
140 | let map = def_map( | ||
141 | " | ||
142 | //- /main.rs crate:main deps:foo | ||
143 | foo::structs!(Foo, Bar); | ||
144 | mod bar; | ||
145 | //- /bar.rs | ||
146 | use crate::*; | ||
147 | //- /lib.rs crate:foo | ||
148 | #[macro_export(local_inner_macros)] | ||
149 | macro_rules! structs { | ||
150 | ($($i:ident),*) => { | ||
151 | inner!($($i),*); | ||
152 | } | ||
153 | } | ||
154 | #[macro_export] | ||
155 | macro_rules! inner { | ||
156 | ($($i:ident),*) => { | ||
157 | $(struct $i { field: u32 } )* | ||
158 | } | ||
159 | } | ||
160 | ", | ||
161 | ); | ||
162 | assert_snapshot!(map, @r###" | ||
163 | â‹®crate | ||
164 | â‹®Bar: t v | ||
165 | â‹®Foo: t v | ||
166 | â‹®bar: t | ||
167 | â‹® | ||
168 | â‹®crate::bar | ||
169 | â‹®Bar: t v | ||
170 | â‹®Foo: t v | ||
171 | â‹®bar: t | ||
172 | "###); | ||
173 | } | ||
174 | |||
175 | #[test] | ||
139 | fn unexpanded_macro_should_expand_by_fixedpoint_loop() { | 176 | fn unexpanded_macro_should_expand_by_fixedpoint_loop() { |
140 | let map = def_map( | 177 | let map = def_map( |
141 | " | 178 | " |
diff --git a/crates/ra_hir_def/src/path.rs b/crates/ra_hir_def/src/path.rs index 162b3c8c7..e84efe2ab 100644 --- a/crates/ra_hir_def/src/path.rs +++ b/crates/ra_hir_def/src/path.rs | |||
@@ -7,6 +7,7 @@ use std::{ | |||
7 | sync::Arc, | 7 | sync::Arc, |
8 | }; | 8 | }; |
9 | 9 | ||
10 | use crate::body::LowerCtx; | ||
10 | use hir_expand::{ | 11 | use hir_expand::{ |
11 | hygiene::Hygiene, | 12 | hygiene::Hygiene, |
12 | name::{AsName, Name}, | 13 | name::{AsName, Name}, |
@@ -244,8 +245,8 @@ impl<'a> PathSegments<'a> { | |||
244 | } | 245 | } |
245 | 246 | ||
246 | impl GenericArgs { | 247 | impl GenericArgs { |
247 | pub(crate) fn from_ast(node: ast::TypeArgList) -> Option<GenericArgs> { | 248 | pub(crate) fn from_ast(lower_ctx: &LowerCtx, node: ast::TypeArgList) -> Option<GenericArgs> { |
248 | lower::lower_generic_args(node) | 249 | lower::lower_generic_args(lower_ctx, node) |
249 | } | 250 | } |
250 | 251 | ||
251 | pub(crate) fn empty() -> GenericArgs { | 252 | pub(crate) fn empty() -> GenericArgs { |
diff --git a/crates/ra_hir_def/src/path/lower.rs b/crates/ra_hir_def/src/path/lower.rs index 9ec2e0dcd..6a0c019fd 100644 --- a/crates/ra_hir_def/src/path/lower.rs +++ b/crates/ra_hir_def/src/path/lower.rs | |||
@@ -13,6 +13,7 @@ use ra_syntax::ast::{self, AstNode, TypeAscriptionOwner, TypeBoundsOwner}; | |||
13 | 13 | ||
14 | use super::AssociatedTypeBinding; | 14 | use super::AssociatedTypeBinding; |
15 | use crate::{ | 15 | use crate::{ |
16 | body::LowerCtx, | ||
16 | path::{GenericArg, GenericArgs, ModPath, Path, PathKind}, | 17 | path::{GenericArg, GenericArgs, ModPath, Path, PathKind}, |
17 | type_ref::{TypeBound, TypeRef}, | 18 | type_ref::{TypeBound, TypeRef}, |
18 | }; | 19 | }; |
@@ -26,6 +27,7 @@ pub(super) fn lower_path(mut path: ast::Path, hygiene: &Hygiene) -> Option<Path> | |||
26 | let mut type_anchor = None; | 27 | let mut type_anchor = None; |
27 | let mut segments = Vec::new(); | 28 | let mut segments = Vec::new(); |
28 | let mut generic_args = Vec::new(); | 29 | let mut generic_args = Vec::new(); |
30 | let ctx = LowerCtx::with_hygiene(hygiene); | ||
29 | loop { | 31 | loop { |
30 | let segment = path.segment()?; | 32 | let segment = path.segment()?; |
31 | 33 | ||
@@ -40,9 +42,10 @@ pub(super) fn lower_path(mut path: ast::Path, hygiene: &Hygiene) -> Option<Path> | |||
40 | Either::Left(name) => { | 42 | Either::Left(name) => { |
41 | let args = segment | 43 | let args = segment |
42 | .type_arg_list() | 44 | .type_arg_list() |
43 | .and_then(lower_generic_args) | 45 | .and_then(|it| lower_generic_args(&ctx, it)) |
44 | .or_else(|| { | 46 | .or_else(|| { |
45 | lower_generic_args_from_fn_path( | 47 | lower_generic_args_from_fn_path( |
48 | &ctx, | ||
46 | segment.param_list(), | 49 | segment.param_list(), |
47 | segment.ret_type(), | 50 | segment.ret_type(), |
48 | ) | 51 | ) |
@@ -60,7 +63,7 @@ pub(super) fn lower_path(mut path: ast::Path, hygiene: &Hygiene) -> Option<Path> | |||
60 | ast::PathSegmentKind::Type { type_ref, trait_ref } => { | 63 | ast::PathSegmentKind::Type { type_ref, trait_ref } => { |
61 | assert!(path.qualifier().is_none()); // this can only occur at the first segment | 64 | assert!(path.qualifier().is_none()); // this can only occur at the first segment |
62 | 65 | ||
63 | let self_type = TypeRef::from_ast(type_ref?); | 66 | let self_type = TypeRef::from_ast(&ctx, type_ref?); |
64 | 67 | ||
65 | match trait_ref { | 68 | match trait_ref { |
66 | // <T>::foo | 69 | // <T>::foo |
@@ -113,6 +116,21 @@ pub(super) fn lower_path(mut path: ast::Path, hygiene: &Hygiene) -> Option<Path> | |||
113 | } | 116 | } |
114 | segments.reverse(); | 117 | segments.reverse(); |
115 | generic_args.reverse(); | 118 | generic_args.reverse(); |
119 | |||
120 | // handle local_inner_macros : | ||
121 | // Basically, even in rustc it is quite hacky: | ||
122 | // https://github.com/rust-lang/rust/blob/614f273e9388ddd7804d5cbc80b8865068a3744e/src/librustc_resolve/macros.rs#L456 | ||
123 | // We follow what it did anyway :) | ||
124 | if segments.len() == 1 && kind == PathKind::Plain { | ||
125 | if let Some(macro_call) = path.syntax().parent().and_then(ast::MacroCall::cast) { | ||
126 | if macro_call.is_bang() { | ||
127 | if let Some(crate_id) = hygiene.local_inner_macros() { | ||
128 | kind = PathKind::DollarCrate(crate_id); | ||
129 | } | ||
130 | } | ||
131 | } | ||
132 | } | ||
133 | |||
116 | let mod_path = ModPath { kind, segments }; | 134 | let mod_path = ModPath { kind, segments }; |
117 | return Some(Path { type_anchor, mod_path, generic_args }); | 135 | return Some(Path { type_anchor, mod_path, generic_args }); |
118 | 136 | ||
@@ -128,10 +146,13 @@ pub(super) fn lower_path(mut path: ast::Path, hygiene: &Hygiene) -> Option<Path> | |||
128 | } | 146 | } |
129 | } | 147 | } |
130 | 148 | ||
131 | pub(super) fn lower_generic_args(node: ast::TypeArgList) -> Option<GenericArgs> { | 149 | pub(super) fn lower_generic_args( |
150 | lower_ctx: &LowerCtx, | ||
151 | node: ast::TypeArgList, | ||
152 | ) -> Option<GenericArgs> { | ||
132 | let mut args = Vec::new(); | 153 | let mut args = Vec::new(); |
133 | for type_arg in node.type_args() { | 154 | for type_arg in node.type_args() { |
134 | let type_ref = TypeRef::from_ast_opt(type_arg.type_ref()); | 155 | let type_ref = TypeRef::from_ast_opt(lower_ctx, type_arg.type_ref()); |
135 | args.push(GenericArg::Type(type_ref)); | 156 | args.push(GenericArg::Type(type_ref)); |
136 | } | 157 | } |
137 | // lifetimes ignored for now | 158 | // lifetimes ignored for now |
@@ -140,9 +161,9 @@ pub(super) fn lower_generic_args(node: ast::TypeArgList) -> Option<GenericArgs> | |||
140 | let assoc_type_arg: ast::AssocTypeArg = assoc_type_arg; | 161 | let assoc_type_arg: ast::AssocTypeArg = assoc_type_arg; |
141 | if let Some(name_ref) = assoc_type_arg.name_ref() { | 162 | if let Some(name_ref) = assoc_type_arg.name_ref() { |
142 | let name = name_ref.as_name(); | 163 | let name = name_ref.as_name(); |
143 | let type_ref = assoc_type_arg.type_ref().map(TypeRef::from_ast); | 164 | let type_ref = assoc_type_arg.type_ref().map(|it| TypeRef::from_ast(lower_ctx, it)); |
144 | let bounds = if let Some(l) = assoc_type_arg.type_bound_list() { | 165 | let bounds = if let Some(l) = assoc_type_arg.type_bound_list() { |
145 | l.bounds().map(TypeBound::from_ast).collect() | 166 | l.bounds().map(|it| TypeBound::from_ast(lower_ctx, it)).collect() |
146 | } else { | 167 | } else { |
147 | Vec::new() | 168 | Vec::new() |
148 | }; | 169 | }; |
@@ -159,6 +180,7 @@ pub(super) fn lower_generic_args(node: ast::TypeArgList) -> Option<GenericArgs> | |||
159 | /// Collect `GenericArgs` from the parts of a fn-like path, i.e. `Fn(X, Y) | 180 | /// Collect `GenericArgs` from the parts of a fn-like path, i.e. `Fn(X, Y) |
160 | /// -> Z` (which desugars to `Fn<(X, Y), Output=Z>`). | 181 | /// -> Z` (which desugars to `Fn<(X, Y), Output=Z>`). |
161 | fn lower_generic_args_from_fn_path( | 182 | fn lower_generic_args_from_fn_path( |
183 | ctx: &LowerCtx, | ||
162 | params: Option<ast::ParamList>, | 184 | params: Option<ast::ParamList>, |
163 | ret_type: Option<ast::RetType>, | 185 | ret_type: Option<ast::RetType>, |
164 | ) -> Option<GenericArgs> { | 186 | ) -> Option<GenericArgs> { |
@@ -167,14 +189,14 @@ fn lower_generic_args_from_fn_path( | |||
167 | if let Some(params) = params { | 189 | if let Some(params) = params { |
168 | let mut param_types = Vec::new(); | 190 | let mut param_types = Vec::new(); |
169 | for param in params.params() { | 191 | for param in params.params() { |
170 | let type_ref = TypeRef::from_ast_opt(param.ascribed_type()); | 192 | let type_ref = TypeRef::from_ast_opt(&ctx, param.ascribed_type()); |
171 | param_types.push(type_ref); | 193 | param_types.push(type_ref); |
172 | } | 194 | } |
173 | let arg = GenericArg::Type(TypeRef::Tuple(param_types)); | 195 | let arg = GenericArg::Type(TypeRef::Tuple(param_types)); |
174 | args.push(arg); | 196 | args.push(arg); |
175 | } | 197 | } |
176 | if let Some(ret_type) = ret_type { | 198 | if let Some(ret_type) = ret_type { |
177 | let type_ref = TypeRef::from_ast_opt(ret_type.type_ref()); | 199 | let type_ref = TypeRef::from_ast_opt(&ctx, ret_type.type_ref()); |
178 | bindings.push(AssociatedTypeBinding { | 200 | bindings.push(AssociatedTypeBinding { |
179 | name: name![Output], | 201 | name: name![Output], |
180 | type_ref: Some(type_ref), | 202 | type_ref: Some(type_ref), |
diff --git a/crates/ra_hir_def/src/type_ref.rs b/crates/ra_hir_def/src/type_ref.rs index f308c6bdf..5bdad9efd 100644 --- a/crates/ra_hir_def/src/type_ref.rs +++ b/crates/ra_hir_def/src/type_ref.rs | |||
@@ -3,7 +3,7 @@ | |||
3 | 3 | ||
4 | use ra_syntax::ast::{self, TypeAscriptionOwner, TypeBoundsOwner}; | 4 | use ra_syntax::ast::{self, TypeAscriptionOwner, TypeBoundsOwner}; |
5 | 5 | ||
6 | use crate::path::Path; | 6 | use crate::{body::LowerCtx, path::Path}; |
7 | 7 | ||
8 | #[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)] | 8 | #[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)] |
9 | pub enum Mutability { | 9 | pub enum Mutability { |
@@ -64,30 +64,34 @@ pub enum TypeBound { | |||
64 | 64 | ||
65 | impl TypeRef { | 65 | impl TypeRef { |
66 | /// Converts an `ast::TypeRef` to a `hir::TypeRef`. | 66 | /// Converts an `ast::TypeRef` to a `hir::TypeRef`. |
67 | pub(crate) fn from_ast(node: ast::TypeRef) -> Self { | 67 | pub(crate) fn from_ast(ctx: &LowerCtx, node: ast::TypeRef) -> Self { |
68 | match node { | 68 | match node { |
69 | ast::TypeRef::ParenType(inner) => TypeRef::from_ast_opt(inner.type_ref()), | 69 | ast::TypeRef::ParenType(inner) => TypeRef::from_ast_opt(&ctx, inner.type_ref()), |
70 | ast::TypeRef::TupleType(inner) => { | 70 | ast::TypeRef::TupleType(inner) => { |
71 | TypeRef::Tuple(inner.fields().map(TypeRef::from_ast).collect()) | 71 | TypeRef::Tuple(inner.fields().map(|it| TypeRef::from_ast(ctx, it)).collect()) |
72 | } | 72 | } |
73 | ast::TypeRef::NeverType(..) => TypeRef::Never, | 73 | ast::TypeRef::NeverType(..) => TypeRef::Never, |
74 | ast::TypeRef::PathType(inner) => { | 74 | ast::TypeRef::PathType(inner) => { |
75 | // FIXME: Use `Path::from_src` | 75 | // FIXME: Use `Path::from_src` |
76 | inner.path().and_then(Path::from_ast).map(TypeRef::Path).unwrap_or(TypeRef::Error) | 76 | inner |
77 | .path() | ||
78 | .and_then(|it| ctx.lower_path(it)) | ||
79 | .map(TypeRef::Path) | ||
80 | .unwrap_or(TypeRef::Error) | ||
77 | } | 81 | } |
78 | ast::TypeRef::PointerType(inner) => { | 82 | ast::TypeRef::PointerType(inner) => { |
79 | let inner_ty = TypeRef::from_ast_opt(inner.type_ref()); | 83 | let inner_ty = TypeRef::from_ast_opt(&ctx, inner.type_ref()); |
80 | let mutability = Mutability::from_mutable(inner.mut_token().is_some()); | 84 | let mutability = Mutability::from_mutable(inner.mut_token().is_some()); |
81 | TypeRef::RawPtr(Box::new(inner_ty), mutability) | 85 | TypeRef::RawPtr(Box::new(inner_ty), mutability) |
82 | } | 86 | } |
83 | ast::TypeRef::ArrayType(inner) => { | 87 | ast::TypeRef::ArrayType(inner) => { |
84 | TypeRef::Array(Box::new(TypeRef::from_ast_opt(inner.type_ref()))) | 88 | TypeRef::Array(Box::new(TypeRef::from_ast_opt(&ctx, inner.type_ref()))) |
85 | } | 89 | } |
86 | ast::TypeRef::SliceType(inner) => { | 90 | ast::TypeRef::SliceType(inner) => { |
87 | TypeRef::Slice(Box::new(TypeRef::from_ast_opt(inner.type_ref()))) | 91 | TypeRef::Slice(Box::new(TypeRef::from_ast_opt(&ctx, inner.type_ref()))) |
88 | } | 92 | } |
89 | ast::TypeRef::ReferenceType(inner) => { | 93 | ast::TypeRef::ReferenceType(inner) => { |
90 | let inner_ty = TypeRef::from_ast_opt(inner.type_ref()); | 94 | let inner_ty = TypeRef::from_ast_opt(&ctx, inner.type_ref()); |
91 | let mutability = Mutability::from_mutable(inner.mut_token().is_some()); | 95 | let mutability = Mutability::from_mutable(inner.mut_token().is_some()); |
92 | TypeRef::Reference(Box::new(inner_ty), mutability) | 96 | TypeRef::Reference(Box::new(inner_ty), mutability) |
93 | } | 97 | } |
@@ -96,10 +100,13 @@ impl TypeRef { | |||
96 | let ret_ty = inner | 100 | let ret_ty = inner |
97 | .ret_type() | 101 | .ret_type() |
98 | .and_then(|rt| rt.type_ref()) | 102 | .and_then(|rt| rt.type_ref()) |
99 | .map(TypeRef::from_ast) | 103 | .map(|it| TypeRef::from_ast(ctx, it)) |
100 | .unwrap_or_else(|| TypeRef::Tuple(Vec::new())); | 104 | .unwrap_or_else(|| TypeRef::Tuple(Vec::new())); |
101 | let mut params = if let Some(pl) = inner.param_list() { | 105 | let mut params = if let Some(pl) = inner.param_list() { |
102 | pl.params().map(|p| p.ascribed_type()).map(TypeRef::from_ast_opt).collect() | 106 | pl.params() |
107 | .map(|p| p.ascribed_type()) | ||
108 | .map(|it| TypeRef::from_ast_opt(&ctx, it)) | ||
109 | .collect() | ||
103 | } else { | 110 | } else { |
104 | Vec::new() | 111 | Vec::new() |
105 | }; | 112 | }; |
@@ -107,19 +114,19 @@ impl TypeRef { | |||
107 | TypeRef::Fn(params) | 114 | TypeRef::Fn(params) |
108 | } | 115 | } |
109 | // for types are close enough for our purposes to the inner type for now... | 116 | // for types are close enough for our purposes to the inner type for now... |
110 | ast::TypeRef::ForType(inner) => TypeRef::from_ast_opt(inner.type_ref()), | 117 | ast::TypeRef::ForType(inner) => TypeRef::from_ast_opt(&ctx, inner.type_ref()), |
111 | ast::TypeRef::ImplTraitType(inner) => { | 118 | ast::TypeRef::ImplTraitType(inner) => { |
112 | TypeRef::ImplTrait(type_bounds_from_ast(inner.type_bound_list())) | 119 | TypeRef::ImplTrait(type_bounds_from_ast(ctx, inner.type_bound_list())) |
113 | } | 120 | } |
114 | ast::TypeRef::DynTraitType(inner) => { | 121 | ast::TypeRef::DynTraitType(inner) => { |
115 | TypeRef::DynTrait(type_bounds_from_ast(inner.type_bound_list())) | 122 | TypeRef::DynTrait(type_bounds_from_ast(ctx, inner.type_bound_list())) |
116 | } | 123 | } |
117 | } | 124 | } |
118 | } | 125 | } |
119 | 126 | ||
120 | pub(crate) fn from_ast_opt(node: Option<ast::TypeRef>) -> Self { | 127 | pub(crate) fn from_ast_opt(ctx: &LowerCtx, node: Option<ast::TypeRef>) -> Self { |
121 | if let Some(node) = node { | 128 | if let Some(node) = node { |
122 | TypeRef::from_ast(node) | 129 | TypeRef::from_ast(ctx, node) |
123 | } else { | 130 | } else { |
124 | TypeRef::Error | 131 | TypeRef::Error |
125 | } | 132 | } |
@@ -180,24 +187,27 @@ impl TypeRef { | |||
180 | } | 187 | } |
181 | } | 188 | } |
182 | 189 | ||
183 | pub(crate) fn type_bounds_from_ast(type_bounds_opt: Option<ast::TypeBoundList>) -> Vec<TypeBound> { | 190 | pub(crate) fn type_bounds_from_ast( |
191 | lower_ctx: &LowerCtx, | ||
192 | type_bounds_opt: Option<ast::TypeBoundList>, | ||
193 | ) -> Vec<TypeBound> { | ||
184 | if let Some(type_bounds) = type_bounds_opt { | 194 | if let Some(type_bounds) = type_bounds_opt { |
185 | type_bounds.bounds().map(TypeBound::from_ast).collect() | 195 | type_bounds.bounds().map(|it| TypeBound::from_ast(lower_ctx, it)).collect() |
186 | } else { | 196 | } else { |
187 | vec![] | 197 | vec![] |
188 | } | 198 | } |
189 | } | 199 | } |
190 | 200 | ||
191 | impl TypeBound { | 201 | impl TypeBound { |
192 | pub(crate) fn from_ast(node: ast::TypeBound) -> Self { | 202 | pub(crate) fn from_ast(ctx: &LowerCtx, node: ast::TypeBound) -> Self { |
193 | match node.kind() { | 203 | match node.kind() { |
194 | ast::TypeBoundKind::PathType(path_type) => { | 204 | ast::TypeBoundKind::PathType(path_type) => { |
195 | let path = match path_type.path() { | 205 | let path = match path_type.path() { |
196 | Some(p) => p, | 206 | Some(p) => p, |
197 | None => return TypeBound::Error, | 207 | None => return TypeBound::Error, |
198 | }; | 208 | }; |
199 | // FIXME: Use `Path::from_src` | 209 | |
200 | let path = match Path::from_ast(path) { | 210 | let path = match ctx.lower_path(path) { |
201 | Some(p) => p, | 211 | Some(p) => p, |
202 | None => return TypeBound::Error, | 212 | None => return TypeBound::Error, |
203 | }; | 213 | }; |
diff --git a/crates/ra_hir_expand/src/builtin_derive.rs b/crates/ra_hir_expand/src/builtin_derive.rs index e60f879a3..1dc9cac66 100644 --- a/crates/ra_hir_expand/src/builtin_derive.rs +++ b/crates/ra_hir_expand/src/builtin_derive.rs | |||
@@ -38,7 +38,7 @@ macro_rules! register_builtin { | |||
38 | _ => return None, | 38 | _ => return None, |
39 | }; | 39 | }; |
40 | 40 | ||
41 | Some(MacroDefId { krate: None, ast_id: None, kind: MacroDefKind::BuiltInDerive(kind) }) | 41 | Some(MacroDefId { krate: None, ast_id: None, kind: MacroDefKind::BuiltInDerive(kind), local_inner: false }) |
42 | } | 42 | } |
43 | }; | 43 | }; |
44 | } | 44 | } |
diff --git a/crates/ra_hir_expand/src/builtin_macro.rs b/crates/ra_hir_expand/src/builtin_macro.rs index e0fef613d..d8b3d342c 100644 --- a/crates/ra_hir_expand/src/builtin_macro.rs +++ b/crates/ra_hir_expand/src/builtin_macro.rs | |||
@@ -73,11 +73,13 @@ pub fn find_builtin_macro( | |||
73 | krate: Some(krate), | 73 | krate: Some(krate), |
74 | ast_id: Some(ast_id), | 74 | ast_id: Some(ast_id), |
75 | kind: MacroDefKind::BuiltIn(kind), | 75 | kind: MacroDefKind::BuiltIn(kind), |
76 | local_inner: false, | ||
76 | }), | 77 | }), |
77 | Either::Right(kind) => Some(MacroDefId { | 78 | Either::Right(kind) => Some(MacroDefId { |
78 | krate: Some(krate), | 79 | krate: Some(krate), |
79 | ast_id: Some(ast_id), | 80 | ast_id: Some(ast_id), |
80 | kind: MacroDefKind::BuiltInEager(kind), | 81 | kind: MacroDefKind::BuiltInEager(kind), |
82 | local_inner: false, | ||
81 | }), | 83 | }), |
82 | } | 84 | } |
83 | } | 85 | } |
@@ -406,6 +408,7 @@ mod tests { | |||
406 | krate: Some(CrateId(0)), | 408 | krate: Some(CrateId(0)), |
407 | ast_id: Some(AstId::new(file_id.into(), ast_id_map.ast_id(¯o_calls[0]))), | 409 | ast_id: Some(AstId::new(file_id.into(), ast_id_map.ast_id(¯o_calls[0]))), |
408 | kind: MacroDefKind::BuiltIn(expander), | 410 | kind: MacroDefKind::BuiltIn(expander), |
411 | local_inner: false, | ||
409 | }; | 412 | }; |
410 | 413 | ||
411 | let loc = MacroCallLoc { | 414 | let loc = MacroCallLoc { |
@@ -425,6 +428,7 @@ mod tests { | |||
425 | krate: Some(CrateId(0)), | 428 | krate: Some(CrateId(0)), |
426 | ast_id: Some(AstId::new(file_id.into(), ast_id_map.ast_id(¯o_calls[0]))), | 429 | ast_id: Some(AstId::new(file_id.into(), ast_id_map.ast_id(¯o_calls[0]))), |
427 | kind: MacroDefKind::BuiltInEager(expander), | 430 | kind: MacroDefKind::BuiltInEager(expander), |
431 | local_inner: false, | ||
428 | }; | 432 | }; |
429 | 433 | ||
430 | let args = macro_calls[1].token_tree().unwrap(); | 434 | let args = macro_calls[1].token_tree().unwrap(); |
diff --git a/crates/ra_hir_expand/src/db.rs b/crates/ra_hir_expand/src/db.rs index 047452306..4c12d0a15 100644 --- a/crates/ra_hir_expand/src/db.rs +++ b/crates/ra_hir_expand/src/db.rs | |||
@@ -330,7 +330,7 @@ fn to_fragment_kind(db: &dyn AstDatabase, id: MacroCallId) -> FragmentKind { | |||
330 | FragmentKind::Expr | 330 | FragmentKind::Expr |
331 | } | 331 | } |
332 | // FIXME: Expand to statements in appropriate positions; HIR lowering needs to handle that | 332 | // FIXME: Expand to statements in appropriate positions; HIR lowering needs to handle that |
333 | EXPR_STMT | BLOCK => FragmentKind::Expr, | 333 | EXPR_STMT | BLOCK_EXPR => FragmentKind::Expr, |
334 | ARG_LIST => FragmentKind::Expr, | 334 | ARG_LIST => FragmentKind::Expr, |
335 | TRY_EXPR => FragmentKind::Expr, | 335 | TRY_EXPR => FragmentKind::Expr, |
336 | TUPLE_EXPR => FragmentKind::Expr, | 336 | TUPLE_EXPR => FragmentKind::Expr, |
@@ -342,7 +342,6 @@ fn to_fragment_kind(db: &dyn AstDatabase, id: MacroCallId) -> FragmentKind { | |||
342 | CONDITION => FragmentKind::Expr, | 342 | CONDITION => FragmentKind::Expr, |
343 | BREAK_EXPR => FragmentKind::Expr, | 343 | BREAK_EXPR => FragmentKind::Expr, |
344 | RETURN_EXPR => FragmentKind::Expr, | 344 | RETURN_EXPR => FragmentKind::Expr, |
345 | BLOCK_EXPR => FragmentKind::Expr, | ||
346 | MATCH_EXPR => FragmentKind::Expr, | 345 | MATCH_EXPR => FragmentKind::Expr, |
347 | MATCH_ARM => FragmentKind::Expr, | 346 | MATCH_ARM => FragmentKind::Expr, |
348 | MATCH_GUARD => FragmentKind::Expr, | 347 | MATCH_GUARD => FragmentKind::Expr, |
diff --git a/crates/ra_hir_expand/src/hygiene.rs b/crates/ra_hir_expand/src/hygiene.rs index 0b41d0e95..6b482a60c 100644 --- a/crates/ra_hir_expand/src/hygiene.rs +++ b/crates/ra_hir_expand/src/hygiene.rs | |||
@@ -12,35 +12,38 @@ use crate::{ | |||
12 | HirFileId, HirFileIdRepr, MacroCallId, MacroDefKind, | 12 | HirFileId, HirFileIdRepr, MacroCallId, MacroDefKind, |
13 | }; | 13 | }; |
14 | 14 | ||
15 | #[derive(Debug)] | 15 | #[derive(Clone, Debug)] |
16 | pub struct Hygiene { | 16 | pub struct Hygiene { |
17 | // This is what `$crate` expands to | 17 | // This is what `$crate` expands to |
18 | def_crate: Option<CrateId>, | 18 | def_crate: Option<CrateId>, |
19 | |||
20 | // Indiciate this is a local inner macro | ||
21 | local_inner: bool, | ||
19 | } | 22 | } |
20 | 23 | ||
21 | impl Hygiene { | 24 | impl Hygiene { |
22 | pub fn new(db: &dyn AstDatabase, file_id: HirFileId) -> Hygiene { | 25 | pub fn new(db: &dyn AstDatabase, file_id: HirFileId) -> Hygiene { |
23 | let def_crate = match file_id.0 { | 26 | let (def_crate, local_inner) = match file_id.0 { |
24 | HirFileIdRepr::FileId(_) => None, | 27 | HirFileIdRepr::FileId(_) => (None, false), |
25 | HirFileIdRepr::MacroFile(macro_file) => match macro_file.macro_call_id { | 28 | HirFileIdRepr::MacroFile(macro_file) => match macro_file.macro_call_id { |
26 | MacroCallId::LazyMacro(id) => { | 29 | MacroCallId::LazyMacro(id) => { |
27 | let loc = db.lookup_intern_macro(id); | 30 | let loc = db.lookup_intern_macro(id); |
28 | match loc.def.kind { | 31 | match loc.def.kind { |
29 | MacroDefKind::Declarative => loc.def.krate, | 32 | MacroDefKind::Declarative => (loc.def.krate, loc.def.local_inner), |
30 | MacroDefKind::BuiltIn(_) => None, | 33 | MacroDefKind::BuiltIn(_) => (None, false), |
31 | MacroDefKind::BuiltInDerive(_) => None, | 34 | MacroDefKind::BuiltInDerive(_) => (None, false), |
32 | MacroDefKind::BuiltInEager(_) => None, | 35 | MacroDefKind::BuiltInEager(_) => (None, false), |
33 | MacroDefKind::CustomDerive(_) => None, | 36 | MacroDefKind::CustomDerive(_) => (None, false), |
34 | } | 37 | } |
35 | } | 38 | } |
36 | MacroCallId::EagerMacro(_id) => None, | 39 | MacroCallId::EagerMacro(_id) => (None, false), |
37 | }, | 40 | }, |
38 | }; | 41 | }; |
39 | Hygiene { def_crate } | 42 | Hygiene { def_crate, local_inner } |
40 | } | 43 | } |
41 | 44 | ||
42 | pub fn new_unhygienic() -> Hygiene { | 45 | pub fn new_unhygienic() -> Hygiene { |
43 | Hygiene { def_crate: None } | 46 | Hygiene { def_crate: None, local_inner: false } |
44 | } | 47 | } |
45 | 48 | ||
46 | // FIXME: this should just return name | 49 | // FIXME: this should just return name |
@@ -52,4 +55,12 @@ impl Hygiene { | |||
52 | } | 55 | } |
53 | Either::Left(name_ref.as_name()) | 56 | Either::Left(name_ref.as_name()) |
54 | } | 57 | } |
58 | |||
59 | pub fn local_inner_macros(&self) -> Option<CrateId> { | ||
60 | if self.local_inner { | ||
61 | self.def_crate | ||
62 | } else { | ||
63 | None | ||
64 | } | ||
65 | } | ||
55 | } | 66 | } |
diff --git a/crates/ra_hir_expand/src/lib.rs b/crates/ra_hir_expand/src/lib.rs index 754a0f005..f440c073b 100644 --- a/crates/ra_hir_expand/src/lib.rs +++ b/crates/ra_hir_expand/src/lib.rs | |||
@@ -204,6 +204,8 @@ pub struct MacroDefId { | |||
204 | pub krate: Option<CrateId>, | 204 | pub krate: Option<CrateId>, |
205 | pub ast_id: Option<AstId<ast::MacroCall>>, | 205 | pub ast_id: Option<AstId<ast::MacroCall>>, |
206 | pub kind: MacroDefKind, | 206 | pub kind: MacroDefKind, |
207 | |||
208 | pub local_inner: bool, | ||
207 | } | 209 | } |
208 | 210 | ||
209 | impl MacroDefId { | 211 | impl MacroDefId { |
diff --git a/crates/ra_hir_ty/Cargo.toml b/crates/ra_hir_ty/Cargo.toml index 04d3cd6a2..65db6d1b0 100644 --- a/crates/ra_hir_ty/Cargo.toml +++ b/crates/ra_hir_ty/Cargo.toml | |||
@@ -11,7 +11,7 @@ doctest = false | |||
11 | itertools = "0.9.0" | 11 | itertools = "0.9.0" |
12 | arrayvec = "0.5.1" | 12 | arrayvec = "0.5.1" |
13 | smallvec = "1.2.0" | 13 | smallvec = "1.2.0" |
14 | ena = "0.13.1" | 14 | ena = "0.14.0" |
15 | log = "0.4.8" | 15 | log = "0.4.8" |
16 | rustc-hash = "1.1.0" | 16 | rustc-hash = "1.1.0" |
17 | 17 | ||
diff --git a/crates/ra_hir_ty/src/lib.rs b/crates/ra_hir_ty/src/lib.rs index a8ef32ec5..a6f56c661 100644 --- a/crates/ra_hir_ty/src/lib.rs +++ b/crates/ra_hir_ty/src/lib.rs | |||
@@ -66,7 +66,8 @@ pub use autoderef::autoderef; | |||
66 | pub use infer::{InferTy, InferenceResult}; | 66 | pub use infer::{InferTy, InferenceResult}; |
67 | pub use lower::CallableDef; | 67 | pub use lower::CallableDef; |
68 | pub use lower::{ | 68 | pub use lower::{ |
69 | callable_item_sig, ImplTraitLoweringMode, TyDefId, TyLoweringContext, ValueTyDefId, | 69 | associated_type_shorthand_candidates, callable_item_sig, ImplTraitLoweringMode, TyDefId, |
70 | TyLoweringContext, ValueTyDefId, | ||
70 | }; | 71 | }; |
71 | pub use traits::{InEnvironment, Obligation, ProjectionPredicate, TraitEnvironment}; | 72 | pub use traits::{InEnvironment, Obligation, ProjectionPredicate, TraitEnvironment}; |
72 | 73 | ||
diff --git a/crates/ra_hir_ty/src/lower.rs b/crates/ra_hir_ty/src/lower.rs index a6f893037..9ad6dbe07 100644 --- a/crates/ra_hir_ty/src/lower.rs +++ b/crates/ra_hir_ty/src/lower.rs | |||
@@ -17,9 +17,9 @@ use hir_def::{ | |||
17 | path::{GenericArg, Path, PathSegment, PathSegments}, | 17 | path::{GenericArg, Path, PathSegment, PathSegments}, |
18 | resolver::{HasResolver, Resolver, TypeNs}, | 18 | resolver::{HasResolver, Resolver, TypeNs}, |
19 | type_ref::{TypeBound, TypeRef}, | 19 | type_ref::{TypeBound, TypeRef}, |
20 | AdtId, AssocContainerId, ConstId, EnumId, EnumVariantId, FunctionId, GenericDefId, HasModule, | 20 | AdtId, AssocContainerId, AssocItemId, ConstId, EnumId, EnumVariantId, FunctionId, GenericDefId, |
21 | ImplId, LocalFieldId, Lookup, StaticId, StructId, TraitId, TypeAliasId, TypeParamId, UnionId, | 21 | HasModule, ImplId, LocalFieldId, Lookup, StaticId, StructId, TraitId, TypeAliasId, TypeParamId, |
22 | VariantId, | 22 | UnionId, VariantId, |
23 | }; | 23 | }; |
24 | use ra_arena::map::ArenaMap; | 24 | use ra_arena::map::ArenaMap; |
25 | use ra_db::CrateId; | 25 | use ra_db::CrateId; |
@@ -34,6 +34,7 @@ use crate::{ | |||
34 | Binders, BoundVar, DebruijnIndex, FnSig, GenericPredicate, PolyFnSig, ProjectionPredicate, | 34 | Binders, BoundVar, DebruijnIndex, FnSig, GenericPredicate, PolyFnSig, ProjectionPredicate, |
35 | ProjectionTy, Substs, TraitEnvironment, TraitRef, Ty, TypeCtor, TypeWalk, | 35 | ProjectionTy, Substs, TraitEnvironment, TraitRef, Ty, TypeCtor, TypeWalk, |
36 | }; | 36 | }; |
37 | use hir_expand::name::Name; | ||
37 | 38 | ||
38 | #[derive(Debug)] | 39 | #[derive(Debug)] |
39 | pub struct TyLoweringContext<'a> { | 40 | pub struct TyLoweringContext<'a> { |
@@ -383,61 +384,38 @@ impl Ty { | |||
383 | res: Option<TypeNs>, | 384 | res: Option<TypeNs>, |
384 | segment: PathSegment<'_>, | 385 | segment: PathSegment<'_>, |
385 | ) -> Ty { | 386 | ) -> Ty { |
386 | let traits_from_env: Vec<_> = match res { | 387 | if let Some(res) = res { |
387 | Some(TypeNs::SelfType(impl_id)) => match ctx.db.impl_trait(impl_id) { | 388 | let ty = |
388 | None => return Ty::Unknown, | 389 | associated_type_shorthand_candidates(ctx.db, res, move |name, t, associated_ty| { |
389 | Some(trait_ref) => vec![trait_ref.value], | 390 | if name == segment.name { |
390 | }, | 391 | let substs = match ctx.type_param_mode { |
391 | Some(TypeNs::GenericParam(param_id)) => { | 392 | TypeParamLoweringMode::Placeholder => { |
392 | let predicates = ctx.db.generic_predicates_for_param(param_id); | 393 | // if we're lowering to placeholders, we have to put |
393 | let mut traits_: Vec<_> = predicates | 394 | // them in now |
394 | .iter() | 395 | let s = Substs::type_params( |
395 | .filter_map(|pred| match &pred.value { | 396 | ctx.db, |
396 | GenericPredicate::Implemented(tr) => Some(tr.clone()), | 397 | ctx.resolver.generic_def().expect( |
397 | _ => None, | 398 | "there should be generics if there's a generic param", |
398 | }) | 399 | ), |
399 | .collect(); | 400 | ); |
400 | // Handle `Self::Type` referring to own associated type in trait definitions | 401 | t.substs.clone().subst_bound_vars(&s) |
401 | if let GenericDefId::TraitId(trait_id) = param_id.parent { | 402 | } |
402 | let generics = generics(ctx.db.upcast(), trait_id.into()); | 403 | TypeParamLoweringMode::Variable => t.substs.clone(), |
403 | if generics.params.types[param_id.local_id].provenance | ||
404 | == TypeParamProvenance::TraitSelf | ||
405 | { | ||
406 | let trait_ref = TraitRef { | ||
407 | trait_: trait_id, | ||
408 | substs: Substs::bound_vars(&generics, DebruijnIndex::INNERMOST), | ||
409 | }; | 404 | }; |
410 | traits_.push(trait_ref); | 405 | // FIXME handle type parameters on the segment |
406 | return Some(Ty::Projection(ProjectionTy { | ||
407 | associated_ty, | ||
408 | parameters: substs, | ||
409 | })); | ||
411 | } | 410 | } |
412 | } | 411 | |
413 | traits_ | 412 | None |
414 | } | 413 | }); |
415 | _ => return Ty::Unknown, | 414 | |
416 | }; | 415 | ty.unwrap_or(Ty::Unknown) |
417 | let traits = traits_from_env.into_iter().flat_map(|t| all_super_trait_refs(ctx.db, t)); | 416 | } else { |
418 | for t in traits { | 417 | Ty::Unknown |
419 | if let Some(associated_ty) = | ||
420 | ctx.db.trait_data(t.trait_).associated_type_by_name(&segment.name) | ||
421 | { | ||
422 | let substs = match ctx.type_param_mode { | ||
423 | TypeParamLoweringMode::Placeholder => { | ||
424 | // if we're lowering to placeholders, we have to put | ||
425 | // them in now | ||
426 | let s = Substs::type_params( | ||
427 | ctx.db, | ||
428 | ctx.resolver | ||
429 | .generic_def() | ||
430 | .expect("there should be generics if there's a generic param"), | ||
431 | ); | ||
432 | t.substs.subst_bound_vars(&s) | ||
433 | } | ||
434 | TypeParamLoweringMode::Variable => t.substs, | ||
435 | }; | ||
436 | // FIXME handle (forbid) type parameters on the segment | ||
437 | return Ty::Projection(ProjectionTy { associated_ty, parameters: substs }); | ||
438 | } | ||
439 | } | 418 | } |
440 | Ty::Unknown | ||
441 | } | 419 | } |
442 | 420 | ||
443 | fn from_hir_path_inner( | 421 | fn from_hir_path_inner( |
@@ -694,6 +672,61 @@ pub fn callable_item_sig(db: &dyn HirDatabase, def: CallableDef) -> PolyFnSig { | |||
694 | } | 672 | } |
695 | } | 673 | } |
696 | 674 | ||
675 | pub fn associated_type_shorthand_candidates<R>( | ||
676 | db: &dyn HirDatabase, | ||
677 | res: TypeNs, | ||
678 | mut cb: impl FnMut(&Name, &TraitRef, TypeAliasId) -> Option<R>, | ||
679 | ) -> Option<R> { | ||
680 | let traits_from_env: Vec<_> = match res { | ||
681 | TypeNs::SelfType(impl_id) => match db.impl_trait(impl_id) { | ||
682 | None => vec![], | ||
683 | Some(trait_ref) => vec![trait_ref.value], | ||
684 | }, | ||
685 | TypeNs::GenericParam(param_id) => { | ||
686 | let predicates = db.generic_predicates_for_param(param_id); | ||
687 | let mut traits_: Vec<_> = predicates | ||
688 | .iter() | ||
689 | .filter_map(|pred| match &pred.value { | ||
690 | GenericPredicate::Implemented(tr) => Some(tr.clone()), | ||
691 | _ => None, | ||
692 | }) | ||
693 | .collect(); | ||
694 | // Handle `Self::Type` referring to own associated type in trait definitions | ||
695 | if let GenericDefId::TraitId(trait_id) = param_id.parent { | ||
696 | let generics = generics(db.upcast(), trait_id.into()); | ||
697 | if generics.params.types[param_id.local_id].provenance | ||
698 | == TypeParamProvenance::TraitSelf | ||
699 | { | ||
700 | let trait_ref = TraitRef { | ||
701 | trait_: trait_id, | ||
702 | substs: Substs::bound_vars(&generics, DebruijnIndex::INNERMOST), | ||
703 | }; | ||
704 | traits_.push(trait_ref); | ||
705 | } | ||
706 | } | ||
707 | traits_ | ||
708 | } | ||
709 | _ => vec![], | ||
710 | }; | ||
711 | |||
712 | for t in traits_from_env.into_iter().flat_map(move |t| all_super_trait_refs(db, t)) { | ||
713 | let data = db.trait_data(t.trait_); | ||
714 | |||
715 | for (name, assoc_id) in &data.items { | ||
716 | match assoc_id { | ||
717 | AssocItemId::TypeAliasId(alias) => { | ||
718 | if let Some(result) = cb(name, &t, *alias) { | ||
719 | return Some(result); | ||
720 | } | ||
721 | } | ||
722 | AssocItemId::FunctionId(_) | AssocItemId::ConstId(_) => {} | ||
723 | } | ||
724 | } | ||
725 | } | ||
726 | |||
727 | None | ||
728 | } | ||
729 | |||
697 | /// Build the type of all specific fields of a struct or enum variant. | 730 | /// Build the type of all specific fields of a struct or enum variant. |
698 | pub(crate) fn field_types_query( | 731 | pub(crate) fn field_types_query( |
699 | db: &dyn HirDatabase, | 732 | db: &dyn HirDatabase, |
diff --git a/crates/ra_hir_ty/src/tests/macros.rs b/crates/ra_hir_ty/src/tests/macros.rs index 5ddecbdc6..29e38a06c 100644 --- a/crates/ra_hir_ty/src/tests/macros.rs +++ b/crates/ra_hir_ty/src/tests/macros.rs | |||
@@ -339,6 +339,46 @@ pub fn baz() -> usize { 31usize } | |||
339 | } | 339 | } |
340 | 340 | ||
341 | #[test] | 341 | #[test] |
342 | fn infer_macro_with_dollar_crate_is_correct_in_trait_associate_type() { | ||
343 | let (db, pos) = TestDB::with_position( | ||
344 | r#" | ||
345 | //- /main.rs crate:main deps:foo | ||
346 | use foo::Trait; | ||
347 | |||
348 | fn test() { | ||
349 | let msg = foo::Message(foo::MessageRef); | ||
350 | let r = msg.deref(); | ||
351 | r<|>; | ||
352 | } | ||
353 | |||
354 | //- /lib.rs crate:foo | ||
355 | pub struct MessageRef; | ||
356 | pub struct Message(MessageRef); | ||
357 | |||
358 | pub trait Trait { | ||
359 | type Target; | ||
360 | fn deref(&self) -> &Self::Target; | ||
361 | } | ||
362 | |||
363 | #[macro_export] | ||
364 | macro_rules! expand { | ||
365 | () => { | ||
366 | impl Trait for Message { | ||
367 | type Target = $crate::MessageRef; | ||
368 | fn deref(&self) -> &Self::Target { | ||
369 | &self.0 | ||
370 | } | ||
371 | } | ||
372 | } | ||
373 | } | ||
374 | |||
375 | expand!(); | ||
376 | "#, | ||
377 | ); | ||
378 | assert_eq!("&MessageRef", type_at_pos(&db, pos)); | ||
379 | } | ||
380 | |||
381 | #[test] | ||
342 | fn infer_type_value_non_legacy_macro_use_as() { | 382 | fn infer_type_value_non_legacy_macro_use_as() { |
343 | assert_snapshot!( | 383 | assert_snapshot!( |
344 | infer(r#" | 384 | infer(r#" |
@@ -388,6 +428,32 @@ fn main() { | |||
388 | } | 428 | } |
389 | 429 | ||
390 | #[test] | 430 | #[test] |
431 | fn infer_local_inner_macros() { | ||
432 | let (db, pos) = TestDB::with_position( | ||
433 | r#" | ||
434 | //- /main.rs crate:main deps:foo | ||
435 | fn test() { | ||
436 | let x = foo::foo!(1); | ||
437 | x<|>; | ||
438 | } | ||
439 | |||
440 | //- /lib.rs crate:foo | ||
441 | #[macro_export(local_inner_macros)] | ||
442 | macro_rules! foo { | ||
443 | (1) => { bar!() }; | ||
444 | } | ||
445 | |||
446 | #[macro_export] | ||
447 | macro_rules! bar { | ||
448 | () => { 42 } | ||
449 | } | ||
450 | |||
451 | "#, | ||
452 | ); | ||
453 | assert_eq!("i32", type_at_pos(&db, pos)); | ||
454 | } | ||
455 | |||
456 | #[test] | ||
391 | fn infer_builtin_macros_line() { | 457 | fn infer_builtin_macros_line() { |
392 | assert_snapshot!( | 458 | assert_snapshot!( |
393 | infer(r#" | 459 | infer(r#" |
diff --git a/crates/ra_hir_ty/src/tests/simple.rs b/crates/ra_hir_ty/src/tests/simple.rs index 56abc65b8..3d3088965 100644 --- a/crates/ra_hir_ty/src/tests/simple.rs +++ b/crates/ra_hir_ty/src/tests/simple.rs | |||
@@ -1755,3 +1755,35 @@ fn main() { | |||
1755 | "### | 1755 | "### |
1756 | ); | 1756 | ); |
1757 | } | 1757 | } |
1758 | |||
1759 | #[test] | ||
1760 | fn effects_smoke_test() { | ||
1761 | assert_snapshot!( | ||
1762 | infer(r#" | ||
1763 | fn main() { | ||
1764 | let x = unsafe { 92 }; | ||
1765 | let y = async { async { () }.await }; | ||
1766 | let z = try { () }; | ||
1767 | let t = 'a: { 92 }; | ||
1768 | } | ||
1769 | "#), | ||
1770 | @r###" | ||
1771 | 11..131 '{ ...2 }; }': () | ||
1772 | 21..22 'x': i32 | ||
1773 | 32..38 '{ 92 }': i32 | ||
1774 | 34..36 '92': i32 | ||
1775 | 48..49 'y': {unknown} | ||
1776 | 58..80 '{ asyn...wait }': {unknown} | ||
1777 | 60..78 'async ....await': {unknown} | ||
1778 | 66..72 '{ () }': () | ||
1779 | 68..70 '()': () | ||
1780 | 90..91 'z': {unknown} | ||
1781 | 94..104 'try { () }': {unknown} | ||
1782 | 98..104 '{ () }': () | ||
1783 | 100..102 '()': () | ||
1784 | 114..115 't': i32 | ||
1785 | 122..128 '{ 92 }': i32 | ||
1786 | 124..126 '92': i32 | ||
1787 | "### | ||
1788 | ) | ||
1789 | } | ||
diff --git a/crates/ra_ide/src/completion/complete_dot.rs b/crates/ra_ide/src/completion/complete_dot.rs index 814354ffa..05f825c6f 100644 --- a/crates/ra_ide/src/completion/complete_dot.rs +++ b/crates/ra_ide/src/completion/complete_dot.rs | |||
@@ -250,6 +250,44 @@ mod tests { | |||
250 | } | 250 | } |
251 | 251 | ||
252 | #[test] | 252 | #[test] |
253 | fn test_union_field_completion() { | ||
254 | assert_debug_snapshot!( | ||
255 | do_ref_completion( | ||
256 | r" | ||
257 | union Un { | ||
258 | field: u8, | ||
259 | other: u16, | ||
260 | } | ||
261 | |||
262 | fn foo(u: Un) { | ||
263 | u.<|> | ||
264 | } | ||
265 | ", | ||
266 | ), | ||
267 | @r###" | ||
268 | [ | ||
269 | CompletionItem { | ||
270 | label: "field", | ||
271 | source_range: 140..140, | ||
272 | delete: 140..140, | ||
273 | insert: "field", | ||
274 | kind: Field, | ||
275 | detail: "u8", | ||
276 | }, | ||
277 | CompletionItem { | ||
278 | label: "other", | ||
279 | source_range: 140..140, | ||
280 | delete: 140..140, | ||
281 | insert: "other", | ||
282 | kind: Field, | ||
283 | detail: "u16", | ||
284 | }, | ||
285 | ] | ||
286 | "### | ||
287 | ); | ||
288 | } | ||
289 | |||
290 | #[test] | ||
253 | fn test_method_completion() { | 291 | fn test_method_completion() { |
254 | assert_debug_snapshot!( | 292 | assert_debug_snapshot!( |
255 | do_ref_completion( | 293 | do_ref_completion( |
diff --git a/crates/ra_ide/src/completion/complete_qualified_path.rs b/crates/ra_ide/src/completion/complete_qualified_path.rs index dd10f74e6..aa56a5cd8 100644 --- a/crates/ra_ide/src/completion/complete_qualified_path.rs +++ b/crates/ra_ide/src/completion/complete_qualified_path.rs | |||
@@ -5,19 +5,29 @@ use ra_syntax::AstNode; | |||
5 | use test_utils::tested_by; | 5 | use test_utils::tested_by; |
6 | 6 | ||
7 | use crate::completion::{CompletionContext, Completions}; | 7 | use crate::completion::{CompletionContext, Completions}; |
8 | use rustc_hash::FxHashSet; | ||
8 | 9 | ||
9 | pub(super) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionContext) { | 10 | pub(super) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionContext) { |
10 | let path = match &ctx.path_prefix { | 11 | let path = match &ctx.path_prefix { |
11 | Some(path) => path.clone(), | 12 | Some(path) => path.clone(), |
12 | _ => return, | 13 | _ => return, |
13 | }; | 14 | }; |
14 | let def = match ctx.scope().resolve_hir_path(&path) { | 15 | let scope = ctx.scope(); |
15 | Some(PathResolution::Def(def)) => def, | 16 | let context_module = scope.module(); |
16 | _ => return, | 17 | |
18 | let res = match scope.resolve_hir_path(&path) { | ||
19 | Some(res) => res, | ||
20 | None => return, | ||
17 | }; | 21 | }; |
18 | let context_module = ctx.scope().module(); | 22 | |
19 | match def { | 23 | // Add associated types on type parameters and `Self`. |
20 | hir::ModuleDef::Module(module) => { | 24 | res.assoc_type_shorthand_candidates(ctx.db, |alias| { |
25 | acc.add_type_alias(ctx, alias); | ||
26 | None::<()> | ||
27 | }); | ||
28 | |||
29 | match res { | ||
30 | PathResolution::Def(hir::ModuleDef::Module(module)) => { | ||
21 | let module_scope = module.scope(ctx.db, context_module); | 31 | let module_scope = module.scope(ctx.db, context_module); |
22 | for (name, def) in module_scope { | 32 | for (name, def) in module_scope { |
23 | if ctx.use_item_syntax.is_some() { | 33 | if ctx.use_item_syntax.is_some() { |
@@ -35,7 +45,8 @@ pub(super) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon | |||
35 | acc.add_resolution(ctx, name.to_string(), &def); | 45 | acc.add_resolution(ctx, name.to_string(), &def); |
36 | } | 46 | } |
37 | } | 47 | } |
38 | hir::ModuleDef::Adt(_) | hir::ModuleDef::TypeAlias(_) => { | 48 | PathResolution::Def(def @ hir::ModuleDef::Adt(_)) |
49 | | PathResolution::Def(def @ hir::ModuleDef::TypeAlias(_)) => { | ||
39 | if let hir::ModuleDef::Adt(Adt::Enum(e)) = def { | 50 | if let hir::ModuleDef::Adt(Adt::Enum(e)) = def { |
40 | for variant in e.variants(ctx.db) { | 51 | for variant in e.variants(ctx.db) { |
41 | acc.add_enum_variant(ctx, variant, None); | 52 | acc.add_enum_variant(ctx, variant, None); |
@@ -46,8 +57,10 @@ pub(super) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon | |||
46 | hir::ModuleDef::TypeAlias(a) => a.ty(ctx.db), | 57 | hir::ModuleDef::TypeAlias(a) => a.ty(ctx.db), |
47 | _ => unreachable!(), | 58 | _ => unreachable!(), |
48 | }; | 59 | }; |
49 | // Iterate assoc types separately | 60 | |
50 | // FIXME: complete T::AssocType | 61 | // XXX: For parity with Rust bug #22519, this does not complete Ty::AssocType. |
62 | // (where AssocType is defined on a trait, not an inherent impl) | ||
63 | |||
51 | let krate = ctx.krate; | 64 | let krate = ctx.krate; |
52 | if let Some(krate) = krate { | 65 | if let Some(krate) = krate { |
53 | let traits_in_scope = ctx.scope().traits_in_scope(); | 66 | let traits_in_scope = ctx.scope().traits_in_scope(); |
@@ -65,6 +78,7 @@ pub(super) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon | |||
65 | None::<()> | 78 | None::<()> |
66 | }); | 79 | }); |
67 | 80 | ||
81 | // Iterate assoc types separately | ||
68 | ty.iterate_impl_items(ctx.db, krate, |item| { | 82 | ty.iterate_impl_items(ctx.db, krate, |item| { |
69 | if context_module.map_or(false, |m| !item.is_visible_from(ctx.db, m)) { | 83 | if context_module.map_or(false, |m| !item.is_visible_from(ctx.db, m)) { |
70 | return None; | 84 | return None; |
@@ -77,7 +91,8 @@ pub(super) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon | |||
77 | }); | 91 | }); |
78 | } | 92 | } |
79 | } | 93 | } |
80 | hir::ModuleDef::Trait(t) => { | 94 | PathResolution::Def(hir::ModuleDef::Trait(t)) => { |
95 | // Handles `Trait::assoc` as well as `<Ty as Trait>::assoc`. | ||
81 | for item in t.items(ctx.db) { | 96 | for item in t.items(ctx.db) { |
82 | if context_module.map_or(false, |m| !item.is_visible_from(ctx.db, m)) { | 97 | if context_module.map_or(false, |m| !item.is_visible_from(ctx.db, m)) { |
83 | continue; | 98 | continue; |
@@ -91,8 +106,38 @@ pub(super) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon | |||
91 | } | 106 | } |
92 | } | 107 | } |
93 | } | 108 | } |
109 | PathResolution::TypeParam(_) | PathResolution::SelfType(_) => { | ||
110 | if let Some(krate) = ctx.krate { | ||
111 | let ty = match res { | ||
112 | PathResolution::TypeParam(param) => param.ty(ctx.db), | ||
113 | PathResolution::SelfType(impl_def) => impl_def.target_ty(ctx.db), | ||
114 | _ => return, | ||
115 | }; | ||
116 | |||
117 | let traits_in_scope = ctx.scope().traits_in_scope(); | ||
118 | let mut seen = FxHashSet::default(); | ||
119 | ty.iterate_path_candidates(ctx.db, krate, &traits_in_scope, None, |_ty, item| { | ||
120 | if context_module.map_or(false, |m| !item.is_visible_from(ctx.db, m)) { | ||
121 | return None; | ||
122 | } | ||
123 | |||
124 | // We might iterate candidates of a trait multiple times here, so deduplicate | ||
125 | // them. | ||
126 | if seen.insert(item) { | ||
127 | match item { | ||
128 | hir::AssocItem::Function(func) => { | ||
129 | acc.add_function(ctx, func, None); | ||
130 | } | ||
131 | hir::AssocItem::Const(ct) => acc.add_const(ctx, ct), | ||
132 | hir::AssocItem::TypeAlias(ty) => acc.add_type_alias(ctx, ty), | ||
133 | } | ||
134 | } | ||
135 | None::<()> | ||
136 | }); | ||
137 | } | ||
138 | } | ||
94 | _ => {} | 139 | _ => {} |
95 | }; | 140 | } |
96 | } | 141 | } |
97 | 142 | ||
98 | #[cfg(test)] | 143 | #[cfg(test)] |
@@ -844,6 +889,211 @@ mod tests { | |||
844 | } | 889 | } |
845 | 890 | ||
846 | #[test] | 891 | #[test] |
892 | fn completes_ty_param_assoc_ty() { | ||
893 | assert_debug_snapshot!( | ||
894 | do_reference_completion( | ||
895 | " | ||
896 | //- /lib.rs | ||
897 | trait Super { | ||
898 | type Ty; | ||
899 | const CONST: u8; | ||
900 | fn func() {} | ||
901 | fn method(&self) {} | ||
902 | } | ||
903 | |||
904 | trait Sub: Super { | ||
905 | type SubTy; | ||
906 | const C2: (); | ||
907 | fn subfunc() {} | ||
908 | fn submethod(&self) {} | ||
909 | } | ||
910 | |||
911 | fn foo<T: Sub>() { | ||
912 | T::<|> | ||
913 | } | ||
914 | " | ||
915 | ), | ||
916 | @r###" | ||
917 | [ | ||
918 | CompletionItem { | ||
919 | label: "C2", | ||
920 | source_range: 219..219, | ||
921 | delete: 219..219, | ||
922 | insert: "C2", | ||
923 | kind: Const, | ||
924 | detail: "const C2: ();", | ||
925 | }, | ||
926 | CompletionItem { | ||
927 | label: "CONST", | ||
928 | source_range: 219..219, | ||
929 | delete: 219..219, | ||
930 | insert: "CONST", | ||
931 | kind: Const, | ||
932 | detail: "const CONST: u8;", | ||
933 | }, | ||
934 | CompletionItem { | ||
935 | label: "SubTy", | ||
936 | source_range: 219..219, | ||
937 | delete: 219..219, | ||
938 | insert: "SubTy", | ||
939 | kind: TypeAlias, | ||
940 | detail: "type SubTy;", | ||
941 | }, | ||
942 | CompletionItem { | ||
943 | label: "Ty", | ||
944 | source_range: 219..219, | ||
945 | delete: 219..219, | ||
946 | insert: "Ty", | ||
947 | kind: TypeAlias, | ||
948 | detail: "type Ty;", | ||
949 | }, | ||
950 | CompletionItem { | ||
951 | label: "func()", | ||
952 | source_range: 219..219, | ||
953 | delete: 219..219, | ||
954 | insert: "func()$0", | ||
955 | kind: Function, | ||
956 | lookup: "func", | ||
957 | detail: "fn func()", | ||
958 | }, | ||
959 | CompletionItem { | ||
960 | label: "method()", | ||
961 | source_range: 219..219, | ||
962 | delete: 219..219, | ||
963 | insert: "method()$0", | ||
964 | kind: Method, | ||
965 | lookup: "method", | ||
966 | detail: "fn method(&self)", | ||
967 | }, | ||
968 | CompletionItem { | ||
969 | label: "subfunc()", | ||
970 | source_range: 219..219, | ||
971 | delete: 219..219, | ||
972 | insert: "subfunc()$0", | ||
973 | kind: Function, | ||
974 | lookup: "subfunc", | ||
975 | detail: "fn subfunc()", | ||
976 | }, | ||
977 | CompletionItem { | ||
978 | label: "submethod()", | ||
979 | source_range: 219..219, | ||
980 | delete: 219..219, | ||
981 | insert: "submethod()$0", | ||
982 | kind: Method, | ||
983 | lookup: "submethod", | ||
984 | detail: "fn submethod(&self)", | ||
985 | }, | ||
986 | ] | ||
987 | "### | ||
988 | ); | ||
989 | } | ||
990 | |||
991 | #[test] | ||
992 | fn completes_self_param_assoc_ty() { | ||
993 | assert_debug_snapshot!( | ||
994 | do_reference_completion( | ||
995 | " | ||
996 | //- /lib.rs | ||
997 | trait Super { | ||
998 | type Ty; | ||
999 | const CONST: u8 = 0; | ||
1000 | fn func() {} | ||
1001 | fn method(&self) {} | ||
1002 | } | ||
1003 | |||
1004 | trait Sub: Super { | ||
1005 | type SubTy; | ||
1006 | const C2: () = (); | ||
1007 | fn subfunc() {} | ||
1008 | fn submethod(&self) {} | ||
1009 | } | ||
1010 | |||
1011 | struct Wrap<T>(T); | ||
1012 | impl<T> Super for Wrap<T> {} | ||
1013 | impl<T> Sub for Wrap<T> { | ||
1014 | fn subfunc() { | ||
1015 | // Should be able to assume `Self: Sub + Super` | ||
1016 | Self::<|> | ||
1017 | } | ||
1018 | } | ||
1019 | " | ||
1020 | ), | ||
1021 | @r###" | ||
1022 | [ | ||
1023 | CompletionItem { | ||
1024 | label: "C2", | ||
1025 | source_range: 365..365, | ||
1026 | delete: 365..365, | ||
1027 | insert: "C2", | ||
1028 | kind: Const, | ||
1029 | detail: "const C2: () = ();", | ||
1030 | }, | ||
1031 | CompletionItem { | ||
1032 | label: "CONST", | ||
1033 | source_range: 365..365, | ||
1034 | delete: 365..365, | ||
1035 | insert: "CONST", | ||
1036 | kind: Const, | ||
1037 | detail: "const CONST: u8 = 0;", | ||
1038 | }, | ||
1039 | CompletionItem { | ||
1040 | label: "SubTy", | ||
1041 | source_range: 365..365, | ||
1042 | delete: 365..365, | ||
1043 | insert: "SubTy", | ||
1044 | kind: TypeAlias, | ||
1045 | detail: "type SubTy;", | ||
1046 | }, | ||
1047 | CompletionItem { | ||
1048 | label: "Ty", | ||
1049 | source_range: 365..365, | ||
1050 | delete: 365..365, | ||
1051 | insert: "Ty", | ||
1052 | kind: TypeAlias, | ||
1053 | detail: "type Ty;", | ||
1054 | }, | ||
1055 | CompletionItem { | ||
1056 | label: "func()", | ||
1057 | source_range: 365..365, | ||
1058 | delete: 365..365, | ||
1059 | insert: "func()$0", | ||
1060 | kind: Function, | ||
1061 | lookup: "func", | ||
1062 | detail: "fn func()", | ||
1063 | }, | ||
1064 | CompletionItem { | ||
1065 | label: "method()", | ||
1066 | source_range: 365..365, | ||
1067 | delete: 365..365, | ||
1068 | insert: "method()$0", | ||
1069 | kind: Method, | ||
1070 | lookup: "method", | ||
1071 | detail: "fn method(&self)", | ||
1072 | }, | ||
1073 | CompletionItem { | ||
1074 | label: "subfunc()", | ||
1075 | source_range: 365..365, | ||
1076 | delete: 365..365, | ||
1077 | insert: "subfunc()$0", | ||
1078 | kind: Function, | ||
1079 | lookup: "subfunc", | ||
1080 | detail: "fn subfunc()", | ||
1081 | }, | ||
1082 | CompletionItem { | ||
1083 | label: "submethod()", | ||
1084 | source_range: 365..365, | ||
1085 | delete: 365..365, | ||
1086 | insert: "submethod()$0", | ||
1087 | kind: Method, | ||
1088 | lookup: "submethod", | ||
1089 | detail: "fn submethod(&self)", | ||
1090 | }, | ||
1091 | ] | ||
1092 | "### | ||
1093 | ); | ||
1094 | } | ||
1095 | |||
1096 | #[test] | ||
847 | fn completes_type_alias() { | 1097 | fn completes_type_alias() { |
848 | assert_debug_snapshot!( | 1098 | assert_debug_snapshot!( |
849 | do_reference_completion( | 1099 | do_reference_completion( |
diff --git a/crates/ra_ide/src/completion/complete_unqualified_path.rs b/crates/ra_ide/src/completion/complete_unqualified_path.rs index f559f2b97..a6a5568de 100644 --- a/crates/ra_ide/src/completion/complete_unqualified_path.rs +++ b/crates/ra_ide/src/completion/complete_unqualified_path.rs | |||
@@ -53,7 +53,7 @@ fn complete_enum_variants(acc: &mut Completions, ctx: &CompletionContext, ty: &T | |||
53 | // Variants with trivial paths are already added by the existing completion logic, | 53 | // Variants with trivial paths are already added by the existing completion logic, |
54 | // so we should avoid adding these twice | 54 | // so we should avoid adding these twice |
55 | if path.segments.len() > 1 { | 55 | if path.segments.len() > 1 { |
56 | acc.add_enum_variant(ctx, variant, Some(path.to_string())); | 56 | acc.add_qualified_enum_variant(ctx, variant, path); |
57 | } | 57 | } |
58 | } | 58 | } |
59 | } | 59 | } |
@@ -1173,6 +1173,7 @@ mod tests { | |||
1173 | delete: 248..250, | 1173 | delete: 248..250, |
1174 | insert: "Foo::Bar", | 1174 | insert: "Foo::Bar", |
1175 | kind: EnumVariant, | 1175 | kind: EnumVariant, |
1176 | lookup: "Bar", | ||
1176 | detail: "()", | 1177 | detail: "()", |
1177 | }, | 1178 | }, |
1178 | CompletionItem { | 1179 | CompletionItem { |
@@ -1181,6 +1182,7 @@ mod tests { | |||
1181 | delete: 248..250, | 1182 | delete: 248..250, |
1182 | insert: "Foo::Baz", | 1183 | insert: "Foo::Baz", |
1183 | kind: EnumVariant, | 1184 | kind: EnumVariant, |
1185 | lookup: "Baz", | ||
1184 | detail: "()", | 1186 | detail: "()", |
1185 | }, | 1187 | }, |
1186 | CompletionItem { | 1188 | CompletionItem { |
@@ -1189,6 +1191,7 @@ mod tests { | |||
1189 | delete: 248..250, | 1191 | delete: 248..250, |
1190 | insert: "Foo::Quux", | 1192 | insert: "Foo::Quux", |
1191 | kind: EnumVariant, | 1193 | kind: EnumVariant, |
1194 | lookup: "Quux", | ||
1192 | detail: "()", | 1195 | detail: "()", |
1193 | }, | 1196 | }, |
1194 | ] | 1197 | ] |
@@ -1231,6 +1234,7 @@ mod tests { | |||
1231 | delete: 219..221, | 1234 | delete: 219..221, |
1232 | insert: "Foo::Bar", | 1235 | insert: "Foo::Bar", |
1233 | kind: EnumVariant, | 1236 | kind: EnumVariant, |
1237 | lookup: "Bar", | ||
1234 | detail: "()", | 1238 | detail: "()", |
1235 | }, | 1239 | }, |
1236 | CompletionItem { | 1240 | CompletionItem { |
@@ -1239,6 +1243,7 @@ mod tests { | |||
1239 | delete: 219..221, | 1243 | delete: 219..221, |
1240 | insert: "Foo::Baz", | 1244 | insert: "Foo::Baz", |
1241 | kind: EnumVariant, | 1245 | kind: EnumVariant, |
1246 | lookup: "Baz", | ||
1242 | detail: "()", | 1247 | detail: "()", |
1243 | }, | 1248 | }, |
1244 | CompletionItem { | 1249 | CompletionItem { |
@@ -1247,6 +1252,7 @@ mod tests { | |||
1247 | delete: 219..221, | 1252 | delete: 219..221, |
1248 | insert: "Foo::Quux", | 1253 | insert: "Foo::Quux", |
1249 | kind: EnumVariant, | 1254 | kind: EnumVariant, |
1255 | lookup: "Quux", | ||
1250 | detail: "()", | 1256 | detail: "()", |
1251 | }, | 1257 | }, |
1252 | ] | 1258 | ] |
@@ -1285,6 +1291,7 @@ mod tests { | |||
1285 | delete: 185..186, | 1291 | delete: 185..186, |
1286 | insert: "Foo::Bar", | 1292 | insert: "Foo::Bar", |
1287 | kind: EnumVariant, | 1293 | kind: EnumVariant, |
1294 | lookup: "Bar", | ||
1288 | detail: "()", | 1295 | detail: "()", |
1289 | }, | 1296 | }, |
1290 | CompletionItem { | 1297 | CompletionItem { |
@@ -1293,6 +1300,7 @@ mod tests { | |||
1293 | delete: 185..186, | 1300 | delete: 185..186, |
1294 | insert: "Foo::Baz", | 1301 | insert: "Foo::Baz", |
1295 | kind: EnumVariant, | 1302 | kind: EnumVariant, |
1303 | lookup: "Baz", | ||
1296 | detail: "()", | 1304 | detail: "()", |
1297 | }, | 1305 | }, |
1298 | CompletionItem { | 1306 | CompletionItem { |
@@ -1301,6 +1309,7 @@ mod tests { | |||
1301 | delete: 185..186, | 1309 | delete: 185..186, |
1302 | insert: "Foo::Quux", | 1310 | insert: "Foo::Quux", |
1303 | kind: EnumVariant, | 1311 | kind: EnumVariant, |
1312 | lookup: "Quux", | ||
1304 | detail: "()", | 1313 | detail: "()", |
1305 | }, | 1314 | }, |
1306 | CompletionItem { | 1315 | CompletionItem { |
@@ -1353,6 +1362,7 @@ mod tests { | |||
1353 | delete: 98..99, | 1362 | delete: 98..99, |
1354 | insert: "m::E::V", | 1363 | insert: "m::E::V", |
1355 | kind: EnumVariant, | 1364 | kind: EnumVariant, |
1365 | lookup: "V", | ||
1356 | detail: "()", | 1366 | detail: "()", |
1357 | }, | 1367 | }, |
1358 | ] | 1368 | ] |
diff --git a/crates/ra_ide/src/completion/completion_context.rs b/crates/ra_ide/src/completion/completion_context.rs index 118fceb2e..c529752d4 100644 --- a/crates/ra_ide/src/completion/completion_context.rs +++ b/crates/ra_ide/src/completion/completion_context.rs | |||
@@ -344,7 +344,7 @@ impl<'a> CompletionContext<'a> { | |||
344 | stmt.syntax().text_range() == name_ref.syntax().text_range(), | 344 | stmt.syntax().text_range() == name_ref.syntax().text_range(), |
345 | ); | 345 | ); |
346 | } | 346 | } |
347 | if let Some(block) = ast::Block::cast(node) { | 347 | if let Some(block) = ast::BlockExpr::cast(node) { |
348 | return Some( | 348 | return Some( |
349 | block.expr().map(|e| e.syntax().text_range()) | 349 | block.expr().map(|e| e.syntax().text_range()) |
350 | == Some(name_ref.syntax().text_range()), | 350 | == Some(name_ref.syntax().text_range()), |
diff --git a/crates/ra_ide/src/completion/presentation.rs b/crates/ra_ide/src/completion/presentation.rs index 77d354376..2edb130cf 100644 --- a/crates/ra_ide/src/completion/presentation.rs +++ b/crates/ra_ide/src/completion/presentation.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | //! This modules takes care of rendering various definitions as completion items. | 1 | //! This modules takes care of rendering various definitions as completion items. |
2 | 2 | ||
3 | use hir::{Docs, HasAttrs, HasSource, HirDisplay, ScopeDef, StructKind, Type}; | 3 | use hir::{Docs, HasAttrs, HasSource, HirDisplay, ModPath, ScopeDef, StructKind, Type}; |
4 | use ra_syntax::ast::NameOwner; | 4 | use ra_syntax::ast::NameOwner; |
5 | use stdx::SepBy; | 5 | use stdx::SepBy; |
6 | use test_utils::tested_by; | 6 | use test_utils::tested_by; |
@@ -246,14 +246,37 @@ impl Completions { | |||
246 | .add_to(self); | 246 | .add_to(self); |
247 | } | 247 | } |
248 | 248 | ||
249 | pub(crate) fn add_qualified_enum_variant( | ||
250 | &mut self, | ||
251 | ctx: &CompletionContext, | ||
252 | variant: hir::EnumVariant, | ||
253 | path: ModPath, | ||
254 | ) { | ||
255 | self.add_enum_variant_impl(ctx, variant, None, Some(path)) | ||
256 | } | ||
257 | |||
249 | pub(crate) fn add_enum_variant( | 258 | pub(crate) fn add_enum_variant( |
250 | &mut self, | 259 | &mut self, |
251 | ctx: &CompletionContext, | 260 | ctx: &CompletionContext, |
252 | variant: hir::EnumVariant, | 261 | variant: hir::EnumVariant, |
253 | local_name: Option<String>, | 262 | local_name: Option<String>, |
254 | ) { | 263 | ) { |
264 | self.add_enum_variant_impl(ctx, variant, local_name, None) | ||
265 | } | ||
266 | |||
267 | fn add_enum_variant_impl( | ||
268 | &mut self, | ||
269 | ctx: &CompletionContext, | ||
270 | variant: hir::EnumVariant, | ||
271 | local_name: Option<String>, | ||
272 | path: Option<ModPath>, | ||
273 | ) { | ||
255 | let is_deprecated = is_deprecated(variant, ctx.db); | 274 | let is_deprecated = is_deprecated(variant, ctx.db); |
256 | let name = local_name.unwrap_or_else(|| variant.name(ctx.db).to_string()); | 275 | let name = local_name.unwrap_or_else(|| variant.name(ctx.db).to_string()); |
276 | let qualified_name = match &path { | ||
277 | Some(it) => it.to_string(), | ||
278 | None => name.to_string(), | ||
279 | }; | ||
257 | let detail_types = variant | 280 | let detail_types = variant |
258 | .fields(ctx.db) | 281 | .fields(ctx.db) |
259 | .into_iter() | 282 | .into_iter() |
@@ -271,16 +294,23 @@ impl Completions { | |||
271 | .surround_with("{ ", " }") | 294 | .surround_with("{ ", " }") |
272 | .to_string(), | 295 | .to_string(), |
273 | }; | 296 | }; |
274 | let mut res = | 297 | let mut res = CompletionItem::new( |
275 | CompletionItem::new(CompletionKind::Reference, ctx.source_range(), name.clone()) | 298 | CompletionKind::Reference, |
276 | .kind(CompletionItemKind::EnumVariant) | 299 | ctx.source_range(), |
277 | .set_documentation(variant.docs(ctx.db)) | 300 | qualified_name.clone(), |
278 | .set_deprecated(is_deprecated) | 301 | ) |
279 | .detail(detail); | 302 | .kind(CompletionItemKind::EnumVariant) |
303 | .set_documentation(variant.docs(ctx.db)) | ||
304 | .set_deprecated(is_deprecated) | ||
305 | .detail(detail); | ||
306 | |||
307 | if path.is_some() { | ||
308 | res = res.lookup_by(name); | ||
309 | } | ||
280 | 310 | ||
281 | if variant_kind == StructKind::Tuple { | 311 | if variant_kind == StructKind::Tuple { |
282 | let params = Params::Anonymous(variant.fields(ctx.db).len()); | 312 | let params = Params::Anonymous(variant.fields(ctx.db).len()); |
283 | res = res.add_call_parens(ctx, name, params) | 313 | res = res.add_call_parens(ctx, qualified_name, params) |
284 | } | 314 | } |
285 | 315 | ||
286 | res.add_to(self); | 316 | res.add_to(self); |
diff --git a/crates/ra_ide/src/display/function_signature.rs b/crates/ra_ide/src/display/function_signature.rs index b5e2785fe..db3907fe6 100644 --- a/crates/ra_ide/src/display/function_signature.rs +++ b/crates/ra_ide/src/display/function_signature.rs | |||
@@ -26,6 +26,8 @@ pub struct FunctionSignature { | |||
26 | pub kind: CallableKind, | 26 | pub kind: CallableKind, |
27 | /// Optional visibility | 27 | /// Optional visibility |
28 | pub visibility: Option<String>, | 28 | pub visibility: Option<String>, |
29 | /// Qualifiers like `async`, `unsafe`, ... | ||
30 | pub qualifier: FunctionQualifier, | ||
29 | /// Name of the function | 31 | /// Name of the function |
30 | pub name: Option<String>, | 32 | pub name: Option<String>, |
31 | /// Documentation for the function | 33 | /// Documentation for the function |
@@ -46,6 +48,16 @@ pub struct FunctionSignature { | |||
46 | pub has_self_param: bool, | 48 | pub has_self_param: bool, |
47 | } | 49 | } |
48 | 50 | ||
51 | #[derive(Debug, Default)] | ||
52 | pub struct FunctionQualifier { | ||
53 | // `async` and `const` are mutually exclusive. Do we need to enforcing it here? | ||
54 | pub is_async: bool, | ||
55 | pub is_const: bool, | ||
56 | pub is_unsafe: bool, | ||
57 | /// The string `extern ".."` | ||
58 | pub extern_abi: Option<String>, | ||
59 | } | ||
60 | |||
49 | impl FunctionSignature { | 61 | impl FunctionSignature { |
50 | pub(crate) fn with_doc_opt(mut self, doc: Option<Documentation>) -> Self { | 62 | pub(crate) fn with_doc_opt(mut self, doc: Option<Documentation>) -> Self { |
51 | self.doc = doc; | 63 | self.doc = doc; |
@@ -83,6 +95,8 @@ impl FunctionSignature { | |||
83 | FunctionSignature { | 95 | FunctionSignature { |
84 | kind: CallableKind::StructConstructor, | 96 | kind: CallableKind::StructConstructor, |
85 | visibility: node.visibility().map(|n| n.syntax().text().to_string()), | 97 | visibility: node.visibility().map(|n| n.syntax().text().to_string()), |
98 | // Do we need `const`? | ||
99 | qualifier: Default::default(), | ||
86 | name: node.name().map(|n| n.text().to_string()), | 100 | name: node.name().map(|n| n.text().to_string()), |
87 | ret_type: node.name().map(|n| n.text().to_string()), | 101 | ret_type: node.name().map(|n| n.text().to_string()), |
88 | parameters: params, | 102 | parameters: params, |
@@ -128,6 +142,8 @@ impl FunctionSignature { | |||
128 | FunctionSignature { | 142 | FunctionSignature { |
129 | kind: CallableKind::VariantConstructor, | 143 | kind: CallableKind::VariantConstructor, |
130 | visibility: None, | 144 | visibility: None, |
145 | // Do we need `const`? | ||
146 | qualifier: Default::default(), | ||
131 | name: Some(name), | 147 | name: Some(name), |
132 | ret_type: None, | 148 | ret_type: None, |
133 | parameters: params, | 149 | parameters: params, |
@@ -151,6 +167,7 @@ impl FunctionSignature { | |||
151 | FunctionSignature { | 167 | FunctionSignature { |
152 | kind: CallableKind::Macro, | 168 | kind: CallableKind::Macro, |
153 | visibility: None, | 169 | visibility: None, |
170 | qualifier: Default::default(), | ||
154 | name: node.name().map(|n| n.text().to_string()), | 171 | name: node.name().map(|n| n.text().to_string()), |
155 | ret_type: None, | 172 | ret_type: None, |
156 | parameters: params, | 173 | parameters: params, |
@@ -223,6 +240,12 @@ impl From<&'_ ast::FnDef> for FunctionSignature { | |||
223 | FunctionSignature { | 240 | FunctionSignature { |
224 | kind: CallableKind::Function, | 241 | kind: CallableKind::Function, |
225 | visibility: node.visibility().map(|n| n.syntax().text().to_string()), | 242 | visibility: node.visibility().map(|n| n.syntax().text().to_string()), |
243 | qualifier: FunctionQualifier { | ||
244 | is_async: node.async_token().is_some(), | ||
245 | is_const: node.const_token().is_some(), | ||
246 | is_unsafe: node.unsafe_token().is_some(), | ||
247 | extern_abi: node.abi().map(|n| n.to_string()), | ||
248 | }, | ||
226 | name: node.name().map(|n| n.text().to_string()), | 249 | name: node.name().map(|n| n.text().to_string()), |
227 | ret_type: node | 250 | ret_type: node |
228 | .ret_type() | 251 | .ret_type() |
@@ -246,6 +269,23 @@ impl Display for FunctionSignature { | |||
246 | write!(f, "{} ", t)?; | 269 | write!(f, "{} ", t)?; |
247 | } | 270 | } |
248 | 271 | ||
272 | if self.qualifier.is_async { | ||
273 | write!(f, "async ")?; | ||
274 | } | ||
275 | |||
276 | if self.qualifier.is_const { | ||
277 | write!(f, "const ")?; | ||
278 | } | ||
279 | |||
280 | if self.qualifier.is_unsafe { | ||
281 | write!(f, "unsafe ")?; | ||
282 | } | ||
283 | |||
284 | if let Some(extern_abi) = &self.qualifier.extern_abi { | ||
285 | // Keyword `extern` is included in the string. | ||
286 | write!(f, "{} ", extern_abi)?; | ||
287 | } | ||
288 | |||
249 | if let Some(name) = &self.name { | 289 | if let Some(name) = &self.name { |
250 | match self.kind { | 290 | match self.kind { |
251 | CallableKind::Function => write!(f, "fn {}", name)?, | 291 | CallableKind::Function => write!(f, "fn {}", name)?, |
diff --git a/crates/ra_ide/src/display/short_label.rs b/crates/ra_ide/src/display/short_label.rs index 4b081bf6c..d37260e96 100644 --- a/crates/ra_ide/src/display/short_label.rs +++ b/crates/ra_ide/src/display/short_label.rs | |||
@@ -33,7 +33,11 @@ impl ShortLabel for ast::EnumDef { | |||
33 | 33 | ||
34 | impl ShortLabel for ast::TraitDef { | 34 | impl ShortLabel for ast::TraitDef { |
35 | fn short_label(&self) -> Option<String> { | 35 | fn short_label(&self) -> Option<String> { |
36 | short_label_from_node(self, "trait ") | 36 | if self.unsafe_token().is_some() { |
37 | short_label_from_node(self, "unsafe trait ") | ||
38 | } else { | ||
39 | short_label_from_node(self, "trait ") | ||
40 | } | ||
37 | } | 41 | } |
38 | } | 42 | } |
39 | 43 | ||
diff --git a/crates/ra_ide/src/folding_ranges.rs b/crates/ra_ide/src/folding_ranges.rs index 4379005aa..8657377de 100644 --- a/crates/ra_ide/src/folding_ranges.rs +++ b/crates/ra_ide/src/folding_ranges.rs | |||
@@ -88,7 +88,7 @@ fn fold_kind(kind: SyntaxKind) -> Option<FoldKind> { | |||
88 | | ITEM_LIST | 88 | | ITEM_LIST |
89 | | EXTERN_ITEM_LIST | 89 | | EXTERN_ITEM_LIST |
90 | | USE_TREE_LIST | 90 | | USE_TREE_LIST |
91 | | BLOCK | 91 | | BLOCK_EXPR |
92 | | MATCH_ARM_LIST | 92 | | MATCH_ARM_LIST |
93 | | ENUM_VARIANT_LIST | 93 | | ENUM_VARIANT_LIST |
94 | | TOKEN_TREE => Some(FoldKind::Block), | 94 | | TOKEN_TREE => Some(FoldKind::Block), |
diff --git a/crates/ra_ide/src/hover.rs b/crates/ra_ide/src/hover.rs index 58c799eca..54d318858 100644 --- a/crates/ra_ide/src/hover.rs +++ b/crates/ra_ide/src/hover.rs | |||
@@ -844,4 +844,40 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
844 | &["fn foo()\n```\n\n<- `\u{3000}` here"], | 844 | &["fn foo()\n```\n\n<- `\u{3000}` here"], |
845 | ); | 845 | ); |
846 | } | 846 | } |
847 | |||
848 | #[test] | ||
849 | fn test_hover_function_show_qualifiers() { | ||
850 | check_hover_result( | ||
851 | " | ||
852 | //- /lib.rs | ||
853 | async fn foo<|>() {} | ||
854 | ", | ||
855 | &["async fn foo()"], | ||
856 | ); | ||
857 | check_hover_result( | ||
858 | " | ||
859 | //- /lib.rs | ||
860 | pub const unsafe fn foo<|>() {} | ||
861 | ", | ||
862 | &["pub const unsafe fn foo()"], | ||
863 | ); | ||
864 | check_hover_result( | ||
865 | r#" | ||
866 | //- /lib.rs | ||
867 | pub(crate) async unsafe extern "C" fn foo<|>() {} | ||
868 | "#, | ||
869 | &[r#"pub(crate) async unsafe extern "C" fn foo()"#], | ||
870 | ); | ||
871 | } | ||
872 | |||
873 | #[test] | ||
874 | fn test_hover_trait_show_qualifiers() { | ||
875 | check_hover_result( | ||
876 | " | ||
877 | //- /lib.rs | ||
878 | unsafe trait foo<|>() {} | ||
879 | ", | ||
880 | &["unsafe trait foo"], | ||
881 | ); | ||
882 | } | ||
847 | } | 883 | } |
diff --git a/crates/ra_ide/src/join_lines.rs b/crates/ra_ide/src/join_lines.rs index fde0bfa98..63fd6b3e4 100644 --- a/crates/ra_ide/src/join_lines.rs +++ b/crates/ra_ide/src/join_lines.rs | |||
@@ -129,8 +129,10 @@ fn has_comma_after(node: &SyntaxNode) -> bool { | |||
129 | } | 129 | } |
130 | 130 | ||
131 | fn join_single_expr_block(edit: &mut TextEditBuilder, token: &SyntaxToken) -> Option<()> { | 131 | fn join_single_expr_block(edit: &mut TextEditBuilder, token: &SyntaxToken) -> Option<()> { |
132 | let block = ast::Block::cast(token.parent())?; | 132 | let block_expr = ast::BlockExpr::cast(token.parent())?; |
133 | let block_expr = ast::BlockExpr::cast(block.syntax().parent()?)?; | 133 | if !block_expr.is_standalone() { |
134 | return None; | ||
135 | } | ||
134 | let expr = extract_trivial_expression(&block_expr)?; | 136 | let expr = extract_trivial_expression(&block_expr)?; |
135 | 137 | ||
136 | let block_range = block_expr.syntax().text_range(); | 138 | let block_range = block_expr.syntax().text_range(); |
@@ -662,4 +664,67 @@ fn main() { | |||
662 | ", | 664 | ", |
663 | ) | 665 | ) |
664 | } | 666 | } |
667 | |||
668 | #[test] | ||
669 | fn join_lines_mandatory_blocks_block() { | ||
670 | check_join_lines( | ||
671 | r" | ||
672 | <|>fn foo() { | ||
673 | 92 | ||
674 | } | ||
675 | ", | ||
676 | r" | ||
677 | <|>fn foo() { 92 | ||
678 | } | ||
679 | ", | ||
680 | ); | ||
681 | |||
682 | check_join_lines( | ||
683 | r" | ||
684 | fn foo() { | ||
685 | <|>if true { | ||
686 | 92 | ||
687 | } | ||
688 | } | ||
689 | ", | ||
690 | r" | ||
691 | fn foo() { | ||
692 | <|>if true { 92 | ||
693 | } | ||
694 | } | ||
695 | ", | ||
696 | ); | ||
697 | |||
698 | check_join_lines( | ||
699 | r" | ||
700 | fn foo() { | ||
701 | <|>loop { | ||
702 | 92 | ||
703 | } | ||
704 | } | ||
705 | ", | ||
706 | r" | ||
707 | fn foo() { | ||
708 | <|>loop { 92 | ||
709 | } | ||
710 | } | ||
711 | ", | ||
712 | ); | ||
713 | |||
714 | check_join_lines( | ||
715 | r" | ||
716 | fn foo() { | ||
717 | <|>unsafe { | ||
718 | 92 | ||
719 | } | ||
720 | } | ||
721 | ", | ||
722 | r" | ||
723 | fn foo() { | ||
724 | <|>unsafe { 92 | ||
725 | } | ||
726 | } | ||
727 | ", | ||
728 | ); | ||
729 | } | ||
665 | } | 730 | } |
diff --git a/crates/ra_ide/src/syntax_tree.rs b/crates/ra_ide/src/syntax_tree.rs index bf97f8c56..86c70ff83 100644 --- a/crates/ra_ide/src/syntax_tree.rs +++ b/crates/ra_ide/src/syntax_tree.rs | |||
@@ -120,9 +120,8 @@ [email protected] | |||
120 | [email protected] ")" | 120 | [email protected] ")" |
121 | [email protected] " " | 121 | [email protected] " " |
122 | [email protected] | 122 | [email protected] |
123 | [email protected] | 123 | [email protected] "{" |
124 | [email protected] "{" | 124 | [email protected] "}" |
125 | [email protected] "}" | ||
126 | "# | 125 | "# |
127 | .trim() | 126 | .trim() |
128 | ); | 127 | ); |
@@ -153,26 +152,25 @@ [email protected] | |||
153 | [email protected] ")" | 152 | [email protected] ")" |
154 | [email protected] " " | 153 | [email protected] " " |
155 | [email protected] | 154 | [email protected] |
156 | [email protected] | 155 | [email protected] "{" |
157 | [email protected] "{" | 156 | [email protected] "\n " |
158 | [email protected] "\n " | 157 | [email protected] |
159 | [email protected] | 158 | [email protected] |
160 | [email protected] | 159 | [email protected] |
161 | [email protected] | 160 | [email protected] |
162 | [email protected] | 161 | [email protected] |
163 | [email protected] | 162 | [email protected] "assert" |
164 | [email protected] "assert" | 163 | [email protected] "!" |
165 | [email protected] "!" | 164 | [email protected] |
166 | [email protected] | 165 | [email protected] "(" |
167 | [email protected] "(" | 166 | [email protected] "\"\n fn foo() {\n ..." |
168 | [email protected] "\"\n fn foo() {\n ..." | 167 | [email protected] "," |
169 | [email protected] "," | 168 | [email protected] " " |
170 | [email protected] " " | 169 | [email protected] "\"\"" |
171 | [email protected] "\"\"" | 170 | [email protected] ")" |
172 | [email protected] ")" | 171 | [email protected] ";" |
173 | [email protected] ";" | 172 | [email protected] "\n" |
174 | [email protected] "\n" | 173 | [email protected] "}" |
175 | [email protected] "}" | ||
176 | "# | 174 | "# |
177 | .trim() | 175 | .trim() |
178 | ); | 176 | ); |
@@ -196,9 +194,8 @@ [email protected] | |||
196 | [email protected] ")" | 194 | [email protected] ")" |
197 | [email protected] " " | 195 | [email protected] " " |
198 | [email protected] | 196 | [email protected] |
199 | [email protected] | 197 | [email protected] "{" |
200 | [email protected] "{" | 198 | [email protected] "}" |
201 | [email protected] "}" | ||
202 | "# | 199 | "# |
203 | .trim() | 200 | .trim() |
204 | ); | 201 | ); |
@@ -265,10 +262,9 @@ [email protected] | |||
265 | [email protected] ")" | 262 | [email protected] ")" |
266 | [email protected] " " | 263 | [email protected] " " |
267 | [email protected] | 264 | [email protected] |
268 | [email protected] | 265 | [email protected] "{" |
269 | [email protected] "{" | 266 | [email protected] "\n" |
270 | [email protected] "\n" | 267 | [email protected] "}" |
271 | [email protected] "}" | ||
272 | "# | 268 | "# |
273 | .trim() | 269 | .trim() |
274 | ); | 270 | ); |
@@ -300,10 +296,9 @@ [email protected] | |||
300 | [email protected] ")" | 296 | [email protected] ")" |
301 | [email protected] " " | 297 | [email protected] " " |
302 | [email protected] | 298 | [email protected] |
303 | [email protected] | 299 | [email protected] "{" |
304 | [email protected] "{" | 300 | [email protected] "\n" |
305 | [email protected] "\n" | 301 | [email protected] "}" |
306 | [email protected] "}" | ||
307 | "# | 302 | "# |
308 | .trim() | 303 | .trim() |
309 | ); | 304 | ); |
@@ -334,10 +329,9 @@ [email protected] | |||
334 | [email protected] ")" | 329 | [email protected] ")" |
335 | [email protected] " " | 330 | [email protected] " " |
336 | [email protected] | 331 | [email protected] |
337 | [email protected] | 332 | [email protected] "{" |
338 | [email protected] "{" | 333 | [email protected] "\n" |
339 | [email protected] "\n" | 334 | [email protected] "}" |
340 | [email protected] "}" | ||
341 | [email protected] "\n" | 335 | [email protected] "\n" |
342 | [email protected] | 336 | [email protected] |
343 | [email protected] "fn" | 337 | [email protected] "fn" |
@@ -349,10 +343,9 @@ [email protected] | |||
349 | [email protected] ")" | 343 | [email protected] ")" |
350 | [email protected] " " | 344 | [email protected] " " |
351 | [email protected] | 345 | [email protected] |
352 | [email protected] | 346 | [email protected] "{" |
353 | [email protected] "{" | 347 | [email protected] "\n" |
354 | [email protected] "\n" | 348 | [email protected] "}" |
355 | [email protected] "}" | ||
356 | "# | 349 | "# |
357 | .trim() | 350 | .trim() |
358 | ); | 351 | ); |
diff --git a/crates/ra_mbe/src/tests.rs b/crates/ra_mbe/src/tests.rs index 0d924ce58..c43003fd6 100644 --- a/crates/ra_mbe/src/tests.rs +++ b/crates/ra_mbe/src/tests.rs | |||
@@ -266,21 +266,20 @@ fn test_expr_order() { | |||
266 | [email protected] "(" | 266 | [email protected] "(" |
267 | [email protected] ")" | 267 | [email protected] ")" |
268 | [email protected] | 268 | [email protected] |
269 | [email protected] | 269 | [email protected] "{" |
270 | [email protected] "{" | 270 | [email protected] |
271 | [email protected] | 271 | [email protected] |
272 | [email protected] | 272 | [email protected] |
273 | [email protected] | 273 | [email protected] |
274 | [email protected] | 274 | [email protected] "1" |
275 | [email protected] "1" | 275 | [email protected] "+" |
276 | [email protected] "+" | 276 | [email protected] |
277 | [email protected] | 277 | [email protected] "1" |
278 | [email protected] "1" | 278 | [email protected] "*" |
279 | [email protected] "*" | 279 | [email protected] |
280 | [email protected] | 280 | [email protected] "2" |
281 | [email protected] "2" | 281 | [email protected] ";" |
282 | [email protected] ";" | 282 | [email protected] "}""#, |
283 | [email protected] "}""#, | ||
284 | ); | 283 | ); |
285 | } | 284 | } |
286 | 285 | ||
@@ -1114,68 +1113,67 @@ fn test_vec() { | |||
1114 | assert_eq!( | 1113 | assert_eq!( |
1115 | format!("{:#?}", tree).trim(), | 1114 | format!("{:#?}", tree).trim(), |
1116 | r#"[email protected] | 1115 | r#"[email protected] |
1117 | [email protected] | 1116 | [email protected] "{" |
1118 | [email protected] "{" | 1117 | [email protected] |
1119 | [email protected] | 1118 | [email protected] "let" |
1120 | [email protected] "let" | 1119 | [email protected] |
1121 | [email protected] | 1120 | [email protected] "mut" |
1122 | [email protected] "mut" | 1121 | [email protected] |
1123 | [email protected] | 1122 | [email protected] "v" |
1124 | [email protected] "v" | 1123 | [email protected] "=" |
1125 | [email protected] "=" | 1124 | [email protected] |
1126 | [email protected] | 1125 | [email protected] |
1127 | [email protected] | 1126 | [email protected] |
1128 | [email protected] | 1127 | [email protected] |
1129 | [email protected] | 1128 | [email protected] |
1130 | [email protected] | 1129 | [email protected] |
1131 | [email protected] | 1130 | [email protected] "Vec" |
1132 | [email protected] "Vec" | 1131 | [email protected] "::" |
1133 | [email protected] "::" | 1132 | [email protected] |
1134 | [email protected] | 1133 | [email protected] |
1135 | [email protected] | 1134 | [email protected] "new" |
1136 | [email protected] "new" | 1135 | [email protected] |
1137 | [email protected] | 1136 | [email protected] "(" |
1138 | [email protected] "(" | 1137 | [email protected] ")" |
1139 | [email protected] ")" | 1138 | [email protected] ";" |
1140 | [email protected] ";" | 1139 | [email protected] |
1141 | [email protected] | 1140 | [email protected] |
1142 | [email protected] | 1141 | [email protected] |
1143 | [email protected] | 1142 | [email protected] |
1144 | [email protected] | 1143 | [email protected] |
1145 | [email protected] | 1144 | [email protected] |
1146 | [email protected] | 1145 | [email protected] "v" |
1147 | [email protected] "v" | 1146 | [email protected] "." |
1148 | [email protected] "." | 1147 | [email protected] |
1149 | [email protected] | 1148 | [email protected] "push" |
1150 | [email protected] "push" | 1149 | [email protected] |
1151 | [email protected] | 1150 | [email protected] "(" |
1152 | [email protected] "(" | 1151 | [email protected] |
1153 | [email protected] | 1152 | [email protected] "1u32" |
1154 | [email protected] "1u32" | 1153 | [email protected] ")" |
1155 | [email protected] ")" | 1154 | [email protected] ";" |
1156 | [email protected] ";" | 1155 | [email protected] |
1157 | [email protected] | 1156 | [email protected] |
1158 | [email protected] | 1157 | [email protected] |
1159 | [email protected] | 1158 | [email protected] |
1160 | [email protected] | 1159 | [email protected] |
1161 | [email protected] | 1160 | [email protected] |
1162 | [email protected] | 1161 | [email protected] "v" |
1163 | [email protected] "v" | 1162 | [email protected] "." |
1164 | [email protected] "." | 1163 | [email protected] |
1165 | [email protected] | 1164 | [email protected] "push" |
1166 | [email protected] "push" | 1165 | [email protected] |
1167 | [email protected] | 1166 | [email protected] "(" |
1168 | [email protected] "(" | 1167 | [email protected] |
1169 | [email protected] | 1168 | [email protected] "2" |
1170 | [email protected] "2" | 1169 | [email protected] ")" |
1171 | [email protected] ")" | 1170 | [email protected] ";" |
1172 | [email protected] ";" | 1171 | [email protected] |
1173 | [email protected] | 1172 | [email protected] |
1174 | [email protected] | 1173 | [email protected] |
1175 | [email protected] | 1174 | [email protected] |
1176 | [email protected] | 1175 | [email protected] "v" |
1177 | [email protected] "v" | 1176 | [email protected] "}""# |
1178 | [email protected] "}""# | ||
1179 | ); | 1177 | ); |
1180 | } | 1178 | } |
1181 | 1179 | ||
diff --git a/crates/ra_parser/src/grammar.rs b/crates/ra_parser/src/grammar.rs index c2a6e82e9..be0cd5661 100644 --- a/crates/ra_parser/src/grammar.rs +++ b/crates/ra_parser/src/grammar.rs | |||
@@ -54,7 +54,7 @@ pub(crate) mod fragments { | |||
54 | use super::*; | 54 | use super::*; |
55 | 55 | ||
56 | pub(crate) use super::{ | 56 | pub(crate) use super::{ |
57 | expressions::block, paths::type_path as path, patterns::pattern, types::type_, | 57 | expressions::block_expr, paths::type_path as path, patterns::pattern, types::type_, |
58 | }; | 58 | }; |
59 | 59 | ||
60 | pub(crate) fn expr(p: &mut Parser) { | 60 | pub(crate) fn expr(p: &mut Parser) { |
@@ -143,7 +143,7 @@ pub(crate) fn reparser( | |||
143 | parent: Option<SyntaxKind>, | 143 | parent: Option<SyntaxKind>, |
144 | ) -> Option<fn(&mut Parser)> { | 144 | ) -> Option<fn(&mut Parser)> { |
145 | let res = match node { | 145 | let res = match node { |
146 | BLOCK => expressions::naked_block, | 146 | BLOCK_EXPR => expressions::block_expr, |
147 | RECORD_FIELD_DEF_LIST => items::record_field_def_list, | 147 | RECORD_FIELD_DEF_LIST => items::record_field_def_list, |
148 | RECORD_FIELD_LIST => items::record_field_list, | 148 | RECORD_FIELD_LIST => items::record_field_list, |
149 | ENUM_VARIANT_LIST => items::enum_variant_list, | 149 | ENUM_VARIANT_LIST => items::enum_variant_list, |
diff --git a/crates/ra_parser/src/grammar/expressions.rs b/crates/ra_parser/src/grammar/expressions.rs index cb30b25a8..34f039768 100644 --- a/crates/ra_parser/src/grammar/expressions.rs +++ b/crates/ra_parser/src/grammar/expressions.rs | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | mod atom; | 3 | mod atom; |
4 | 4 | ||
5 | pub(crate) use self::atom::match_arm_list; | 5 | pub(crate) use self::atom::{block_expr, match_arm_list}; |
6 | pub(super) use self::atom::{literal, LITERAL_FIRST}; | 6 | pub(super) use self::atom::{literal, LITERAL_FIRST}; |
7 | use super::*; | 7 | use super::*; |
8 | 8 | ||
@@ -49,28 +49,6 @@ fn expr_no_struct(p: &mut Parser) { | |||
49 | expr_bp(p, r, 1); | 49 | expr_bp(p, r, 1); |
50 | } | 50 | } |
51 | 51 | ||
52 | // test block | ||
53 | // fn a() {} | ||
54 | // fn b() { let _ = 1; } | ||
55 | // fn c() { 1; 2; } | ||
56 | // fn d() { 1; 2 } | ||
57 | pub(crate) fn block(p: &mut Parser) { | ||
58 | if !p.at(T!['{']) { | ||
59 | p.error("expected a block"); | ||
60 | return; | ||
61 | } | ||
62 | atom::block_expr(p, None); | ||
63 | } | ||
64 | |||
65 | pub(crate) fn naked_block(p: &mut Parser) { | ||
66 | assert!(p.at(T!['{'])); | ||
67 | let m = p.start(); | ||
68 | p.bump(T!['{']); | ||
69 | expr_block_contents(p); | ||
70 | p.expect(T!['}']); | ||
71 | m.complete(p, BLOCK); | ||
72 | } | ||
73 | |||
74 | fn is_expr_stmt_attr_allowed(kind: SyntaxKind) -> bool { | 52 | fn is_expr_stmt_attr_allowed(kind: SyntaxKind) -> bool { |
75 | match kind { | 53 | match kind { |
76 | BIN_EXPR | RANGE_EXPR | IF_EXPR => false, | 54 | BIN_EXPR | RANGE_EXPR | IF_EXPR => false, |
@@ -197,7 +175,7 @@ pub(super) fn stmt(p: &mut Parser, with_semi: StmtWithSemi) { | |||
197 | } | 175 | } |
198 | } | 176 | } |
199 | 177 | ||
200 | pub(crate) fn expr_block_contents(p: &mut Parser) { | 178 | pub(super) fn expr_block_contents(p: &mut Parser) { |
201 | // This is checked by a validator | 179 | // This is checked by a validator |
202 | attributes::inner_attributes(p); | 180 | attributes::inner_attributes(p); |
203 | 181 | ||
diff --git a/crates/ra_parser/src/grammar/expressions/atom.rs b/crates/ra_parser/src/grammar/expressions/atom.rs index 0d277a586..706a2f796 100644 --- a/crates/ra_parser/src/grammar/expressions/atom.rs +++ b/crates/ra_parser/src/grammar/expressions/atom.rs | |||
@@ -92,7 +92,12 @@ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMar | |||
92 | T![loop] => loop_expr(p, Some(m)), | 92 | T![loop] => loop_expr(p, Some(m)), |
93 | T![for] => for_expr(p, Some(m)), | 93 | T![for] => for_expr(p, Some(m)), |
94 | T![while] => while_expr(p, Some(m)), | 94 | T![while] => while_expr(p, Some(m)), |
95 | T!['{'] => block_expr(p, Some(m)), | 95 | // test labeled_block |
96 | // fn f() { 'label: {}; } | ||
97 | T!['{'] => { | ||
98 | block_expr(p); | ||
99 | m.complete(p, EFFECT_EXPR) | ||
100 | } | ||
96 | _ => { | 101 | _ => { |
97 | // test_err misplaced_label_err | 102 | // test_err misplaced_label_err |
98 | // fn main() { | 103 | // fn main() { |
@@ -108,13 +113,17 @@ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMar | |||
108 | let m = p.start(); | 113 | let m = p.start(); |
109 | p.bump(T![async]); | 114 | p.bump(T![async]); |
110 | p.eat(T![move]); | 115 | p.eat(T![move]); |
111 | block_expr(p, Some(m)) | 116 | block_expr(p); |
117 | m.complete(p, EFFECT_EXPR) | ||
112 | } | 118 | } |
113 | T![match] => match_expr(p), | 119 | T![match] => match_expr(p), |
120 | // test unsafe_block | ||
121 | // fn f() { unsafe { } } | ||
114 | T![unsafe] if la == T!['{'] => { | 122 | T![unsafe] if la == T!['{'] => { |
115 | let m = p.start(); | 123 | let m = p.start(); |
116 | p.bump(T![unsafe]); | 124 | p.bump(T![unsafe]); |
117 | block_expr(p, Some(m)) | 125 | block_expr(p); |
126 | m.complete(p, EFFECT_EXPR) | ||
118 | } | 127 | } |
119 | T!['{'] => { | 128 | T!['{'] => { |
120 | // test for_range_from | 129 | // test for_range_from |
@@ -123,7 +132,7 @@ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMar | |||
123 | // break; | 132 | // break; |
124 | // } | 133 | // } |
125 | // } | 134 | // } |
126 | block_expr(p, None) | 135 | block_expr_unchecked(p) |
127 | } | 136 | } |
128 | T![return] => return_expr(p), | 137 | T![return] => return_expr(p), |
129 | T![continue] => continue_expr(p), | 138 | T![continue] => continue_expr(p), |
@@ -134,7 +143,7 @@ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMar | |||
134 | } | 143 | } |
135 | }; | 144 | }; |
136 | let blocklike = match done.kind() { | 145 | let blocklike = match done.kind() { |
137 | IF_EXPR | WHILE_EXPR | FOR_EXPR | LOOP_EXPR | MATCH_EXPR | BLOCK_EXPR | TRY_BLOCK_EXPR => { | 146 | IF_EXPR | WHILE_EXPR | FOR_EXPR | LOOP_EXPR | MATCH_EXPR | BLOCK_EXPR | EFFECT_EXPR => { |
138 | BlockLike::Block | 147 | BlockLike::Block |
139 | } | 148 | } |
140 | _ => BlockLike::NotBlock, | 149 | _ => BlockLike::NotBlock, |
@@ -231,13 +240,9 @@ fn lambda_expr(p: &mut Parser) -> CompletedMarker { | |||
231 | p.eat(T![move]); | 240 | p.eat(T![move]); |
232 | params::param_list_closure(p); | 241 | params::param_list_closure(p); |
233 | if opt_fn_ret_type(p) { | 242 | if opt_fn_ret_type(p) { |
234 | if p.at(T!['{']) { | 243 | // test lambda_ret_block |
235 | // test lambda_ret_block | 244 | // fn main() { || -> i32 { 92 }(); } |
236 | // fn main() { || -> i32 { 92 }(); } | 245 | block_expr(p); |
237 | block_expr(p, None); | ||
238 | } else { | ||
239 | p.error("expected `{`"); | ||
240 | } | ||
241 | } else { | 246 | } else { |
242 | if p.at_ts(EXPR_FIRST) { | 247 | if p.at_ts(EXPR_FIRST) { |
243 | expr(p); | 248 | expr(p); |
@@ -261,13 +266,13 @@ fn if_expr(p: &mut Parser) -> CompletedMarker { | |||
261 | let m = p.start(); | 266 | let m = p.start(); |
262 | p.bump(T![if]); | 267 | p.bump(T![if]); |
263 | cond(p); | 268 | cond(p); |
264 | block(p); | 269 | block_expr(p); |
265 | if p.at(T![else]) { | 270 | if p.at(T![else]) { |
266 | p.bump(T![else]); | 271 | p.bump(T![else]); |
267 | if p.at(T![if]) { | 272 | if p.at(T![if]) { |
268 | if_expr(p); | 273 | if_expr(p); |
269 | } else { | 274 | } else { |
270 | block(p); | 275 | block_expr(p); |
271 | } | 276 | } |
272 | } | 277 | } |
273 | m.complete(p, IF_EXPR) | 278 | m.complete(p, IF_EXPR) |
@@ -295,7 +300,7 @@ fn loop_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker { | |||
295 | assert!(p.at(T![loop])); | 300 | assert!(p.at(T![loop])); |
296 | let m = m.unwrap_or_else(|| p.start()); | 301 | let m = m.unwrap_or_else(|| p.start()); |
297 | p.bump(T![loop]); | 302 | p.bump(T![loop]); |
298 | block(p); | 303 | block_expr(p); |
299 | m.complete(p, LOOP_EXPR) | 304 | m.complete(p, LOOP_EXPR) |
300 | } | 305 | } |
301 | 306 | ||
@@ -310,7 +315,7 @@ fn while_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker { | |||
310 | let m = m.unwrap_or_else(|| p.start()); | 315 | let m = m.unwrap_or_else(|| p.start()); |
311 | p.bump(T![while]); | 316 | p.bump(T![while]); |
312 | cond(p); | 317 | cond(p); |
313 | block(p); | 318 | block_expr(p); |
314 | m.complete(p, WHILE_EXPR) | 319 | m.complete(p, WHILE_EXPR) |
315 | } | 320 | } |
316 | 321 | ||
@@ -325,7 +330,7 @@ fn for_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker { | |||
325 | patterns::pattern(p); | 330 | patterns::pattern(p); |
326 | p.expect(T![in]); | 331 | p.expect(T![in]); |
327 | expr_no_struct(p); | 332 | expr_no_struct(p); |
328 | block(p); | 333 | block_expr(p); |
329 | m.complete(p, FOR_EXPR) | 334 | m.complete(p, FOR_EXPR) |
330 | } | 335 | } |
331 | 336 | ||
@@ -458,16 +463,25 @@ fn match_guard(p: &mut Parser) -> CompletedMarker { | |||
458 | m.complete(p, MATCH_GUARD) | 463 | m.complete(p, MATCH_GUARD) |
459 | } | 464 | } |
460 | 465 | ||
461 | // test block_expr | 466 | // test block |
462 | // fn foo() { | 467 | // fn a() {} |
463 | // {}; | 468 | // fn b() { let _ = 1; } |
464 | // unsafe {}; | 469 | // fn c() { 1; 2; } |
465 | // 'label: {}; | 470 | // fn d() { 1; 2 } |
466 | // } | 471 | pub(crate) fn block_expr(p: &mut Parser) { |
467 | pub(super) fn block_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker { | 472 | if !p.at(T!['{']) { |
473 | p.error("expected a block"); | ||
474 | return; | ||
475 | } | ||
476 | block_expr_unchecked(p); | ||
477 | } | ||
478 | |||
479 | fn block_expr_unchecked(p: &mut Parser) -> CompletedMarker { | ||
468 | assert!(p.at(T!['{'])); | 480 | assert!(p.at(T!['{'])); |
469 | let m = m.unwrap_or_else(|| p.start()); | 481 | let m = p.start(); |
470 | naked_block(p); | 482 | p.bump(T!['{']); |
483 | expr_block_contents(p); | ||
484 | p.expect(T!['}']); | ||
471 | m.complete(p, BLOCK_EXPR) | 485 | m.complete(p, BLOCK_EXPR) |
472 | } | 486 | } |
473 | 487 | ||
@@ -535,9 +549,25 @@ fn break_expr(p: &mut Parser, r: Restrictions) -> CompletedMarker { | |||
535 | fn try_block_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker { | 549 | fn try_block_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker { |
536 | assert!(p.at(T![try])); | 550 | assert!(p.at(T![try])); |
537 | let m = m.unwrap_or_else(|| p.start()); | 551 | let m = m.unwrap_or_else(|| p.start()); |
552 | // Special-case `try!` as macro. | ||
553 | // This is a hack until we do proper edition support | ||
554 | if p.nth_at(1, T![!]) { | ||
555 | // test try_macro_fallback | ||
556 | // fn foo() { try!(Ok(())); } | ||
557 | let path = p.start(); | ||
558 | let path_segment = p.start(); | ||
559 | let name_ref = p.start(); | ||
560 | p.bump_remap(IDENT); | ||
561 | name_ref.complete(p, NAME_REF); | ||
562 | path_segment.complete(p, PATH_SEGMENT); | ||
563 | path.complete(p, PATH); | ||
564 | let _block_like = items::macro_call_after_excl(p); | ||
565 | return m.complete(p, MACRO_CALL); | ||
566 | } | ||
567 | |||
538 | p.bump(T![try]); | 568 | p.bump(T![try]); |
539 | block(p); | 569 | block_expr(p); |
540 | m.complete(p, TRY_EXPR) | 570 | m.complete(p, EFFECT_EXPR) |
541 | } | 571 | } |
542 | 572 | ||
543 | // test box_expr | 573 | // test box_expr |
diff --git a/crates/ra_parser/src/grammar/items.rs b/crates/ra_parser/src/grammar/items.rs index 433ed6812..67a924de5 100644 --- a/crates/ra_parser/src/grammar/items.rs +++ b/crates/ra_parser/src/grammar/items.rs | |||
@@ -329,7 +329,7 @@ fn fn_def(p: &mut Parser) { | |||
329 | if p.at(T![;]) { | 329 | if p.at(T![;]) { |
330 | p.bump(T![;]); | 330 | p.bump(T![;]); |
331 | } else { | 331 | } else { |
332 | expressions::block(p) | 332 | expressions::block_expr(p) |
333 | } | 333 | } |
334 | } | 334 | } |
335 | 335 | ||
@@ -415,6 +415,17 @@ pub(super) fn macro_call_after_excl(p: &mut Parser) -> BlockLike { | |||
415 | if p.at(IDENT) { | 415 | if p.at(IDENT) { |
416 | name(p); | 416 | name(p); |
417 | } | 417 | } |
418 | // Special-case `macro_rules! try`. | ||
419 | // This is a hack until we do proper edition support | ||
420 | |||
421 | // test try_macro_rules | ||
422 | // macro_rules! try { () => {} } | ||
423 | if p.at(T![try]) { | ||
424 | let m = p.start(); | ||
425 | p.bump_remap(IDENT); | ||
426 | m.complete(p, NAME); | ||
427 | } | ||
428 | |||
418 | match p.current() { | 429 | match p.current() { |
419 | T!['{'] => { | 430 | T!['{'] => { |
420 | token_tree(p); | 431 | token_tree(p); |
diff --git a/crates/ra_parser/src/grammar/items/use_item.rs b/crates/ra_parser/src/grammar/items/use_item.rs index e3b991c8c..3a0c7a31a 100644 --- a/crates/ra_parser/src/grammar/items/use_item.rs +++ b/crates/ra_parser/src/grammar/items/use_item.rs | |||
@@ -47,7 +47,7 @@ fn use_tree(p: &mut Parser, top_level: bool) { | |||
47 | // use {crate::path::from::root, or::path::from::crate_name}; // Rust 2018 (with a crate named `or`) | 47 | // use {crate::path::from::root, or::path::from::crate_name}; // Rust 2018 (with a crate named `or`) |
48 | // use {path::from::root}; // Rust 2015 | 48 | // use {path::from::root}; // Rust 2015 |
49 | // use ::{some::arbritrary::path}; // Rust 2015 | 49 | // use ::{some::arbritrary::path}; // Rust 2015 |
50 | // use ::{{{crate::export}}}; // Nonsensical but perfectly legal nestnig | 50 | // use ::{{{root::export}}}; // Nonsensical but perfectly legal nesting |
51 | T!['{'] => { | 51 | T!['{'] => { |
52 | use_tree_list(p); | 52 | use_tree_list(p); |
53 | } | 53 | } |
diff --git a/crates/ra_parser/src/grammar/type_args.rs b/crates/ra_parser/src/grammar/type_args.rs index 33d9973e9..2d61f9d80 100644 --- a/crates/ra_parser/src/grammar/type_args.rs +++ b/crates/ra_parser/src/grammar/type_args.rs | |||
@@ -48,7 +48,7 @@ fn type_arg(p: &mut Parser) { | |||
48 | m.complete(p, ASSOC_TYPE_ARG); | 48 | m.complete(p, ASSOC_TYPE_ARG); |
49 | } | 49 | } |
50 | T!['{'] => { | 50 | T!['{'] => { |
51 | expressions::block(p); | 51 | expressions::block_expr(p); |
52 | m.complete(p, CONST_ARG); | 52 | m.complete(p, CONST_ARG); |
53 | } | 53 | } |
54 | k if k.is_literal() => { | 54 | k if k.is_literal() => { |
diff --git a/crates/ra_parser/src/lib.rs b/crates/ra_parser/src/lib.rs index 652492c1e..e08ad4dae 100644 --- a/crates/ra_parser/src/lib.rs +++ b/crates/ra_parser/src/lib.rs | |||
@@ -112,7 +112,7 @@ pub fn parse_fragment( | |||
112 | FragmentKind::Type => grammar::fragments::type_, | 112 | FragmentKind::Type => grammar::fragments::type_, |
113 | FragmentKind::Pattern => grammar::fragments::pattern, | 113 | FragmentKind::Pattern => grammar::fragments::pattern, |
114 | FragmentKind::Item => grammar::fragments::item, | 114 | FragmentKind::Item => grammar::fragments::item, |
115 | FragmentKind::Block => grammar::fragments::block, | 115 | FragmentKind::Block => grammar::fragments::block_expr, |
116 | FragmentKind::Visibility => grammar::fragments::opt_visibility, | 116 | FragmentKind::Visibility => grammar::fragments::opt_visibility, |
117 | FragmentKind::MetaItem => grammar::fragments::meta_item, | 117 | FragmentKind::MetaItem => grammar::fragments::meta_item, |
118 | FragmentKind::Statement => grammar::fragments::stmt, | 118 | FragmentKind::Statement => grammar::fragments::stmt, |
diff --git a/crates/ra_parser/src/syntax_kind/generated.rs b/crates/ra_parser/src/syntax_kind/generated.rs index 524e7d784..e7404492a 100644 --- a/crates/ra_parser/src/syntax_kind/generated.rs +++ b/crates/ra_parser/src/syntax_kind/generated.rs | |||
@@ -191,7 +191,7 @@ pub enum SyntaxKind { | |||
191 | RECORD_LIT, | 191 | RECORD_LIT, |
192 | RECORD_FIELD_LIST, | 192 | RECORD_FIELD_LIST, |
193 | RECORD_FIELD, | 193 | RECORD_FIELD, |
194 | TRY_BLOCK_EXPR, | 194 | EFFECT_EXPR, |
195 | BOX_EXPR, | 195 | BOX_EXPR, |
196 | CALL_EXPR, | 196 | CALL_EXPR, |
197 | INDEX_EXPR, | 197 | INDEX_EXPR, |
@@ -204,7 +204,6 @@ pub enum SyntaxKind { | |||
204 | PREFIX_EXPR, | 204 | PREFIX_EXPR, |
205 | RANGE_EXPR, | 205 | RANGE_EXPR, |
206 | BIN_EXPR, | 206 | BIN_EXPR, |
207 | BLOCK, | ||
208 | EXTERN_BLOCK, | 207 | EXTERN_BLOCK, |
209 | EXTERN_ITEM_LIST, | 208 | EXTERN_ITEM_LIST, |
210 | ENUM_VARIANT, | 209 | ENUM_VARIANT, |
diff --git a/crates/ra_proc_macro_srv/Cargo.toml b/crates/ra_proc_macro_srv/Cargo.toml index ac2d156dc..886e14870 100644 --- a/crates/ra_proc_macro_srv/Cargo.toml +++ b/crates/ra_proc_macro_srv/Cargo.toml | |||
@@ -21,4 +21,4 @@ test_utils = { path = "../test_utils" } | |||
21 | cargo_metadata = "0.9.1" | 21 | cargo_metadata = "0.9.1" |
22 | difference = "2.0.0" | 22 | difference = "2.0.0" |
23 | # used as proc macro test target | 23 | # used as proc macro test target |
24 | serde_derive = "=1.0.104" | 24 | serde_derive = "=1.0.106" |
diff --git a/crates/ra_proc_macro_srv/src/cli.rs b/crates/ra_proc_macro_srv/src/cli.rs index 7282e5b9b..1437794c9 100644 --- a/crates/ra_proc_macro_srv/src/cli.rs +++ b/crates/ra_proc_macro_srv/src/cli.rs | |||
@@ -1,15 +1,17 @@ | |||
1 | //! Driver for proc macro server | 1 | //! Driver for proc macro server |
2 | 2 | ||
3 | use crate::{expand_task, list_macros}; | 3 | use crate::ProcMacroSrv; |
4 | use ra_proc_macro::msg::{self, Message}; | 4 | use ra_proc_macro::msg::{self, Message}; |
5 | use std::io; | 5 | use std::io; |
6 | 6 | ||
7 | pub fn run() -> io::Result<()> { | 7 | pub fn run() -> io::Result<()> { |
8 | let mut srv = ProcMacroSrv::default(); | ||
9 | |||
8 | while let Some(req) = read_request()? { | 10 | while let Some(req) = read_request()? { |
9 | let res = match req { | 11 | let res = match req { |
10 | msg::Request::ListMacro(task) => Ok(msg::Response::ListMacro(list_macros(&task))), | 12 | msg::Request::ListMacro(task) => srv.list_macros(&task).map(msg::Response::ListMacro), |
11 | msg::Request::ExpansionMacro(task) => { | 13 | msg::Request::ExpansionMacro(task) => { |
12 | expand_task(&task).map(msg::Response::ExpansionMacro) | 14 | srv.expand(&task).map(msg::Response::ExpansionMacro) |
13 | } | 15 | } |
14 | }; | 16 | }; |
15 | 17 | ||
diff --git a/crates/ra_proc_macro_srv/src/dylib.rs b/crates/ra_proc_macro_srv/src/dylib.rs index d202eb0fd..aa84e951c 100644 --- a/crates/ra_proc_macro_srv/src/dylib.rs +++ b/crates/ra_proc_macro_srv/src/dylib.rs | |||
@@ -2,13 +2,12 @@ | |||
2 | 2 | ||
3 | use crate::{proc_macro::bridge, rustc_server::TokenStream}; | 3 | use crate::{proc_macro::bridge, rustc_server::TokenStream}; |
4 | use std::fs::File; | 4 | use std::fs::File; |
5 | use std::path::Path; | 5 | use std::path::{Path, PathBuf}; |
6 | 6 | ||
7 | use goblin::{mach::Mach, Object}; | 7 | use goblin::{mach::Mach, Object}; |
8 | use libloading::Library; | 8 | use libloading::Library; |
9 | use memmap::Mmap; | 9 | use memmap::Mmap; |
10 | use ra_proc_macro::ProcMacroKind; | 10 | use ra_proc_macro::ProcMacroKind; |
11 | |||
12 | use std::io; | 11 | use std::io; |
13 | 12 | ||
14 | const NEW_REGISTRAR_SYMBOL: &str = "_rustc_proc_macro_decls_"; | 13 | const NEW_REGISTRAR_SYMBOL: &str = "_rustc_proc_macro_decls_"; |
@@ -109,23 +108,21 @@ impl ProcMacroLibraryLibloading { | |||
109 | } | 108 | } |
110 | } | 109 | } |
111 | 110 | ||
112 | type ProcMacroLibraryImpl = ProcMacroLibraryLibloading; | ||
113 | |||
114 | pub struct Expander { | 111 | pub struct Expander { |
115 | libs: Vec<ProcMacroLibraryImpl>, | 112 | inner: ProcMacroLibraryLibloading, |
116 | } | 113 | } |
117 | 114 | ||
118 | impl Expander { | 115 | impl Expander { |
119 | pub fn new(lib: &Path) -> Result<Expander, String> { | 116 | pub fn new(lib: &Path) -> io::Result<Expander> { |
120 | // Some libraries for dynamic loading require canonicalized path even when it is | 117 | // Some libraries for dynamic loading require canonicalized path even when it is |
121 | // already absolute | 118 | // already absolute |
122 | let lib = lib | 119 | let lib = lib.canonicalize()?; |
123 | .canonicalize() | 120 | |
124 | .unwrap_or_else(|err| panic!("Cannot canonicalize {}: {:?}", lib.display(), err)); | 121 | let lib = ensure_file_with_lock_free_access(&lib)?; |
125 | 122 | ||
126 | let library = ProcMacroLibraryImpl::open(&lib).map_err(|e| e.to_string())?; | 123 | let library = ProcMacroLibraryLibloading::open(&lib)?; |
127 | 124 | ||
128 | Ok(Expander { libs: vec![library] }) | 125 | Ok(Expander { inner: library }) |
129 | } | 126 | } |
130 | 127 | ||
131 | pub fn expand( | 128 | pub fn expand( |
@@ -141,38 +138,36 @@ impl Expander { | |||
141 | TokenStream::with_subtree(attr.clone()) | 138 | TokenStream::with_subtree(attr.clone()) |
142 | }); | 139 | }); |
143 | 140 | ||
144 | for lib in &self.libs { | 141 | for proc_macro in &self.inner.exported_macros { |
145 | for proc_macro in &lib.exported_macros { | 142 | match proc_macro { |
146 | match proc_macro { | 143 | bridge::client::ProcMacro::CustomDerive { trait_name, client, .. } |
147 | bridge::client::ProcMacro::CustomDerive { trait_name, client, .. } | 144 | if *trait_name == macro_name => |
148 | if *trait_name == macro_name => | 145 | { |
149 | { | 146 | let res = client.run( |
150 | let res = client.run( | 147 | &crate::proc_macro::bridge::server::SameThread, |
151 | &crate::proc_macro::bridge::server::SameThread, | 148 | crate::rustc_server::Rustc::default(), |
152 | crate::rustc_server::Rustc::default(), | 149 | parsed_body, |
153 | parsed_body, | 150 | ); |
154 | ); | 151 | return res.map(|it| it.subtree); |
155 | return res.map(|it| it.subtree); | 152 | } |
156 | } | 153 | bridge::client::ProcMacro::Bang { name, client } if *name == macro_name => { |
157 | bridge::client::ProcMacro::Bang { name, client } if *name == macro_name => { | 154 | let res = client.run( |
158 | let res = client.run( | 155 | &crate::proc_macro::bridge::server::SameThread, |
159 | &crate::proc_macro::bridge::server::SameThread, | 156 | crate::rustc_server::Rustc::default(), |
160 | crate::rustc_server::Rustc::default(), | 157 | parsed_body, |
161 | parsed_body, | 158 | ); |
162 | ); | 159 | return res.map(|it| it.subtree); |
163 | return res.map(|it| it.subtree); | 160 | } |
164 | } | 161 | bridge::client::ProcMacro::Attr { name, client } if *name == macro_name => { |
165 | bridge::client::ProcMacro::Attr { name, client } if *name == macro_name => { | 162 | let res = client.run( |
166 | let res = client.run( | 163 | &crate::proc_macro::bridge::server::SameThread, |
167 | &crate::proc_macro::bridge::server::SameThread, | 164 | crate::rustc_server::Rustc::default(), |
168 | crate::rustc_server::Rustc::default(), | 165 | parsed_attributes, |
169 | parsed_attributes, | 166 | parsed_body, |
170 | parsed_body, | 167 | ); |
171 | ); | 168 | return res.map(|it| it.subtree); |
172 | return res.map(|it| it.subtree); | ||
173 | } | ||
174 | _ => continue, | ||
175 | } | 169 | } |
170 | _ => continue, | ||
176 | } | 171 | } |
177 | } | 172 | } |
178 | 173 | ||
@@ -180,9 +175,9 @@ impl Expander { | |||
180 | } | 175 | } |
181 | 176 | ||
182 | pub fn list_macros(&self) -> Vec<(String, ProcMacroKind)> { | 177 | pub fn list_macros(&self) -> Vec<(String, ProcMacroKind)> { |
183 | self.libs | 178 | self.inner |
179 | .exported_macros | ||
184 | .iter() | 180 | .iter() |
185 | .flat_map(|it| &it.exported_macros) | ||
186 | .map(|proc_macro| match proc_macro { | 181 | .map(|proc_macro| match proc_macro { |
187 | bridge::client::ProcMacro::CustomDerive { trait_name, .. } => { | 182 | bridge::client::ProcMacro::CustomDerive { trait_name, .. } => { |
188 | (trait_name.to_string(), ProcMacroKind::CustomDerive) | 183 | (trait_name.to_string(), ProcMacroKind::CustomDerive) |
@@ -197,3 +192,33 @@ impl Expander { | |||
197 | .collect() | 192 | .collect() |
198 | } | 193 | } |
199 | } | 194 | } |
195 | |||
196 | /// Copy the dylib to temp directory to prevent locking in Windows | ||
197 | #[cfg(windows)] | ||
198 | fn ensure_file_with_lock_free_access(path: &Path) -> io::Result<PathBuf> { | ||
199 | use std::{ffi::OsString, time::SystemTime}; | ||
200 | |||
201 | let mut to = std::env::temp_dir(); | ||
202 | |||
203 | let file_name = path.file_name().ok_or_else(|| { | ||
204 | io::Error::new( | ||
205 | io::ErrorKind::InvalidInput, | ||
206 | format!("File path is invalid: {}", path.display()), | ||
207 | ) | ||
208 | })?; | ||
209 | |||
210 | // generate a time deps unique number | ||
211 | let t = SystemTime::now().duration_since(std::time::UNIX_EPOCH).expect("Time went backwards"); | ||
212 | |||
213 | let mut unique_name = OsString::from(t.as_millis().to_string()); | ||
214 | unique_name.push(file_name); | ||
215 | |||
216 | to.push(unique_name); | ||
217 | std::fs::copy(path, &to).unwrap(); | ||
218 | Ok(to) | ||
219 | } | ||
220 | |||
221 | #[cfg(unix)] | ||
222 | fn ensure_file_with_lock_free_access(path: &Path) -> io::Result<PathBuf> { | ||
223 | Ok(path.to_path_buf()) | ||
224 | } | ||
diff --git a/crates/ra_proc_macro_srv/src/lib.rs b/crates/ra_proc_macro_srv/src/lib.rs index 3aca859db..922bb84bb 100644 --- a/crates/ra_proc_macro_srv/src/lib.rs +++ b/crates/ra_proc_macro_srv/src/lib.rs | |||
@@ -21,28 +21,46 @@ mod dylib; | |||
21 | 21 | ||
22 | use proc_macro::bridge::client::TokenStream; | 22 | use proc_macro::bridge::client::TokenStream; |
23 | use ra_proc_macro::{ExpansionResult, ExpansionTask, ListMacrosResult, ListMacrosTask}; | 23 | use ra_proc_macro::{ExpansionResult, ExpansionTask, ListMacrosResult, ListMacrosTask}; |
24 | use std::path::Path; | 24 | use std::{ |
25 | collections::{hash_map::Entry, HashMap}, | ||
26 | fs, | ||
27 | path::{Path, PathBuf}, | ||
28 | time::SystemTime, | ||
29 | }; | ||
25 | 30 | ||
26 | pub(crate) fn expand_task(task: &ExpansionTask) -> Result<ExpansionResult, String> { | 31 | #[derive(Default)] |
27 | let expander = create_expander(&task.lib); | 32 | pub(crate) struct ProcMacroSrv { |
33 | expanders: HashMap<(PathBuf, SystemTime), dylib::Expander>, | ||
34 | } | ||
28 | 35 | ||
29 | match expander.expand(&task.macro_name, &task.macro_body, task.attributes.as_ref()) { | 36 | impl ProcMacroSrv { |
30 | Ok(expansion) => Ok(ExpansionResult { expansion }), | 37 | pub fn expand(&mut self, task: &ExpansionTask) -> Result<ExpansionResult, String> { |
31 | Err(msg) => { | 38 | let expander = self.expander(&task.lib)?; |
32 | Err(format!("Cannot perform expansion for {}: error {:?}", &task.macro_name, msg)) | 39 | match expander.expand(&task.macro_name, &task.macro_body, task.attributes.as_ref()) { |
40 | Ok(expansion) => Ok(ExpansionResult { expansion }), | ||
41 | Err(msg) => { | ||
42 | Err(format!("Cannot perform expansion for {}: error {:?}", &task.macro_name, msg)) | ||
43 | } | ||
33 | } | 44 | } |
34 | } | 45 | } |
35 | } | ||
36 | 46 | ||
37 | pub(crate) fn list_macros(task: &ListMacrosTask) -> ListMacrosResult { | 47 | pub fn list_macros(&mut self, task: &ListMacrosTask) -> Result<ListMacrosResult, String> { |
38 | let expander = create_expander(&task.lib); | 48 | let expander = self.expander(&task.lib)?; |
49 | Ok(ListMacrosResult { macros: expander.list_macros() }) | ||
50 | } | ||
39 | 51 | ||
40 | ListMacrosResult { macros: expander.list_macros() } | 52 | fn expander(&mut self, path: &Path) -> Result<&dylib::Expander, String> { |
41 | } | 53 | let time = fs::metadata(path).and_then(|it| it.modified()).map_err(|err| { |
54 | format!("Failed to get file metadata for {}: {:?}", path.display(), err) | ||
55 | })?; | ||
42 | 56 | ||
43 | fn create_expander(lib: &Path) -> dylib::Expander { | 57 | Ok(match self.expanders.entry((path.to_path_buf(), time)) { |
44 | dylib::Expander::new(lib) | 58 | Entry::Vacant(v) => v.insert(dylib::Expander::new(path).map_err(|err| { |
45 | .unwrap_or_else(|err| panic!("Cannot create expander for {}: {:?}", lib.display(), err)) | 59 | format!("Cannot create expander for {}: {:?}", path.display(), err) |
60 | })?), | ||
61 | Entry::Occupied(e) => e.into_mut(), | ||
62 | }) | ||
63 | } | ||
46 | } | 64 | } |
47 | 65 | ||
48 | pub mod cli; | 66 | pub mod cli; |
diff --git a/crates/ra_proc_macro_srv/src/tests/fixtures/test_serialize_proc_macro.txt b/crates/ra_proc_macro_srv/src/tests/fixtures/test_serialize_proc_macro.txt index 1f5d940fa..6776f5231 100644 --- a/crates/ra_proc_macro_srv/src/tests/fixtures/test_serialize_proc_macro.txt +++ b/crates/ra_proc_macro_srv/src/tests/fixtures/test_serialize_proc_macro.txt | |||
@@ -1,6 +1,11 @@ | |||
1 | SUBTREE $ | 1 | SUBTREE $ |
2 | PUNCH # [alone] 4294967295 | 2 | PUNCH # [alone] 4294967295 |
3 | SUBTREE [] 4294967295 | 3 | SUBTREE [] 4294967295 |
4 | IDENT doc 4294967295 | ||
5 | SUBTREE () 4294967295 | ||
6 | IDENT hidden 4294967295 | ||
7 | PUNCH # [alone] 4294967295 | ||
8 | SUBTREE [] 4294967295 | ||
4 | IDENT allow 4294967295 | 9 | IDENT allow 4294967295 |
5 | SUBTREE () 4294967295 | 10 | SUBTREE () 4294967295 |
6 | IDENT non_upper_case_globals 4294967295 | 11 | IDENT non_upper_case_globals 4294967295 |
@@ -184,4 +189,4 @@ SUBTREE $ | |||
184 | IDENT end 4294967295 | 189 | IDENT end 4294967295 |
185 | SUBTREE () 4294967295 | 190 | SUBTREE () 4294967295 |
186 | IDENT __serde_state 4294967295 | 191 | IDENT __serde_state 4294967295 |
187 | PUNCH ; [alone] 4294967295 \ No newline at end of file | 192 | PUNCH ; [alone] 4294967295 |
diff --git a/crates/ra_proc_macro_srv/src/tests/mod.rs b/crates/ra_proc_macro_srv/src/tests/mod.rs index 03f79bc5d..9cf58511c 100644 --- a/crates/ra_proc_macro_srv/src/tests/mod.rs +++ b/crates/ra_proc_macro_srv/src/tests/mod.rs | |||
@@ -10,7 +10,7 @@ fn test_derive_serialize_proc_macro() { | |||
10 | assert_expand( | 10 | assert_expand( |
11 | "serde_derive", | 11 | "serde_derive", |
12 | "Serialize", | 12 | "Serialize", |
13 | "1.0.104", | 13 | "1.0.106", |
14 | r##"struct Foo {}"##, | 14 | r##"struct Foo {}"##, |
15 | include_str!("fixtures/test_serialize_proc_macro.txt"), | 15 | include_str!("fixtures/test_serialize_proc_macro.txt"), |
16 | ); | 16 | ); |
@@ -21,7 +21,7 @@ fn test_derive_serialize_proc_macro_failed() { | |||
21 | assert_expand( | 21 | assert_expand( |
22 | "serde_derive", | 22 | "serde_derive", |
23 | "Serialize", | 23 | "Serialize", |
24 | "1.0.104", | 24 | "1.0.106", |
25 | r##" | 25 | r##" |
26 | struct {} | 26 | struct {} |
27 | "##, | 27 | "##, |
@@ -37,7 +37,7 @@ SUBTREE $ | |||
37 | 37 | ||
38 | #[test] | 38 | #[test] |
39 | fn test_derive_proc_macro_list() { | 39 | fn test_derive_proc_macro_list() { |
40 | let res = list("serde_derive", "1.0.104").join("\n"); | 40 | let res = list("serde_derive", "1.0.106").join("\n"); |
41 | 41 | ||
42 | assert_eq_text!( | 42 | assert_eq_text!( |
43 | &res, | 43 | &res, |
diff --git a/crates/ra_proc_macro_srv/src/tests/utils.rs b/crates/ra_proc_macro_srv/src/tests/utils.rs index 2139ec7a4..646a427c5 100644 --- a/crates/ra_proc_macro_srv/src/tests/utils.rs +++ b/crates/ra_proc_macro_srv/src/tests/utils.rs | |||
@@ -1,7 +1,7 @@ | |||
1 | //! utils used in proc-macro tests | 1 | //! utils used in proc-macro tests |
2 | 2 | ||
3 | use crate::dylib; | 3 | use crate::dylib; |
4 | use crate::list_macros; | 4 | use crate::ProcMacroSrv; |
5 | pub use difference::Changeset as __Changeset; | 5 | pub use difference::Changeset as __Changeset; |
6 | use ra_proc_macro::ListMacrosTask; | 6 | use ra_proc_macro::ListMacrosTask; |
7 | use std::str::FromStr; | 7 | use std::str::FromStr; |
@@ -59,7 +59,7 @@ pub fn assert_expand( | |||
59 | pub fn list(crate_name: &str, version: &str) -> Vec<String> { | 59 | pub fn list(crate_name: &str, version: &str) -> Vec<String> { |
60 | let path = fixtures::dylib_path(crate_name, version); | 60 | let path = fixtures::dylib_path(crate_name, version); |
61 | let task = ListMacrosTask { lib: path }; | 61 | let task = ListMacrosTask { lib: path }; |
62 | 62 | let mut srv = ProcMacroSrv::default(); | |
63 | let res = list_macros(&task); | 63 | let res = srv.list_macros(&task).unwrap(); |
64 | res.macros.into_iter().map(|(name, kind)| format!("{} [{:?}]", name, kind)).collect() | 64 | res.macros.into_iter().map(|(name, kind)| format!("{} [{:?}]", name, kind)).collect() |
65 | } | 65 | } |
diff --git a/crates/ra_prof/src/hprof.rs b/crates/ra_prof/src/hprof.rs index 2b8a90363..a3f5321fb 100644 --- a/crates/ra_prof/src/hprof.rs +++ b/crates/ra_prof/src/hprof.rs | |||
@@ -30,8 +30,9 @@ pub fn init_from(spec: &str) { | |||
30 | pub type Label = &'static str; | 30 | pub type Label = &'static str; |
31 | 31 | ||
32 | /// This function starts a profiling scope in the current execution stack with a given description. | 32 | /// This function starts a profiling scope in the current execution stack with a given description. |
33 | /// It returns a Profile structure and measure elapsed time between this method invocation and Profile structure drop. | 33 | /// It returns a `Profile` struct that measures elapsed time between this method invocation and `Profile` struct drop. |
34 | /// It supports nested profiling scopes in case when this function invoked multiple times at the execution stack. In this case the profiling information will be nested at the output. | 34 | /// It supports nested profiling scopes in case when this function is invoked multiple times at the execution stack. |
35 | /// In this case the profiling information will be nested at the output. | ||
35 | /// Profiling information is being printed in the stderr. | 36 | /// Profiling information is being printed in the stderr. |
36 | /// | 37 | /// |
37 | /// # Example | 38 | /// # Example |
@@ -58,36 +59,35 @@ pub type Label = &'static str; | |||
58 | /// ``` | 59 | /// ``` |
59 | pub fn profile(label: Label) -> Profiler { | 60 | pub fn profile(label: Label) -> Profiler { |
60 | assert!(!label.is_empty()); | 61 | assert!(!label.is_empty()); |
61 | let enabled = PROFILING_ENABLED.load(Ordering::Relaxed) | 62 | |
62 | && PROFILE_STACK.with(|stack| stack.borrow_mut().push(label)); | 63 | if PROFILING_ENABLED.load(Ordering::Relaxed) |
63 | let label = if enabled { Some(label) } else { None }; | 64 | && PROFILE_STACK.with(|stack| stack.borrow_mut().push(label)) |
64 | Profiler { label, detail: None } | 65 | { |
66 | Profiler(Some(ProfilerImpl { label, detail: None })) | ||
67 | } else { | ||
68 | Profiler(None) | ||
69 | } | ||
65 | } | 70 | } |
66 | 71 | ||
67 | pub struct Profiler { | 72 | pub struct Profiler(Option<ProfilerImpl>); |
68 | label: Option<Label>, | 73 | |
74 | struct ProfilerImpl { | ||
75 | label: Label, | ||
69 | detail: Option<String>, | 76 | detail: Option<String>, |
70 | } | 77 | } |
71 | 78 | ||
72 | impl Profiler { | 79 | impl Profiler { |
73 | pub fn detail(mut self, detail: impl FnOnce() -> String) -> Profiler { | 80 | pub fn detail(mut self, detail: impl FnOnce() -> String) -> Profiler { |
74 | if self.label.is_some() { | 81 | if let Some(profiler) = &mut self.0 { |
75 | self.detail = Some(detail()) | 82 | profiler.detail = Some(detail()) |
76 | } | 83 | } |
77 | self | 84 | self |
78 | } | 85 | } |
79 | } | 86 | } |
80 | 87 | ||
81 | impl Drop for Profiler { | 88 | impl Drop for ProfilerImpl { |
82 | fn drop(&mut self) { | 89 | fn drop(&mut self) { |
83 | match self { | 90 | PROFILE_STACK.with(|it| it.borrow_mut().pop(self.label, self.detail.take())); |
84 | Profiler { label: Some(label), detail } => { | ||
85 | PROFILE_STACK.with(|stack| { | ||
86 | stack.borrow_mut().pop(label, detail.take()); | ||
87 | }); | ||
88 | } | ||
89 | Profiler { label: None, .. } => (), | ||
90 | } | ||
91 | } | 91 | } |
92 | } | 92 | } |
93 | 93 | ||
@@ -179,21 +179,18 @@ impl ProfileStack { | |||
179 | pub fn pop(&mut self, label: Label, detail: Option<String>) { | 179 | pub fn pop(&mut self, label: Label, detail: Option<String>) { |
180 | let start = self.starts.pop().unwrap(); | 180 | let start = self.starts.pop().unwrap(); |
181 | let duration = start.elapsed(); | 181 | let duration = start.elapsed(); |
182 | let level = self.starts.len(); | ||
183 | self.messages.finish(Message { duration, label, detail }); | 182 | self.messages.finish(Message { duration, label, detail }); |
184 | if level == 0 { | 183 | if self.starts.is_empty() { |
185 | let longer_than = self.filter.longer_than; | 184 | let longer_than = self.filter.longer_than; |
186 | // Convert to millis for comparison to avoid problems with rounding | 185 | // Convert to millis for comparison to avoid problems with rounding |
187 | // (otherwise we could print `0ms` despite user's `>0` filter when | 186 | // (otherwise we could print `0ms` despite user's `>0` filter when |
188 | // `duration` is just a few nanos). | 187 | // `duration` is just a few nanos). |
189 | if duration.as_millis() > longer_than.as_millis() { | 188 | if duration.as_millis() > longer_than.as_millis() { |
190 | let stderr = stderr(); | ||
191 | if let Some(root) = self.messages.root() { | 189 | if let Some(root) = self.messages.root() { |
192 | print(&self.messages, root, 0, longer_than, &mut stderr.lock()); | 190 | print(&self.messages, root, 0, longer_than, &mut stderr().lock()); |
193 | } | 191 | } |
194 | } | 192 | } |
195 | self.messages.clear(); | 193 | self.messages.clear(); |
196 | assert!(self.starts.is_empty()) | ||
197 | } | 194 | } |
198 | } | 195 | } |
199 | } | 196 | } |
diff --git a/crates/ra_project_model/Cargo.toml b/crates/ra_project_model/Cargo.toml index b10644b4b..5e651fe70 100644 --- a/crates/ra_project_model/Cargo.toml +++ b/crates/ra_project_model/Cargo.toml | |||
@@ -18,7 +18,7 @@ ra_db = { path = "../ra_db" } | |||
18 | ra_cfg = { path = "../ra_cfg" } | 18 | ra_cfg = { path = "../ra_cfg" } |
19 | ra_proc_macro = { path = "../ra_proc_macro" } | 19 | ra_proc_macro = { path = "../ra_proc_macro" } |
20 | 20 | ||
21 | serde = { version = "1.0.104", features = ["derive"] } | 21 | serde = { version = "1.0.106", features = ["derive"] } |
22 | serde_json = "1.0.48" | 22 | serde_json = "1.0.48" |
23 | 23 | ||
24 | anyhow = "1.0.26" | 24 | anyhow = "1.0.26" |
diff --git a/crates/ra_syntax/Cargo.toml b/crates/ra_syntax/Cargo.toml index 7ffe46c69..c07ff488e 100644 --- a/crates/ra_syntax/Cargo.toml +++ b/crates/ra_syntax/Cargo.toml | |||
@@ -13,7 +13,7 @@ doctest = false | |||
13 | [dependencies] | 13 | [dependencies] |
14 | itertools = "0.9.0" | 14 | itertools = "0.9.0" |
15 | rowan = "0.10.0" | 15 | rowan = "0.10.0" |
16 | rustc_lexer = { version = "652.0.0", package = "rustc-ap-rustc_lexer" } | 16 | rustc_lexer = { version = "656.0.0", package = "rustc-ap-rustc_lexer" } |
17 | rustc-hash = "1.1.0" | 17 | rustc-hash = "1.1.0" |
18 | arrayvec = "0.5.1" | 18 | arrayvec = "0.5.1" |
19 | once_cell = "1.3.1" | 19 | once_cell = "1.3.1" |
@@ -27,7 +27,7 @@ ra_parser = { path = "../ra_parser" } | |||
27 | # ideally, `serde` should be enabled by `rust-analyzer`, but we enable it here | 27 | # ideally, `serde` should be enabled by `rust-analyzer`, but we enable it here |
28 | # to reduce number of compilations | 28 | # to reduce number of compilations |
29 | smol_str = { version = "0.1.15", features = ["serde"] } | 29 | smol_str = { version = "0.1.15", features = ["serde"] } |
30 | serde = { version = "1.0.104", features = ["derive"] } | 30 | serde = { version = "1.0.106", features = ["derive"] } |
31 | 31 | ||
32 | [dev-dependencies] | 32 | [dev-dependencies] |
33 | test_utils = { path = "../test_utils" } | 33 | test_utils = { path = "../test_utils" } |
diff --git a/crates/ra_syntax/src/ast.rs b/crates/ra_syntax/src/ast.rs index 7fca5661e..1876afe95 100644 --- a/crates/ra_syntax/src/ast.rs +++ b/crates/ra_syntax/src/ast.rs | |||
@@ -16,7 +16,7 @@ use crate::{ | |||
16 | }; | 16 | }; |
17 | 17 | ||
18 | pub use self::{ | 18 | pub use self::{ |
19 | expr_extensions::{ArrayExprKind, BinOp, ElseBranch, LiteralKind, PrefixOp, RangeOp}, | 19 | expr_extensions::{ArrayExprKind, BinOp, Effect, ElseBranch, LiteralKind, PrefixOp, RangeOp}, |
20 | extensions::{ | 20 | extensions::{ |
21 | AttrKind, FieldKind, NameOrNameRef, PathSegmentKind, SelfParamKind, SlicePatComponents, | 21 | AttrKind, FieldKind, NameOrNameRef, PathSegmentKind, SelfParamKind, SlicePatComponents, |
22 | StructKind, TypeBoundKind, VisibilityKind, | 22 | StructKind, TypeBoundKind, VisibilityKind, |
@@ -243,6 +243,21 @@ fn test_comments_preserve_trailing_whitespace() { | |||
243 | } | 243 | } |
244 | 244 | ||
245 | #[test] | 245 | #[test] |
246 | fn test_four_slash_line_comment() { | ||
247 | let file = SourceFile::parse( | ||
248 | r#" | ||
249 | //// too many slashes to be a doc comment | ||
250 | /// doc comment | ||
251 | mod foo {} | ||
252 | "#, | ||
253 | ) | ||
254 | .ok() | ||
255 | .unwrap(); | ||
256 | let module = file.syntax().descendants().find_map(Module::cast).unwrap(); | ||
257 | assert_eq!("doc comment", module.doc_comment_text().unwrap()); | ||
258 | } | ||
259 | |||
260 | #[test] | ||
246 | fn test_where_predicates() { | 261 | fn test_where_predicates() { |
247 | fn assert_bound(text: &str, bound: Option<TypeBound>) { | 262 | fn assert_bound(text: &str, bound: Option<TypeBound>) { |
248 | assert_eq!(text, bound.unwrap().syntax().text().to_string()); | 263 | assert_eq!(text, bound.unwrap().syntax().text().to_string()); |
diff --git a/crates/ra_syntax/src/ast/edit.rs b/crates/ra_syntax/src/ast/edit.rs index 26e4576ff..c507dc683 100644 --- a/crates/ra_syntax/src/ast/edit.rs +++ b/crates/ra_syntax/src/ast/edit.rs | |||
@@ -28,7 +28,7 @@ impl ast::BinExpr { | |||
28 | 28 | ||
29 | impl ast::FnDef { | 29 | impl ast::FnDef { |
30 | #[must_use] | 30 | #[must_use] |
31 | pub fn with_body(&self, body: ast::Block) -> ast::FnDef { | 31 | pub fn with_body(&self, body: ast::BlockExpr) -> ast::FnDef { |
32 | let mut to_insert: ArrayVec<[SyntaxElement; 2]> = ArrayVec::new(); | 32 | let mut to_insert: ArrayVec<[SyntaxElement; 2]> = ArrayVec::new(); |
33 | let old_body_or_semi: SyntaxElement = if let Some(old_body) = self.body() { | 33 | let old_body_or_semi: SyntaxElement = if let Some(old_body) = self.body() { |
34 | old_body.syntax().clone().into() | 34 | old_body.syntax().clone().into() |
diff --git a/crates/ra_syntax/src/ast/expr_extensions.rs b/crates/ra_syntax/src/ast/expr_extensions.rs index 93aa3d45f..7771d6759 100644 --- a/crates/ra_syntax/src/ast/expr_extensions.rs +++ b/crates/ra_syntax/src/ast/expr_extensions.rs | |||
@@ -16,7 +16,7 @@ impl ast::Expr { | |||
16 | | ast::Expr::WhileExpr(_) | 16 | | ast::Expr::WhileExpr(_) |
17 | | ast::Expr::BlockExpr(_) | 17 | | ast::Expr::BlockExpr(_) |
18 | | ast::Expr::MatchExpr(_) | 18 | | ast::Expr::MatchExpr(_) |
19 | | ast::Expr::TryBlockExpr(_) => true, | 19 | | ast::Expr::EffectExpr(_) => true, |
20 | _ => false, | 20 | _ => false, |
21 | } | 21 | } |
22 | } | 22 | } |
@@ -43,7 +43,7 @@ impl ast::IfExpr { | |||
43 | Some(res) | 43 | Some(res) |
44 | } | 44 | } |
45 | 45 | ||
46 | fn blocks(&self) -> AstChildren<ast::BlockExpr> { | 46 | pub fn blocks(&self) -> AstChildren<ast::BlockExpr> { |
47 | support::children(self.syntax()) | 47 | support::children(self.syntax()) |
48 | } | 48 | } |
49 | } | 49 | } |
@@ -359,6 +359,33 @@ impl ast::Literal { | |||
359 | } | 359 | } |
360 | } | 360 | } |
361 | 361 | ||
362 | #[derive(Debug, Clone, PartialEq, Eq)] | ||
363 | pub enum Effect { | ||
364 | Async(SyntaxToken), | ||
365 | Unsafe(SyntaxToken), | ||
366 | Try(SyntaxToken), | ||
367 | // Very much not an effect, but we stuff it into this node anyway | ||
368 | Label(ast::Label), | ||
369 | } | ||
370 | |||
371 | impl ast::EffectExpr { | ||
372 | pub fn effect(&self) -> Effect { | ||
373 | if let Some(token) = self.async_token() { | ||
374 | return Effect::Async(token); | ||
375 | } | ||
376 | if let Some(token) = self.unsafe_token() { | ||
377 | return Effect::Unsafe(token); | ||
378 | } | ||
379 | if let Some(token) = self.try_token() { | ||
380 | return Effect::Try(token); | ||
381 | } | ||
382 | if let Some(label) = self.label() { | ||
383 | return Effect::Label(label); | ||
384 | } | ||
385 | unreachable!("ast::EffectExpr without Effect") | ||
386 | } | ||
387 | } | ||
388 | |||
362 | impl ast::BlockExpr { | 389 | impl ast::BlockExpr { |
363 | /// false if the block is an intrinsic part of the syntax and can't be | 390 | /// false if the block is an intrinsic part of the syntax and can't be |
364 | /// replaced with arbitrary expression. | 391 | /// replaced with arbitrary expression. |
@@ -368,12 +395,12 @@ impl ast::BlockExpr { | |||
368 | /// const FOO: () = { stand_alone }; | 395 | /// const FOO: () = { stand_alone }; |
369 | /// ``` | 396 | /// ``` |
370 | pub fn is_standalone(&self) -> bool { | 397 | pub fn is_standalone(&self) -> bool { |
371 | let kind = match self.syntax().parent() { | 398 | let parent = match self.syntax().parent() { |
399 | Some(it) => it, | ||
372 | None => return true, | 400 | None => return true, |
373 | Some(it) => it.kind(), | ||
374 | }; | 401 | }; |
375 | match kind { | 402 | match parent.kind() { |
376 | FN_DEF | MATCH_ARM | IF_EXPR | WHILE_EXPR | LOOP_EXPR | TRY_BLOCK_EXPR => false, | 403 | FN_DEF | IF_EXPR | WHILE_EXPR | LOOP_EXPR | EFFECT_EXPR => false, |
377 | _ => true, | 404 | _ => true, |
378 | } | 405 | } |
379 | } | 406 | } |
diff --git a/crates/ra_syntax/src/ast/extensions.rs b/crates/ra_syntax/src/ast/extensions.rs index f2ea5088e..528c873e0 100644 --- a/crates/ra_syntax/src/ast/extensions.rs +++ b/crates/ra_syntax/src/ast/extensions.rs | |||
@@ -407,7 +407,7 @@ impl ast::Visibility { | |||
407 | } else if self.super_token().is_some() { | 407 | } else if self.super_token().is_some() { |
408 | VisibilityKind::PubSuper | 408 | VisibilityKind::PubSuper |
409 | } else if self.self_token().is_some() { | 409 | } else if self.self_token().is_some() { |
410 | VisibilityKind::PubSuper | 410 | VisibilityKind::PubSelf |
411 | } else { | 411 | } else { |
412 | VisibilityKind::Pub | 412 | VisibilityKind::Pub |
413 | } | 413 | } |
@@ -423,6 +423,10 @@ impl ast::MacroCall { | |||
423 | None | 423 | None |
424 | } | 424 | } |
425 | } | 425 | } |
426 | |||
427 | pub fn is_bang(&self) -> bool { | ||
428 | self.is_macro_rules().is_none() | ||
429 | } | ||
426 | } | 430 | } |
427 | 431 | ||
428 | impl ast::LifetimeParam { | 432 | impl ast::LifetimeParam { |
diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs index 2cb3ad011..5e844d5ae 100644 --- a/crates/ra_syntax/src/ast/generated/nodes.rs +++ b/crates/ra_syntax/src/ast/generated/nodes.rs | |||
@@ -476,13 +476,16 @@ impl LoopExpr { | |||
476 | } | 476 | } |
477 | 477 | ||
478 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 478 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
479 | pub struct TryBlockExpr { | 479 | pub struct EffectExpr { |
480 | pub(crate) syntax: SyntaxNode, | 480 | pub(crate) syntax: SyntaxNode, |
481 | } | 481 | } |
482 | impl ast::AttrsOwner for TryBlockExpr {} | 482 | impl ast::AttrsOwner for EffectExpr {} |
483 | impl TryBlockExpr { | 483 | impl EffectExpr { |
484 | pub fn label(&self) -> Option<Label> { support::child(&self.syntax) } | ||
484 | pub fn try_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![try]) } | 485 | pub fn try_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![try]) } |
485 | pub fn body(&self) -> Option<BlockExpr> { support::child(&self.syntax) } | 486 | pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) } |
487 | pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) } | ||
488 | pub fn block_expr(&self) -> Option<BlockExpr> { support::child(&self.syntax) } | ||
486 | } | 489 | } |
487 | 490 | ||
488 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 491 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
@@ -551,10 +554,12 @@ pub struct BlockExpr { | |||
551 | pub(crate) syntax: SyntaxNode, | 554 | pub(crate) syntax: SyntaxNode, |
552 | } | 555 | } |
553 | impl ast::AttrsOwner for BlockExpr {} | 556 | impl ast::AttrsOwner for BlockExpr {} |
557 | impl ast::ModuleItemOwner for BlockExpr {} | ||
554 | impl BlockExpr { | 558 | impl BlockExpr { |
555 | pub fn label(&self) -> Option<Label> { support::child(&self.syntax) } | 559 | pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) } |
556 | pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) } | 560 | pub fn statements(&self) -> AstChildren<Stmt> { support::children(&self.syntax) } |
557 | pub fn block(&self) -> Option<Block> { support::child(&self.syntax) } | 561 | pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) } |
562 | pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) } | ||
558 | } | 563 | } |
559 | 564 | ||
560 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 565 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
@@ -626,8 +631,8 @@ pub struct TryExpr { | |||
626 | } | 631 | } |
627 | impl ast::AttrsOwner for TryExpr {} | 632 | impl ast::AttrsOwner for TryExpr {} |
628 | impl TryExpr { | 633 | impl TryExpr { |
629 | pub fn try_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![try]) } | ||
630 | pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) } | 634 | pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) } |
635 | pub fn question_mark_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![?]) } | ||
631 | } | 636 | } |
632 | 637 | ||
633 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 638 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
@@ -1121,19 +1126,6 @@ impl Condition { | |||
1121 | } | 1126 | } |
1122 | 1127 | ||
1123 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 1128 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
1124 | pub struct Block { | ||
1125 | pub(crate) syntax: SyntaxNode, | ||
1126 | } | ||
1127 | impl ast::AttrsOwner for Block {} | ||
1128 | impl ast::ModuleItemOwner for Block {} | ||
1129 | impl Block { | ||
1130 | pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) } | ||
1131 | pub fn statements(&self) -> AstChildren<Stmt> { support::children(&self.syntax) } | ||
1132 | pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) } | ||
1133 | pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) } | ||
1134 | } | ||
1135 | |||
1136 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | ||
1137 | pub struct ParamList { | 1129 | pub struct ParamList { |
1138 | pub(crate) syntax: SyntaxNode, | 1130 | pub(crate) syntax: SyntaxNode, |
1139 | } | 1131 | } |
@@ -1249,6 +1241,9 @@ pub struct PathSegment { | |||
1249 | } | 1241 | } |
1250 | impl PathSegment { | 1242 | impl PathSegment { |
1251 | pub fn coloncolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![::]) } | 1243 | pub fn coloncolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![::]) } |
1244 | pub fn crate_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![crate]) } | ||
1245 | pub fn self_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![self]) } | ||
1246 | pub fn super_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![super]) } | ||
1252 | pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) } | 1247 | pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) } |
1253 | pub fn name_ref(&self) -> Option<NameRef> { support::child(&self.syntax) } | 1248 | pub fn name_ref(&self) -> Option<NameRef> { support::child(&self.syntax) } |
1254 | pub fn type_arg_list(&self) -> Option<TypeArgList> { support::child(&self.syntax) } | 1249 | pub fn type_arg_list(&self) -> Option<TypeArgList> { support::child(&self.syntax) } |
@@ -1473,7 +1468,7 @@ pub enum Expr { | |||
1473 | FieldExpr(FieldExpr), | 1468 | FieldExpr(FieldExpr), |
1474 | AwaitExpr(AwaitExpr), | 1469 | AwaitExpr(AwaitExpr), |
1475 | TryExpr(TryExpr), | 1470 | TryExpr(TryExpr), |
1476 | TryBlockExpr(TryBlockExpr), | 1471 | EffectExpr(EffectExpr), |
1477 | CastExpr(CastExpr), | 1472 | CastExpr(CastExpr), |
1478 | RefExpr(RefExpr), | 1473 | RefExpr(RefExpr), |
1479 | PrefixExpr(PrefixExpr), | 1474 | PrefixExpr(PrefixExpr), |
@@ -1956,8 +1951,8 @@ impl AstNode for LoopExpr { | |||
1956 | } | 1951 | } |
1957 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | 1952 | fn syntax(&self) -> &SyntaxNode { &self.syntax } |
1958 | } | 1953 | } |
1959 | impl AstNode for TryBlockExpr { | 1954 | impl AstNode for EffectExpr { |
1960 | fn can_cast(kind: SyntaxKind) -> bool { kind == TRY_BLOCK_EXPR } | 1955 | fn can_cast(kind: SyntaxKind) -> bool { kind == EFFECT_EXPR } |
1961 | fn cast(syntax: SyntaxNode) -> Option<Self> { | 1956 | fn cast(syntax: SyntaxNode) -> Option<Self> { |
1962 | if Self::can_cast(syntax.kind()) { | 1957 | if Self::can_cast(syntax.kind()) { |
1963 | Some(Self { syntax }) | 1958 | Some(Self { syntax }) |
@@ -2649,17 +2644,6 @@ impl AstNode for Condition { | |||
2649 | } | 2644 | } |
2650 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | 2645 | fn syntax(&self) -> &SyntaxNode { &self.syntax } |
2651 | } | 2646 | } |
2652 | impl AstNode for Block { | ||
2653 | fn can_cast(kind: SyntaxKind) -> bool { kind == BLOCK } | ||
2654 | fn cast(syntax: SyntaxNode) -> Option<Self> { | ||
2655 | if Self::can_cast(syntax.kind()) { | ||
2656 | Some(Self { syntax }) | ||
2657 | } else { | ||
2658 | None | ||
2659 | } | ||
2660 | } | ||
2661 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | ||
2662 | } | ||
2663 | impl AstNode for ParamList { | 2647 | impl AstNode for ParamList { |
2664 | fn can_cast(kind: SyntaxKind) -> bool { kind == PARAM_LIST } | 2648 | fn can_cast(kind: SyntaxKind) -> bool { kind == PARAM_LIST } |
2665 | fn cast(syntax: SyntaxNode) -> Option<Self> { | 2649 | fn cast(syntax: SyntaxNode) -> Option<Self> { |
@@ -3308,8 +3292,8 @@ impl From<AwaitExpr> for Expr { | |||
3308 | impl From<TryExpr> for Expr { | 3292 | impl From<TryExpr> for Expr { |
3309 | fn from(node: TryExpr) -> Expr { Expr::TryExpr(node) } | 3293 | fn from(node: TryExpr) -> Expr { Expr::TryExpr(node) } |
3310 | } | 3294 | } |
3311 | impl From<TryBlockExpr> for Expr { | 3295 | impl From<EffectExpr> for Expr { |
3312 | fn from(node: TryBlockExpr) -> Expr { Expr::TryBlockExpr(node) } | 3296 | fn from(node: EffectExpr) -> Expr { Expr::EffectExpr(node) } |
3313 | } | 3297 | } |
3314 | impl From<CastExpr> for Expr { | 3298 | impl From<CastExpr> for Expr { |
3315 | fn from(node: CastExpr) -> Expr { Expr::CastExpr(node) } | 3299 | fn from(node: CastExpr) -> Expr { Expr::CastExpr(node) } |
@@ -3341,9 +3325,10 @@ impl AstNode for Expr { | |||
3341 | TUPLE_EXPR | ARRAY_EXPR | PAREN_EXPR | PATH_EXPR | LAMBDA_EXPR | IF_EXPR | 3325 | TUPLE_EXPR | ARRAY_EXPR | PAREN_EXPR | PATH_EXPR | LAMBDA_EXPR | IF_EXPR |
3342 | | LOOP_EXPR | FOR_EXPR | WHILE_EXPR | CONTINUE_EXPR | BREAK_EXPR | LABEL | 3326 | | LOOP_EXPR | FOR_EXPR | WHILE_EXPR | CONTINUE_EXPR | BREAK_EXPR | LABEL |
3343 | | BLOCK_EXPR | RETURN_EXPR | MATCH_EXPR | RECORD_LIT | CALL_EXPR | INDEX_EXPR | 3327 | | BLOCK_EXPR | RETURN_EXPR | MATCH_EXPR | RECORD_LIT | CALL_EXPR | INDEX_EXPR |
3344 | | METHOD_CALL_EXPR | FIELD_EXPR | AWAIT_EXPR | TRY_EXPR | TRY_BLOCK_EXPR | 3328 | | METHOD_CALL_EXPR | FIELD_EXPR | AWAIT_EXPR | TRY_EXPR | EFFECT_EXPR | CAST_EXPR |
3345 | | CAST_EXPR | REF_EXPR | PREFIX_EXPR | RANGE_EXPR | BIN_EXPR | LITERAL | MACRO_CALL | 3329 | | REF_EXPR | PREFIX_EXPR | RANGE_EXPR | BIN_EXPR | LITERAL | MACRO_CALL | BOX_EXPR => { |
3346 | | BOX_EXPR => true, | 3330 | true |
3331 | } | ||
3347 | _ => false, | 3332 | _ => false, |
3348 | } | 3333 | } |
3349 | } | 3334 | } |
@@ -3371,7 +3356,7 @@ impl AstNode for Expr { | |||
3371 | FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }), | 3356 | FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }), |
3372 | AWAIT_EXPR => Expr::AwaitExpr(AwaitExpr { syntax }), | 3357 | AWAIT_EXPR => Expr::AwaitExpr(AwaitExpr { syntax }), |
3373 | TRY_EXPR => Expr::TryExpr(TryExpr { syntax }), | 3358 | TRY_EXPR => Expr::TryExpr(TryExpr { syntax }), |
3374 | TRY_BLOCK_EXPR => Expr::TryBlockExpr(TryBlockExpr { syntax }), | 3359 | EFFECT_EXPR => Expr::EffectExpr(EffectExpr { syntax }), |
3375 | CAST_EXPR => Expr::CastExpr(CastExpr { syntax }), | 3360 | CAST_EXPR => Expr::CastExpr(CastExpr { syntax }), |
3376 | REF_EXPR => Expr::RefExpr(RefExpr { syntax }), | 3361 | REF_EXPR => Expr::RefExpr(RefExpr { syntax }), |
3377 | PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }), | 3362 | PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }), |
@@ -3408,7 +3393,7 @@ impl AstNode for Expr { | |||
3408 | Expr::FieldExpr(it) => &it.syntax, | 3393 | Expr::FieldExpr(it) => &it.syntax, |
3409 | Expr::AwaitExpr(it) => &it.syntax, | 3394 | Expr::AwaitExpr(it) => &it.syntax, |
3410 | Expr::TryExpr(it) => &it.syntax, | 3395 | Expr::TryExpr(it) => &it.syntax, |
3411 | Expr::TryBlockExpr(it) => &it.syntax, | 3396 | Expr::EffectExpr(it) => &it.syntax, |
3412 | Expr::CastExpr(it) => &it.syntax, | 3397 | Expr::CastExpr(it) => &it.syntax, |
3413 | Expr::RefExpr(it) => &it.syntax, | 3398 | Expr::RefExpr(it) => &it.syntax, |
3414 | Expr::PrefixExpr(it) => &it.syntax, | 3399 | Expr::PrefixExpr(it) => &it.syntax, |
@@ -3889,7 +3874,7 @@ impl std::fmt::Display for LoopExpr { | |||
3889 | std::fmt::Display::fmt(self.syntax(), f) | 3874 | std::fmt::Display::fmt(self.syntax(), f) |
3890 | } | 3875 | } |
3891 | } | 3876 | } |
3892 | impl std::fmt::Display for TryBlockExpr { | 3877 | impl std::fmt::Display for EffectExpr { |
3893 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { | 3878 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { |
3894 | std::fmt::Display::fmt(self.syntax(), f) | 3879 | std::fmt::Display::fmt(self.syntax(), f) |
3895 | } | 3880 | } |
@@ -4204,11 +4189,6 @@ impl std::fmt::Display for Condition { | |||
4204 | std::fmt::Display::fmt(self.syntax(), f) | 4189 | std::fmt::Display::fmt(self.syntax(), f) |
4205 | } | 4190 | } |
4206 | } | 4191 | } |
4207 | impl std::fmt::Display for Block { | ||
4208 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { | ||
4209 | std::fmt::Display::fmt(self.syntax(), f) | ||
4210 | } | ||
4211 | } | ||
4212 | impl std::fmt::Display for ParamList { | 4192 | impl std::fmt::Display for ParamList { |
4213 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { | 4193 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { |
4214 | std::fmt::Display::fmt(self.syntax(), f) | 4194 | std::fmt::Display::fmt(self.syntax(), f) |
diff --git a/crates/ra_syntax/src/ast/make.rs b/crates/ra_syntax/src/ast/make.rs index ee0f5cc40..7b17fef49 100644 --- a/crates/ra_syntax/src/ast/make.rs +++ b/crates/ra_syntax/src/ast/make.rs | |||
@@ -22,8 +22,7 @@ pub fn path_unqualified(segment: ast::PathSegment) -> ast::Path { | |||
22 | pub fn path_qualified(qual: ast::Path, segment: ast::PathSegment) -> ast::Path { | 22 | pub fn path_qualified(qual: ast::Path, segment: ast::PathSegment) -> ast::Path { |
23 | path_from_text(&format!("{}::{}", qual, segment)) | 23 | path_from_text(&format!("{}::{}", qual, segment)) |
24 | } | 24 | } |
25 | 25 | fn path_from_text(text: &str) -> ast::Path { | |
26 | pub fn path_from_text(text: &str) -> ast::Path { | ||
27 | ast_from_text(text) | 26 | ast_from_text(text) |
28 | } | 27 | } |
29 | 28 | ||
@@ -83,14 +82,6 @@ pub fn block_expr( | |||
83 | ast_from_text(&format!("fn f() {}", buf)) | 82 | ast_from_text(&format!("fn f() {}", buf)) |
84 | } | 83 | } |
85 | 84 | ||
86 | pub fn block_from_expr(e: ast::Expr) -> ast::Block { | ||
87 | return from_text(&format!("{{ {} }}", e)); | ||
88 | |||
89 | fn from_text(text: &str) -> ast::Block { | ||
90 | ast_from_text(&format!("fn f() {}", text)) | ||
91 | } | ||
92 | } | ||
93 | |||
94 | pub fn expr_unit() -> ast::Expr { | 85 | pub fn expr_unit() -> ast::Expr { |
95 | expr_from_text("()") | 86 | expr_from_text("()") |
96 | } | 87 | } |
diff --git a/crates/ra_syntax/src/ast/tokens.rs b/crates/ra_syntax/src/ast/tokens.rs index 3865729b8..74906d8a6 100644 --- a/crates/ra_syntax/src/ast/tokens.rs +++ b/crates/ra_syntax/src/ast/tokens.rs | |||
@@ -13,7 +13,12 @@ impl Comment { | |||
13 | } | 13 | } |
14 | 14 | ||
15 | pub fn prefix(&self) -> &'static str { | 15 | pub fn prefix(&self) -> &'static str { |
16 | prefix_by_kind(self.kind()) | 16 | for (prefix, k) in COMMENT_PREFIX_TO_KIND.iter() { |
17 | if *k == self.kind() && self.text().starts_with(prefix) { | ||
18 | return prefix; | ||
19 | } | ||
20 | } | ||
21 | unreachable!() | ||
17 | } | 22 | } |
18 | } | 23 | } |
19 | 24 | ||
@@ -48,6 +53,7 @@ pub enum CommentPlacement { | |||
48 | const COMMENT_PREFIX_TO_KIND: &[(&str, CommentKind)] = { | 53 | const COMMENT_PREFIX_TO_KIND: &[(&str, CommentKind)] = { |
49 | use {CommentPlacement::*, CommentShape::*}; | 54 | use {CommentPlacement::*, CommentShape::*}; |
50 | &[ | 55 | &[ |
56 | ("////", CommentKind { shape: Line, doc: None }), | ||
51 | ("///", CommentKind { shape: Line, doc: Some(Outer) }), | 57 | ("///", CommentKind { shape: Line, doc: Some(Outer) }), |
52 | ("//!", CommentKind { shape: Line, doc: Some(Inner) }), | 58 | ("//!", CommentKind { shape: Line, doc: Some(Inner) }), |
53 | ("/**", CommentKind { shape: Block, doc: Some(Outer) }), | 59 | ("/**", CommentKind { shape: Block, doc: Some(Outer) }), |
@@ -69,15 +75,6 @@ fn kind_by_prefix(text: &str) -> CommentKind { | |||
69 | panic!("bad comment text: {:?}", text) | 75 | panic!("bad comment text: {:?}", text) |
70 | } | 76 | } |
71 | 77 | ||
72 | fn prefix_by_kind(kind: CommentKind) -> &'static str { | ||
73 | for (prefix, k) in COMMENT_PREFIX_TO_KIND.iter() { | ||
74 | if *k == kind { | ||
75 | return prefix; | ||
76 | } | ||
77 | } | ||
78 | unreachable!() | ||
79 | } | ||
80 | |||
81 | impl Whitespace { | 78 | impl Whitespace { |
82 | pub fn spans_multiple_lines(&self) -> bool { | 79 | pub fn spans_multiple_lines(&self) -> bool { |
83 | let text = self.text(); | 80 | let text = self.text(); |
diff --git a/crates/ra_syntax/src/lib.rs b/crates/ra_syntax/src/lib.rs index ceeb2bde9..d0234cada 100644 --- a/crates/ra_syntax/src/lib.rs +++ b/crates/ra_syntax/src/lib.rs | |||
@@ -237,8 +237,7 @@ fn api_walkthrough() { | |||
237 | 237 | ||
238 | // Let's get the `1 + 1` expression! | 238 | // Let's get the `1 + 1` expression! |
239 | let body: ast::BlockExpr = func.body().unwrap(); | 239 | let body: ast::BlockExpr = func.body().unwrap(); |
240 | let block = body.block().unwrap(); | 240 | let expr: ast::Expr = body.expr().unwrap(); |
241 | let expr: ast::Expr = block.expr().unwrap(); | ||
242 | 241 | ||
243 | // Enums are used to group related ast nodes together, and can be used for | 242 | // Enums are used to group related ast nodes together, and can be used for |
244 | // matching. However, because there are no public fields, it's possible to | 243 | // matching. However, because there are no public fields, it's possible to |
@@ -274,8 +273,8 @@ fn api_walkthrough() { | |||
274 | assert_eq!(text.to_string(), "1 + 1"); | 273 | assert_eq!(text.to_string(), "1 + 1"); |
275 | 274 | ||
276 | // There's a bunch of traversal methods on `SyntaxNode`: | 275 | // There's a bunch of traversal methods on `SyntaxNode`: |
277 | assert_eq!(expr_syntax.parent().as_ref(), Some(block.syntax())); | 276 | assert_eq!(expr_syntax.parent().as_ref(), Some(body.syntax())); |
278 | assert_eq!(block.syntax().first_child_or_token().map(|it| it.kind()), Some(T!['{'])); | 277 | assert_eq!(body.syntax().first_child_or_token().map(|it| it.kind()), Some(T!['{'])); |
279 | assert_eq!( | 278 | assert_eq!( |
280 | expr_syntax.next_sibling_or_token().map(|it| it.kind()), | 279 | expr_syntax.next_sibling_or_token().map(|it| it.kind()), |
281 | Some(SyntaxKind::WHITESPACE) | 280 | Some(SyntaxKind::WHITESPACE) |
diff --git a/crates/ra_syntax/src/parsing/lexer.rs b/crates/ra_syntax/src/parsing/lexer.rs index f450ef4a2..1a5a6dc06 100644 --- a/crates/ra_syntax/src/parsing/lexer.rs +++ b/crates/ra_syntax/src/parsing/lexer.rs | |||
@@ -180,7 +180,7 @@ fn rustc_token_kind_to_syntax_kind( | |||
180 | return (syntax_kind, None); | 180 | return (syntax_kind, None); |
181 | 181 | ||
182 | fn match_literal_kind(kind: &rustc_lexer::LiteralKind) -> (SyntaxKind, Option<&'static str>) { | 182 | fn match_literal_kind(kind: &rustc_lexer::LiteralKind) -> (SyntaxKind, Option<&'static str>) { |
183 | use rustc_lexer::LiteralKind as LK; | 183 | use rustc_lexer::{LexRawStrError, LiteralKind as LK}; |
184 | 184 | ||
185 | #[rustfmt::skip] | 185 | #[rustfmt::skip] |
186 | let syntax_kind = match *kind { | 186 | let syntax_kind = match *kind { |
@@ -215,21 +215,28 @@ fn rustc_token_kind_to_syntax_kind( | |||
215 | return (BYTE_STRING, Some("Missing trailing `\"` symbol to terminate the byte string literal")) | 215 | return (BYTE_STRING, Some("Missing trailing `\"` symbol to terminate the byte string literal")) |
216 | } | 216 | } |
217 | 217 | ||
218 | LK::RawStr { started: true, terminated: true, .. } => RAW_STRING, | 218 | LK::RawStr(str) => match str.validate() { |
219 | LK::RawStr { started: true, terminated: false, .. } => { | 219 | Ok(_) => RAW_STRING, |
220 | return (RAW_STRING, Some("Missing trailing `\"` with `#` symbols to terminate the raw string literal")) | 220 | Err(LexRawStrError::InvalidStarter) => return (RAW_STRING, Some("Missing `\"` symbol after `#` symbols to begin the raw string literal")), |
221 | } | 221 | Err(LexRawStrError::NoTerminator { expected, found, .. }) => if expected == found { |
222 | LK::RawStr { started: false, .. } => { | 222 | return (RAW_STRING, Some("Missing trailing `\"` to terminate the raw string literal")) |
223 | return (RAW_STRING, Some("Missing `\"` symbol after `#` symbols to begin the raw string literal")) | 223 | } else { |
224 | } | 224 | return (RAW_STRING, Some("Missing trailing `\"` with `#` symbols to terminate the raw string literal")) |
225 | |||
226 | }, | ||
227 | Err(LexRawStrError::TooManyDelimiters { .. }) => return (RAW_STRING, Some("Too many `#` symbols: raw strings may be delimited by up to 65535 `#` symbols")), | ||
228 | }, | ||
229 | LK::RawByteStr(str) => match str.validate() { | ||
230 | Ok(_) => RAW_BYTE_STRING, | ||
231 | Err(LexRawStrError::InvalidStarter) => return (RAW_BYTE_STRING, Some("Missing `\"` symbol after `#` symbols to begin the raw byte string literal")), | ||
232 | Err(LexRawStrError::NoTerminator { expected, found, .. }) => if expected == found { | ||
233 | return (RAW_BYTE_STRING, Some("Missing trailing `\"` to terminate the raw byte string literal")) | ||
234 | } else { | ||
235 | return (RAW_BYTE_STRING, Some("Missing trailing `\"` with `#` symbols to terminate the raw byte string literal")) | ||
225 | 236 | ||
226 | LK::RawByteStr { started: true, terminated: true, .. } => RAW_BYTE_STRING, | 237 | }, |
227 | LK::RawByteStr { started: true, terminated: false, .. } => { | 238 | Err(LexRawStrError::TooManyDelimiters { .. }) => return (RAW_BYTE_STRING, Some("Too many `#` symbols: raw byte strings may be delimited by up to 65535 `#` symbols")), |
228 | return (RAW_BYTE_STRING, Some("Missing trailing `\"` with `#` symbols to terminate the raw byte string literal")) | 239 | }, |
229 | } | ||
230 | LK::RawByteStr { started: false, .. } => { | ||
231 | return (RAW_BYTE_STRING, Some("Missing `\"` symbol after `#` symbols to begin the raw byte string literal")) | ||
232 | } | ||
233 | }; | 240 | }; |
234 | 241 | ||
235 | (syntax_kind, None) | 242 | (syntax_kind, None) |
diff --git a/crates/ra_syntax/src/validation.rs b/crates/ra_syntax/src/validation.rs index 5e93895ec..e075cd801 100644 --- a/crates/ra_syntax/src/validation.rs +++ b/crates/ra_syntax/src/validation.rs | |||
@@ -96,6 +96,7 @@ pub(crate) fn validate(root: &SyntaxNode) -> Vec<SyntaxError> { | |||
96 | ast::RecordField(it) => validate_numeric_name(it.name_ref(), &mut errors), | 96 | ast::RecordField(it) => validate_numeric_name(it.name_ref(), &mut errors), |
97 | ast::Visibility(it) => validate_visibility(it, &mut errors), | 97 | ast::Visibility(it) => validate_visibility(it, &mut errors), |
98 | ast::RangeExpr(it) => validate_range_expr(it, &mut errors), | 98 | ast::RangeExpr(it) => validate_range_expr(it, &mut errors), |
99 | ast::PathSegment(it) => validate_path_keywords(it, &mut errors), | ||
99 | _ => (), | 100 | _ => (), |
100 | } | 101 | } |
101 | } | 102 | } |
@@ -222,3 +223,83 @@ fn validate_range_expr(expr: ast::RangeExpr, errors: &mut Vec<SyntaxError>) { | |||
222 | )); | 223 | )); |
223 | } | 224 | } |
224 | } | 225 | } |
226 | |||
227 | fn validate_path_keywords(segment: ast::PathSegment, errors: &mut Vec<SyntaxError>) { | ||
228 | use ast::PathSegmentKind; | ||
229 | |||
230 | let path = segment.parent_path(); | ||
231 | let is_path_start = segment.coloncolon_token().is_none() && path.qualifier().is_none(); | ||
232 | |||
233 | if let Some(token) = segment.self_token() { | ||
234 | if !is_path_start { | ||
235 | errors.push(SyntaxError::new( | ||
236 | "The `self` keyword is only allowed as the first segment of a path", | ||
237 | token.text_range(), | ||
238 | )); | ||
239 | } | ||
240 | } else if let Some(token) = segment.crate_token() { | ||
241 | if !is_path_start || use_prefix(path).is_some() { | ||
242 | errors.push(SyntaxError::new( | ||
243 | "The `crate` keyword is only allowed as the first segment of a path", | ||
244 | token.text_range(), | ||
245 | )); | ||
246 | } | ||
247 | } else if let Some(token) = segment.super_token() { | ||
248 | if !all_supers(&path) { | ||
249 | errors.push(SyntaxError::new( | ||
250 | "The `super` keyword may only be preceded by other `super`s", | ||
251 | token.text_range(), | ||
252 | )); | ||
253 | return; | ||
254 | } | ||
255 | |||
256 | let mut curr_path = path; | ||
257 | while let Some(prefix) = use_prefix(curr_path) { | ||
258 | if !all_supers(&prefix) { | ||
259 | errors.push(SyntaxError::new( | ||
260 | "The `super` keyword may only be preceded by other `super`s", | ||
261 | token.text_range(), | ||
262 | )); | ||
263 | return; | ||
264 | } | ||
265 | curr_path = prefix; | ||
266 | } | ||
267 | } | ||
268 | |||
269 | fn use_prefix(mut path: ast::Path) -> Option<ast::Path> { | ||
270 | for node in path.syntax().ancestors().skip(1) { | ||
271 | match_ast! { | ||
272 | match node { | ||
273 | ast::UseTree(it) => if let Some(tree_path) = it.path() { | ||
274 | // Even a top-level path exists within a `UseTree` so we must explicitly | ||
275 | // allow our path but disallow anything else | ||
276 | if tree_path != path { | ||
277 | return Some(tree_path); | ||
278 | } | ||
279 | }, | ||
280 | ast::UseTreeList(_it) => continue, | ||
281 | ast::Path(parent) => path = parent, | ||
282 | _ => return None, | ||
283 | } | ||
284 | }; | ||
285 | } | ||
286 | return None; | ||
287 | } | ||
288 | |||
289 | fn all_supers(path: &ast::Path) -> bool { | ||
290 | let segment = match path.segment() { | ||
291 | Some(it) => it, | ||
292 | None => return false, | ||
293 | }; | ||
294 | |||
295 | if segment.kind() != Some(PathSegmentKind::SuperKw) { | ||
296 | return false; | ||
297 | } | ||
298 | |||
299 | if let Some(ref subpath) = path.qualifier() { | ||
300 | return all_supers(subpath); | ||
301 | } | ||
302 | |||
303 | return true; | ||
304 | } | ||
305 | } | ||
diff --git a/crates/ra_syntax/src/validation/block.rs b/crates/ra_syntax/src/validation/block.rs index 8e962ab5b..2c08f7e6e 100644 --- a/crates/ra_syntax/src/validation/block.rs +++ b/crates/ra_syntax/src/validation/block.rs | |||
@@ -6,19 +6,17 @@ use crate::{ | |||
6 | SyntaxKind::*, | 6 | SyntaxKind::*, |
7 | }; | 7 | }; |
8 | 8 | ||
9 | pub(crate) fn validate_block_expr(expr: ast::BlockExpr, errors: &mut Vec<SyntaxError>) { | 9 | pub(crate) fn validate_block_expr(block: ast::BlockExpr, errors: &mut Vec<SyntaxError>) { |
10 | if let Some(parent) = expr.syntax().parent() { | 10 | if let Some(parent) = block.syntax().parent() { |
11 | match parent.kind() { | 11 | match parent.kind() { |
12 | FN_DEF | EXPR_STMT | BLOCK => return, | 12 | FN_DEF | EXPR_STMT | BLOCK_EXPR => return, |
13 | _ => {} | 13 | _ => {} |
14 | } | 14 | } |
15 | } | 15 | } |
16 | if let Some(block) = expr.block() { | 16 | errors.extend(block.attrs().map(|attr| { |
17 | errors.extend(block.attrs().map(|attr| { | 17 | SyntaxError::new( |
18 | SyntaxError::new( | 18 | "A block in this position cannot accept inner attributes", |
19 | "A block in this position cannot accept inner attributes", | 19 | attr.syntax().text_range(), |
20 | attr.syntax().text_range(), | 20 | ) |
21 | ) | 21 | })) |
22 | })) | ||
23 | } | ||
24 | } | 22 | } |
diff --git a/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast b/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast index 95cc83caa..375ed45e0 100644 --- a/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast +++ b/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast | |||
@@ -28,10 +28,9 @@ [email protected] | |||
28 | [email protected] ")" | 28 | [email protected] ")" |
29 | [email protected] " " | 29 | [email protected] " " |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "{" |
32 | [email protected] "{" | 32 | [email protected] "\n" |
33 | [email protected] "\n" | 33 | [email protected] "}" |
34 | [email protected] "}" | ||
35 | [email protected] "\n\n\n" | 34 | [email protected] "\n\n\n" |
36 | [email protected] | 35 | [email protected] |
37 | [email protected] "#" | 36 | [email protected] "#" |
diff --git a/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast b/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast index dc3e12091..b72c92c33 100644 --- a/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast +++ b/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast | |||
@@ -21,9 +21,8 @@ [email protected] | |||
21 | [email protected] "(" | 21 | [email protected] "(" |
22 | [email protected] ")" | 22 | [email protected] ")" |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "{" |
25 | [email protected] "{" | 25 | [email protected] "}" |
26 | [email protected] "}" | ||
27 | [email protected] "\n\n" | 26 | [email protected] "\n\n" |
28 | [email protected] | 27 | [email protected] |
29 | [email protected] "}" | 28 | [email protected] "}" |
diff --git a/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast b/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast index 97539fcf2..33953d8d7 100644 --- a/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast +++ b/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast | |||
@@ -9,10 +9,9 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n" |
14 | [email protected] "\n" | 14 | [email protected] "}" |
15 | [email protected] "}" | ||
16 | [email protected] "\n\n" | 15 | [email protected] "\n\n" |
17 | [email protected] | 16 | [email protected] |
18 | [email protected] | 17 | [email protected] |
@@ -34,30 +33,28 @@ [email protected] | |||
34 | [email protected] "true" | 33 | [email protected] "true" |
35 | [email protected] " " | 34 | [email protected] " " |
36 | [email protected] | 35 | [email protected] |
37 | [email protected] | 36 | [email protected] "{" |
38 | [email protected] "{" | 37 | [email protected] "\n " |
39 | [email protected] "\n " | 38 | [email protected] |
40 | [email protected] | 39 | [email protected] "1" |
41 | [email protected] "1" | 40 | [email protected] "\n " |
42 | [email protected] "\n " | 41 | [email protected] "}" |
43 | [email protected] "}" | ||
44 | [email protected] " " | 42 | [email protected] " " |
45 | [email protected] "else" | 43 | [email protected] "else" |
46 | [email protected] " " | 44 | [email protected] " " |
47 | [email protected] | 45 | [email protected] |
48 | [email protected] | 46 | [email protected] "{" |
49 | [email protected] "{" | 47 | [email protected] "\n " |
50 | [email protected] "\n " | 48 | [email protected] |
51 | [email protected] | 49 | [email protected] |
52 | [email protected] | 50 | [email protected] "2" |
53 | [email protected] "2" | 51 | [email protected] " " |
54 | [email protected] " " | 52 | [email protected] "+" |
55 | [email protected] "+" | 53 | [email protected] " " |
56 | [email protected] " " | 54 | [email protected] |
57 | [email protected] | 55 | [email protected] "3" |
58 | [email protected] "3" | 56 | [email protected] "\n " |
59 | [email protected] "\n " | 57 | [email protected] "}" |
60 | [email protected] "}" | ||
61 | [email protected] "\n" | 58 | [email protected] "\n" |
62 | [email protected] "}" | 59 | [email protected] "}" |
63 | [email protected] "\n\n" | 60 | [email protected] "\n\n" |
@@ -71,10 +68,9 @@ [email protected] | |||
71 | [email protected] ")" | 68 | [email protected] ")" |
72 | [email protected] " " | 69 | [email protected] " " |
73 | [email protected] | 70 | [email protected] |
74 | [email protected] | 71 | [email protected] "{" |
75 | [email protected] "{" | 72 | [email protected] "\n" |
76 | [email protected] "\n" | 73 | [email protected] "}" |
77 | [email protected] "}" | ||
78 | [email protected] "\n" | 74 | [email protected] "\n" |
79 | error 17..17: expected BANG | 75 | error 17..17: expected BANG |
80 | error 19..19: expected SEMICOLON | 76 | error 19..19: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast b/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast index e10bb8174..3bf57eacc 100644 --- a/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast +++ b/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast | |||
@@ -9,37 +9,36 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] "|" |
18 | [email protected] "|" | 18 | [email protected] "|" |
19 | [email protected] "|" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "->" |
22 | [email protected] "->" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "(" |
25 | [email protected] "(" | 25 | [email protected] ")" |
26 | [email protected] ")" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "unsafe" |
30 | [email protected] "unsafe" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "{" |
33 | [email protected] "{" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "(" |
36 | [email protected] "(" | 36 | [email protected] ")" |
37 | [email protected] ")" | 37 | [email protected] " " |
38 | [email protected] " " | 38 | [email protected] "}" |
39 | [email protected] "}" | 39 | [email protected] ";" |
40 | [email protected] ";" | 40 | [email protected] "\n" |
41 | [email protected] "\n" | 41 | [email protected] "}" |
42 | [email protected] "}" | ||
43 | [email protected] "\n" | 42 | [email protected] "\n" |
44 | error 24..24: expected `{` | 43 | error 24..24: expected a block |
45 | error 24..24: expected SEMICOLON | 44 | error 24..24: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast b/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast index 61c361833..9323b7890 100644 --- a/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast +++ b/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast | |||
@@ -25,8 +25,7 @@ [email protected] | |||
25 | [email protected] "T" | 25 | [email protected] "T" |
26 | [email protected] " " | 26 | [email protected] " " |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "{" |
29 | [email protected] "{" | 29 | [email protected] "}" |
30 | [email protected] "}" | ||
31 | [email protected] "\n" | 30 | [email protected] "\n" |
32 | error 19..19: expected colon | 31 | error 19..19: expected colon |
diff --git a/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast b/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast index 92bb47316..93434f34f 100644 --- a/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast +++ b/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast | |||
@@ -9,36 +9,35 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "foo" |
21 | [email protected] "foo" | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "(" |
23 | [email protected] "(" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "1" |
26 | [email protected] "1" | 26 | [email protected] "," |
27 | [email protected] "," | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "2" |
30 | [email protected] "2" | 30 | [email protected] "\n " |
31 | [email protected] "\n " | 31 | [email protected] ")" |
32 | [email protected] ")" | 32 | [email protected] "\n " |
33 | [email protected] "\n " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "return" |
36 | [email protected] "return" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "92" |
39 | [email protected] "92" | 39 | [email protected] ";" |
40 | [email protected] ";" | 40 | [email protected] "\n" |
41 | [email protected] "\n" | 41 | [email protected] "}" |
42 | [email protected] "}" | ||
43 | [email protected] "\n" | 42 | [email protected] "\n" |
44 | error 38..38: expected SEMICOLON | 43 | error 38..38: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast b/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast index 7bc718302..628315c78 100644 --- a/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast +++ b/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast | |||
@@ -20,28 +20,27 @@ [email protected] | |||
20 | [email protected] ")" | 20 | [email protected] ")" |
21 | [email protected] " " | 21 | [email protected] " " |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] "{" | 24 | [email protected] "\n " |
25 | [email protected] "\n " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "let" |
27 | [email protected] "let" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "bar" |
31 | [email protected] "bar" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] "=" |
33 | [email protected] "=" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "92" |
36 | [email protected] "92" | 36 | [email protected] ";" |
37 | [email protected] ";" | 37 | [email protected] "\n " |
38 | [email protected] "\n " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "1" |
41 | [email protected] "1" | 41 | [email protected] " " |
42 | [email protected] " " | 42 | [email protected] "+" |
43 | [email protected] "+" | 43 | [email protected] "\n" |
44 | [email protected] "\n" | 44 | [email protected] "}" |
45 | [email protected] "}" | ||
46 | [email protected] "\n" | 45 | [email protected] "\n" |
47 | error 44..44: expected expression | 46 | error 44..44: expected expression |
diff --git a/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast b/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast index 63194f974..31cc4e551 100644 --- a/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast +++ b/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast | |||
@@ -33,89 +33,88 @@ [email protected] | |||
33 | [email protected] "ScopeId" | 33 | [email protected] "ScopeId" |
34 | [email protected] " " | 34 | [email protected] " " |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "{" |
37 | [email protected] "{" | 37 | [email protected] "\n " |
38 | [email protected] "\n " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "let" |
40 | [email protected] "let" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "res" |
44 | [email protected] "res" | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] "=" |
46 | [email protected] "=" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "self" |
53 | [email protected] "self" | 53 | [email protected] "." |
54 | [email protected] "." | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "scopes" |
56 | [email protected] "scopes" | 56 | [email protected] "." |
57 | [email protected] "." | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "len" |
59 | [email protected] "len" | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] "(" |
61 | [email protected] "(" | 61 | [email protected] ")" |
62 | [email protected] ")" | 62 | [email protected] ";" |
63 | [email protected] ";" | 63 | [email protected] "\n " |
64 | [email protected] "\n " | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] |
68 | [email protected] | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] "self" |
70 | [email protected] "self" | 70 | [email protected] "." |
71 | [email protected] "." | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] "scopes" |
73 | [email protected] "scopes" | 73 | [email protected] "." |
74 | [email protected] "." | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] "push" |
76 | [email protected] "push" | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] "(" |
78 | [email protected] "(" | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] "ScopeData" |
83 | [email protected] "ScopeData" | 83 | [email protected] " " |
84 | [email protected] " " | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] "{" |
86 | [email protected] "{" | 86 | [email protected] " " |
87 | [email protected] " " | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] "parent" |
90 | [email protected] "parent" | 90 | [email protected] ":" |
91 | [email protected] ":" | 91 | [email protected] " " |
92 | [email protected] " " | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] |
94 | [email protected] | 94 | [email protected] |
95 | [email protected] | 95 | [email protected] |
96 | [email protected] | 96 | [email protected] "None" |
97 | [email protected] "None" | 97 | [email protected] "," |
98 | [email protected] "," | 98 | [email protected] " " |
99 | [email protected] " " | 99 | [email protected] |
100 | [email protected] | 100 | [email protected] |
101 | [email protected] | 101 | [email protected] "entries" |
102 | [email protected] "entries" | 102 | [email protected] ":" |
103 | [email protected] ":" | 103 | [email protected] " " |
104 | [email protected] " " | 104 | [email protected] |
105 | [email protected] | 105 | [email protected] |
106 | [email protected] | 106 | [email protected] |
107 | [email protected] | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] "vec" |
109 | [email protected] "vec" | 109 | [email protected] "!" |
110 | [email protected] "!" | 110 | [email protected] |
111 | [email protected] | 111 | [email protected] "[" |
112 | [email protected] "[" | 112 | [email protected] "]" |
113 | [email protected] "]" | 113 | [email protected] " " |
114 | [email protected] " " | 114 | [email protected] "}" |
115 | [email protected] "}" | 115 | [email protected] ")" |
116 | [email protected] ")" | 116 | [email protected] "\n " |
117 | [email protected] "\n " | 117 | [email protected] "}" |
118 | [email protected] "}" | ||
119 | [email protected] "\n\n " | 118 | [email protected] "\n\n " |
120 | [email protected] | 119 | [email protected] |
121 | [email protected] "fn" | 120 | [email protected] "fn" |
diff --git a/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast b/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast index d20bb60f1..4ff27f5c8 100644 --- a/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast +++ b/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast | |||
@@ -9,91 +9,87 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "foo" |
20 | [email protected] "foo" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "=" |
22 | [email protected] "=" | 22 | [email protected] "\n " |
23 | [email protected] "\n " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "let" |
25 | [email protected] "let" | 25 | [email protected] " " |
26 | [email protected] " " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "bar" |
29 | [email protected] "bar" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] "=" |
31 | [email protected] "=" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "1" |
34 | [email protected] "1" | 34 | [email protected] ";" |
35 | [email protected] ";" | 35 | [email protected] "\n " |
36 | [email protected] "\n " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "let" |
38 | [email protected] "let" | 38 | [email protected] "\n " |
39 | [email protected] "\n " | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "let" |
41 | [email protected] "let" | 41 | [email protected] " " |
42 | [email protected] " " | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "baz" |
45 | [email protected] "baz" | 45 | [email protected] " " |
46 | [email protected] " " | 46 | [email protected] "=" |
47 | [email protected] "=" | 47 | [email protected] " " |
48 | [email protected] " " | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "92" |
50 | [email protected] "92" | 50 | [email protected] ";" |
51 | [email protected] ";" | 51 | [email protected] "\n " |
52 | [email protected] "\n " | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "let" |
54 | [email protected] "let" | 54 | [email protected] "\n " |
55 | [email protected] "\n " | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] "if" |
58 | [email protected] "if" | 58 | [email protected] " " |
59 | [email protected] " " | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "true" |
62 | [email protected] "true" | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "{" |
65 | [email protected] | 65 | [email protected] "}" |
66 | [email protected] "{" | 66 | [email protected] "\n " |
67 | [email protected] "}" | 67 | [email protected] |
68 | [email protected] "\n " | 68 | [email protected] "let" |
69 | [email protected] | 69 | [email protected] "\n " |
70 | [email protected] "let" | 70 | [email protected] |
71 | [email protected] "\n " | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] "while" |
73 | [email protected] | 73 | [email protected] " " |
74 | [email protected] "while" | 74 | [email protected] |
75 | [email protected] " " | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "true" |
77 | [email protected] | 77 | [email protected] " " |
78 | [email protected] "true" | 78 | [email protected] |
79 | [email protected] " " | 79 | [email protected] "{" |
80 | [email protected] | 80 | [email protected] "}" |
81 | [email protected] | 81 | [email protected] "\n " |
82 | [email protected] "{" | 82 | [email protected] |
83 | [email protected] "}" | 83 | [email protected] "let" |
84 | [email protected] "\n " | 84 | [email protected] "\n " |
85 | [email protected] | 85 | [email protected] |
86 | [email protected] "let" | 86 | [email protected] "loop" |
87 | [email protected] "\n " | 87 | [email protected] " " |
88 | [email protected] | 88 | [email protected] |
89 | [email protected] "loop" | 89 | [email protected] "{" |
90 | [email protected] " " | 90 | [email protected] "}" |
91 | [email protected] | 91 | [email protected] "\n" |
92 | [email protected] | 92 | [email protected] "}" |
93 | [email protected] "{" | ||
94 | [email protected] "}" | ||
95 | [email protected] "\n" | ||
96 | [email protected] "}" | ||
97 | [email protected] "\n" | 93 | [email protected] "\n" |
98 | error 24..24: expected expression | 94 | error 24..24: expected expression |
99 | error 24..24: expected SEMICOLON | 95 | error 24..24: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast b/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast index 1185f44f9..5f3a31473 100644 --- a/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast +++ b/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast | |||
@@ -12,9 +12,8 @@ [email protected] | |||
12 | [email protected] ")" | 12 | [email protected] ")" |
13 | [email protected] " " | 13 | [email protected] " " |
14 | [email protected] | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "{" |
16 | [email protected] "{" | 16 | [email protected] "}" |
17 | [email protected] "}" | ||
18 | [email protected] "\n" | 17 | [email protected] "\n" |
19 | error 2..2: expected a name | 18 | error 2..2: expected a name |
20 | error 2..2: expected function arguments | 19 | error 2..2: expected function arguments |
diff --git a/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast b/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast index c7bf4caa0..1746bd3c1 100644 --- a/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast +++ b/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast | |||
@@ -26,10 +26,9 @@ [email protected] | |||
26 | [email protected] ")" | 26 | [email protected] ")" |
27 | [email protected] " " | 27 | [email protected] " " |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "{" |
30 | [email protected] "{" | 30 | [email protected] "\n" |
31 | [email protected] "\n" | 31 | [email protected] "}" |
32 | [email protected] "}" | ||
33 | [email protected] "\n" | 32 | [email protected] "\n" |
34 | error 16..16: expected COLON | 33 | error 16..16: expected COLON |
35 | error 16..16: expected type | 34 | error 16..16: expected type |
diff --git a/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast b/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast index cc0d75cc8..28146f44e 100644 --- a/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast +++ b/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast | |||
@@ -9,37 +9,36 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "[" |
17 | [email protected] "[" | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "1" |
19 | [email protected] "1" | 19 | [email protected] "," |
20 | [email protected] "," | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "2" |
23 | [email protected] "2" | 23 | [email protected] "," |
24 | [email protected] "," | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "@" |
27 | [email protected] "@" | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "," |
30 | [email protected] "," | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "struct" |
33 | [email protected] "struct" | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "," |
35 | [email protected] "," | 35 | [email protected] " " |
36 | [email protected] " " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "let" |
38 | [email protected] "let" | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "]" |
40 | [email protected] "]" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] "}" |
42 | [email protected] "}" | ||
43 | [email protected] "\n" | 42 | [email protected] "\n" |
44 | [email protected] | 43 | [email protected] |
45 | [email protected] "fn" | 44 | [email protected] "fn" |
@@ -51,44 +50,43 @@ [email protected] | |||
51 | [email protected] ")" | 50 | [email protected] ")" |
52 | [email protected] " " | 51 | [email protected] " " |
53 | [email protected] | 52 | [email protected] |
54 | [email protected] | 53 | [email protected] "{" |
55 | [email protected] "{" | 54 | [email protected] " " |
56 | [email protected] " " | 55 | [email protected] |
57 | [email protected] | 56 | [email protected] |
58 | [email protected] | 57 | [email protected] |
59 | [email protected] | 58 | [email protected] |
60 | [email protected] | 59 | [email protected] |
61 | [email protected] | 60 | [email protected] |
62 | [email protected] | 61 | [email protected] "foo" |
63 | [email protected] "foo" | 62 | [email protected] |
64 | [email protected] | 63 | [email protected] "(" |
65 | [email protected] "(" | 64 | [email protected] |
66 | [email protected] | 65 | [email protected] "1" |
67 | [email protected] "1" | 66 | [email protected] "," |
68 | [email protected] "," | 67 | [email protected] " " |
69 | [email protected] " " | 68 | [email protected] |
70 | [email protected] | 69 | [email protected] "2" |
71 | [email protected] "2" | 70 | [email protected] "," |
72 | [email protected] "," | 71 | [email protected] " " |
73 | [email protected] " " | 72 | [email protected] |
74 | [email protected] | 73 | [email protected] "@" |
75 | [email protected] "@" | 74 | [email protected] |
76 | [email protected] | 75 | [email protected] |
77 | [email protected] | 76 | [email protected] "," |
78 | [email protected] "," | 77 | [email protected] " " |
79 | [email protected] " " | 78 | [email protected] |
80 | [email protected] | 79 | [email protected] "impl" |
81 | [email protected] "impl" | 80 | [email protected] |
82 | [email protected] | 81 | [email protected] |
83 | [email protected] | 82 | [email protected] "," |
84 | [email protected] "," | 83 | [email protected] " " |
85 | [email protected] " " | 84 | [email protected] |
86 | [email protected] | 85 | [email protected] "let" |
87 | [email protected] "let" | 86 | [email protected] |
88 | [email protected] | 87 | [email protected] ")" |
89 | [email protected] ")" | 88 | [email protected] " " |
90 | [email protected] " " | 89 | [email protected] "}" |
91 | [email protected] "}" | ||
92 | [email protected] "\n" | 90 | [email protected] "\n" |
93 | [email protected] | 91 | [email protected] |
94 | [email protected] "fn" | 92 | [email protected] "fn" |
@@ -100,53 +98,52 @@ [email protected] | |||
100 | [email protected] ")" | 98 | [email protected] ")" |
101 | [email protected] " " | 99 | [email protected] " " |
102 | [email protected] | 100 | [email protected] |
103 | [email protected] | 101 | [email protected] "{" |
104 | [email protected] "{" | 102 | [email protected] " " |
105 | [email protected] " " | 103 | [email protected] |
106 | [email protected] | 104 | [email protected] |
107 | [email protected] | 105 | [email protected] |
108 | [email protected] | 106 | [email protected] |
109 | [email protected] | 107 | [email protected] |
110 | [email protected] | 108 | [email protected] |
111 | [email protected] | 109 | [email protected] "foo" |
112 | [email protected] "foo" | 110 | [email protected] "." |
113 | [email protected] "." | 111 | [email protected] |
114 | [email protected] | 112 | [email protected] "bar" |
115 | [email protected] "bar" | 113 | [email protected] |
116 | [email protected] | 114 | [email protected] "(" |
117 | [email protected] "(" | 115 | [email protected] |
118 | [email protected] | 116 | [email protected] "1" |
119 | [email protected] "1" | 117 | [email protected] "," |
120 | [email protected] "," | 118 | [email protected] " " |
121 | [email protected] " " | 119 | [email protected] |
122 | [email protected] | 120 | [email protected] "2" |
123 | [email protected] "2" | 121 | [email protected] "," |
124 | [email protected] "," | 122 | [email protected] " " |
125 | [email protected] " " | 123 | [email protected] |
126 | [email protected] | 124 | [email protected] "@" |
127 | [email protected] "@" | 125 | [email protected] |
128 | [email protected] | 126 | [email protected] |
129 | [email protected] | 127 | [email protected] "," |
130 | [email protected] "," | 128 | [email protected] " " |
131 | [email protected] " " | 129 | [email protected] |
132 | [email protected] | 130 | [email protected] |
133 | [email protected] | 131 | [email protected] "]" |
134 | [email protected] "]" | 132 | [email protected] |
135 | [email protected] | 133 | [email protected] |
136 | [email protected] | 134 | [email protected] "," |
137 | [email protected] "," | 135 | [email protected] " " |
138 | [email protected] " " | 136 | [email protected] |
139 | [email protected] | 137 | [email protected] "trait" |
140 | [email protected] "trait" | 138 | [email protected] |
141 | [email protected] | 139 | [email protected] "," |
142 | [email protected] "," | 140 | [email protected] " " |
143 | [email protected] " " | 141 | [email protected] |
144 | [email protected] | 142 | [email protected] "let" |
145 | [email protected] "let" | 143 | [email protected] |
146 | [email protected] | 144 | [email protected] ")" |
147 | [email protected] ")" | 145 | [email protected] " " |
148 | [email protected] " " | 146 | [email protected] "}" |
149 | [email protected] "}" | ||
150 | [email protected] "\n" | 147 | [email protected] "\n" |
151 | error 16..16: expected expression | 148 | error 16..16: expected expression |
152 | error 17..17: expected R_BRACK | 149 | error 17..17: expected R_BRACK |
diff --git a/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast b/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast index c37594146..9ea9d715e 100644 --- a/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast +++ b/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast | |||
@@ -9,31 +9,30 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "foo" |
19 | [email protected] "foo" | 19 | [email protected] "!" |
20 | [email protected] "!" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "(" |
23 | [email protected] "(" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] "bar" |
25 | [email protected] "bar" | 25 | [email protected] "," |
26 | [email protected] "," | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] "\"baz\"" |
28 | [email protected] "\"baz\"" | 28 | [email protected] "," |
29 | [email protected] "," | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] "1" |
31 | [email protected] "1" | 31 | [email protected] "," |
32 | [email protected] "," | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] "2.0" |
34 | [email protected] "2.0" | 34 | [email protected] "\n " |
35 | [email protected] "\n " | 35 | [email protected] "}" |
36 | [email protected] "}" | ||
37 | [email protected] " " | 36 | [email protected] " " |
38 | [email protected] "//~ ERROR incorrect c ..." | 37 | [email protected] "//~ ERROR incorrect c ..." |
39 | [email protected] "\n" | 38 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast index 4296355f2..7c957fdde 100644 --- a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast +++ b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast | |||
@@ -62,9 +62,8 @@ [email protected] | |||
62 | [email protected] ")" | 62 | [email protected] ")" |
63 | [email protected] " " | 63 | [email protected] " " |
64 | [email protected] | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] "{" |
66 | [email protected] "{" | 66 | [email protected] "}" |
67 | [email protected] "}" | ||
68 | [email protected] "\n\n" | 67 | [email protected] "\n\n" |
69 | [email protected] | 68 | [email protected] |
70 | [email protected] "fn" | 69 | [email protected] "fn" |
@@ -76,219 +75,218 @@ [email protected] | |||
76 | [email protected] ")" | 75 | [email protected] ")" |
77 | [email protected] " " | 76 | [email protected] " " |
78 | [email protected] | 77 | [email protected] |
79 | [email protected] | 78 | [email protected] "{" |
80 | [email protected] "{" | 79 | [email protected] "\n " |
81 | [email protected] "\n " | 80 | [email protected] |
82 | [email protected] | 81 | [email protected] "let" |
83 | [email protected] "let" | 82 | [email protected] " " |
84 | [email protected] " " | 83 | [email protected] |
85 | [email protected] | 84 | [email protected] "_" |
86 | [email protected] "_" | 85 | [email protected] ":" |
87 | [email protected] ":" | 86 | [email protected] " " |
88 | [email protected] " " | 87 | [email protected] |
89 | [email protected] | 88 | [email protected] |
90 | [email protected] | 89 | [email protected] |
91 | [email protected] | 90 | [email protected] |
92 | [email protected] | 91 | [email protected] |
93 | [email protected] | 92 | [email protected] |
94 | [email protected] | 93 | [email protected] |
95 | [email protected] | 94 | [email protected] "Box" |
96 | [email protected] "Box" | 95 | [email protected] |
97 | [email protected] | 96 | [email protected] "<" |
98 | [email protected] "<" | 97 | [email protected] |
99 | [email protected] | 98 | [email protected] |
100 | [email protected] | 99 | [email protected] "(" |
101 | [email protected] "(" | 100 | [email protected] |
102 | [email protected] | 101 | [email protected] |
103 | [email protected] | 102 | [email protected] |
104 | [email protected] | 103 | [email protected] |
105 | [email protected] | 104 | [email protected] "Copy" |
106 | [email protected] "Copy" | 105 | [email protected] ")" |
107 | [email protected] ")" | 106 | [email protected] " " |
108 | [email protected] " " | 107 | [email protected] "+" |
109 | [email protected] "+" | 108 | [email protected] " " |
110 | [email protected] " " | 109 | [email protected] |
111 | [email protected] | 110 | [email protected] "(" |
112 | [email protected] "(" | 111 | [email protected] "?" |
113 | [email protected] "?" | 112 | [email protected] |
114 | [email protected] | 113 | [email protected] |
115 | [email protected] | 114 | [email protected] |
116 | [email protected] | 115 | [email protected] |
117 | [email protected] | 116 | [email protected] "Sized" |
118 | [email protected] "Sized" | 117 | [email protected] ")" |
119 | [email protected] ")" | 118 | [email protected] " " |
120 | [email protected] " " | 119 | [email protected] "+" |
121 | [email protected] "+" | 120 | [email protected] " " |
122 | [email protected] " " | 121 | [email protected] |
123 | [email protected] | 122 | [email protected] "(" |
124 | [email protected] "(" | 123 | [email protected] |
125 | [email protected] | 124 | [email protected] "for" |
126 | [email protected] "for" | 125 | [email protected] |
127 | [email protected] | 126 | [email protected] "<" |
128 | [email protected] "<" | 127 | [email protected] |
129 | [email protected] | 128 | [email protected] "\'a" |
130 | [email protected] "\'a" | 129 | [email protected] ">" |
131 | [email protected] ">" | 130 | [email protected] " " |
132 | [email protected] " " | 131 | [email protected] |
133 | [email protected] | 132 | [email protected] |
134 | [email protected] | 133 | [email protected] |
135 | [email protected] | 134 | [email protected] |
136 | [email protected] | 135 | [email protected] "Trait" |
137 | [email protected] "Trait" | 136 | [email protected] |
138 | [email protected] | 137 | [email protected] "<" |
139 | [email protected] "<" | 138 | [email protected] |
140 | [email protected] | 139 | [email protected] "\'a" |
141 | [email protected] "\'a" | 140 | [email protected] ">" |
142 | [email protected] ">" | 141 | [email protected] ")" |
143 | [email protected] ")" | 142 | [email protected] |
144 | [email protected] | 143 | [email protected] |
145 | [email protected] | 144 | [email protected] ">" |
146 | [email protected] ">" | 145 | [email protected] ";" |
147 | [email protected] ";" | 146 | [email protected] "\n " |
148 | [email protected] "\n " | 147 | [email protected] |
149 | [email protected] | 148 | [email protected] "let" |
150 | [email protected] "let" | 149 | [email protected] " " |
151 | [email protected] " " | 150 | [email protected] |
152 | [email protected] | 151 | [email protected] "_" |
153 | [email protected] "_" | 152 | [email protected] ":" |
154 | [email protected] ":" | 153 | [email protected] " " |
155 | [email protected] " " | 154 | [email protected] |
156 | [email protected] | 155 | [email protected] |
157 | [email protected] | 156 | [email protected] |
158 | [email protected] | 157 | [email protected] |
159 | [email protected] | 158 | [email protected] "Box" |
160 | [email protected] "Box" | 159 | [email protected] |
161 | [email protected] | 160 | [email protected] "<" |
162 | [email protected] "<" | 161 | [email protected] |
163 | [email protected] | 162 | [email protected] |
164 | [email protected] | 163 | [email protected] "(" |
165 | [email protected] "(" | 164 | [email protected] |
166 | [email protected] | 165 | [email protected] "?" |
167 | [email protected] "?" | 166 | [email protected] |
168 | [email protected] | 167 | [email protected] |
169 | [email protected] | 168 | [email protected] |
170 | [email protected] | 169 | [email protected] |
171 | [email protected] | 170 | [email protected] |
172 | [email protected] | 171 | [email protected] "Sized" |
173 | [email protected] "Sized" | 172 | [email protected] |
174 | [email protected] | 173 | [email protected] |
175 | [email protected] | 174 | [email protected] ")" |
176 | [email protected] ")" | 175 | [email protected] " " |
177 | [email protected] " " | 176 | [email protected] |
178 | [email protected] | 177 | [email protected] |
179 | [email protected] | 178 | [email protected] "+" |
180 | [email protected] "+" | 179 | [email protected] " " |
181 | [email protected] " " | 180 | [email protected] |
182 | [email protected] | 181 | [email protected] |
183 | [email protected] | 182 | [email protected] "(" |
184 | [email protected] "(" | 183 | [email protected] |
185 | [email protected] | 184 | [email protected] |
186 | [email protected] | 185 | [email protected] |
187 | [email protected] | 186 | [email protected] |
188 | [email protected] | 187 | [email protected] |
189 | [email protected] | 188 | [email protected] |
190 | [email protected] | 189 | [email protected] "for" |
191 | [email protected] "for" | 190 | [email protected] |
192 | [email protected] | 191 | [email protected] "<" |
193 | [email protected] "<" | 192 | [email protected] |
194 | [email protected] | 193 | [email protected] "\'a" |
195 | [email protected] "\'a" | 194 | [email protected] ">" |
196 | [email protected] ">" | 195 | [email protected] " " |
197 | [email protected] " " | 196 | [email protected] |
198 | [email protected] | 197 | [email protected] |
199 | [email protected] | 198 | [email protected] |
200 | [email protected] | 199 | [email protected] |
201 | [email protected] | 200 | [email protected] "Trait" |
202 | [email protected] "Trait" | 201 | [email protected] "<" |
203 | [email protected] "<" | 202 | [email protected] |
204 | [email protected] | 203 | [email protected] "\'a" |
205 | [email protected] "\'a" | 204 | [email protected] ">" |
206 | [email protected] ">" | 205 | [email protected] |
207 | [email protected] | 206 | [email protected] ")" |
208 | [email protected] ")" | 207 | [email protected] " " |
209 | [email protected] " " | 208 | [email protected] "+" |
210 | [email protected] "+" | 209 | [email protected] " " |
211 | [email protected] " " | 210 | [email protected] |
212 | [email protected] | 211 | [email protected] "(" |
213 | [email protected] "(" | 212 | [email protected] |
214 | [email protected] | 213 | [email protected] |
215 | [email protected] | 214 | [email protected] |
216 | [email protected] | 215 | [email protected] |
217 | [email protected] | 216 | [email protected] "Copy" |
218 | [email protected] "Copy" | 217 | [email protected] ")" |
219 | [email protected] ")" | 218 | [email protected] ">" |
220 | [email protected] ">" | 219 | [email protected] |
221 | [email protected] | 220 | [email protected] ";" |
222 | [email protected] ";" | 221 | [email protected] "\n " |
223 | [email protected] "\n " | 222 | [email protected] |
224 | [email protected] | 223 | [email protected] "let" |
225 | [email protected] "let" | 224 | [email protected] " " |
226 | [email protected] " " | 225 | [email protected] |
227 | [email protected] | 226 | [email protected] "_" |
228 | [email protected] "_" | 227 | [email protected] ":" |
229 | [email protected] ":" | 228 | [email protected] " " |
230 | [email protected] " " | 229 | [email protected] |
231 | [email protected] | 230 | [email protected] |
232 | [email protected] | 231 | [email protected] |
233 | [email protected] | 232 | [email protected] |
234 | [email protected] | 233 | [email protected] |
235 | [email protected] | 234 | [email protected] |
236 | [email protected] | 235 | [email protected] |
237 | [email protected] | 236 | [email protected] "Box" |
238 | [email protected] "Box" | 237 | [email protected] |
239 | [email protected] | 238 | [email protected] "<" |
240 | [email protected] "<" | 239 | [email protected] |
241 | [email protected] | 240 | [email protected] |
242 | [email protected] | 241 | [email protected] "(" |
243 | [email protected] "(" | 242 | [email protected] |
244 | [email protected] | 243 | [email protected] "for" |
245 | [email protected] "for" | 244 | [email protected] |
246 | [email protected] | 245 | [email protected] "<" |
247 | [email protected] "<" | 246 | [email protected] |
248 | [email protected] | 247 | [email protected] "\'a" |
249 | [email protected] "\'a" | 248 | [email protected] ">" |
250 | [email protected] ">" | 249 | [email protected] " " |
251 | [email protected] " " | 250 | [email protected] |
252 | [email protected] | 251 | [email protected] |
253 | [email protected] | 252 | [email protected] |
254 | [email protected] | 253 | [email protected] |
255 | [email protected] | 254 | [email protected] "Trait" |
256 | [email protected] "Trait" | 255 | [email protected] |
257 | [email protected] | 256 | [email protected] "<" |
258 | [email protected] "<" | 257 | [email protected] |
259 | [email protected] | 258 | [email protected] "\'a" |
260 | [email protected] "\'a" | 259 | [email protected] ">" |
261 | [email protected] ">" | 260 | [email protected] ")" |
262 | [email protected] ")" | 261 | [email protected] " " |
263 | [email protected] " " | 262 | [email protected] "+" |
264 | [email protected] "+" | 263 | [email protected] " " |
265 | [email protected] " " | 264 | [email protected] |
266 | [email protected] | 265 | [email protected] "(" |
267 | [email protected] "(" | 266 | [email protected] |
268 | [email protected] | 267 | [email protected] |
269 | [email protected] | 268 | [email protected] |
270 | [email protected] | 269 | [email protected] |
271 | [email protected] | 270 | [email protected] "Copy" |
272 | [email protected] "Copy" | 271 | [email protected] ")" |
273 | [email protected] ")" | 272 | [email protected] " " |
274 | [email protected] " " | 273 | [email protected] "+" |
275 | [email protected] "+" | 274 | [email protected] " " |
276 | [email protected] " " | 275 | [email protected] |
277 | [email protected] | 276 | [email protected] "(" |
278 | [email protected] "(" | 277 | [email protected] "?" |
279 | [email protected] "?" | 278 | [email protected] |
280 | [email protected] | 279 | [email protected] |
281 | [email protected] | 280 | [email protected] |
282 | [email protected] | 281 | [email protected] |
283 | [email protected] | 282 | [email protected] "Sized" |
284 | [email protected] "Sized" | 283 | [email protected] ")" |
285 | [email protected] ")" | 284 | [email protected] |
286 | [email protected] | 285 | [email protected] |
287 | [email protected] | 286 | [email protected] ">" |
288 | [email protected] ">" | 287 | [email protected] ";" |
289 | [email protected] ";" | 288 | [email protected] "\n" |
290 | [email protected] "\n" | 289 | [email protected] "}" |
291 | [email protected] "}" | ||
292 | [email protected] "\n" | 290 | [email protected] "\n" |
293 | error 88..88: expected COMMA | 291 | error 88..88: expected COMMA |
294 | error 88..88: expected R_ANGLE | 292 | error 88..88: expected R_ANGLE |
diff --git a/crates/ra_syntax/test_data/parser/err/0025_nope.rast b/crates/ra_syntax/test_data/parser/err/0025_nope.rast index 195c08bd9..88b086daf 100644 --- a/crates/ra_syntax/test_data/parser/err/0025_nope.rast +++ b/crates/ra_syntax/test_data/parser/err/0025_nope.rast | |||
@@ -9,187 +9,185 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "enum" |
16 | [email protected] "enum" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "Test" |
19 | [email protected] "Test" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "{" |
22 | [email protected] "{" | 22 | [email protected] "\n " |
23 | [email protected] "\n " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "Var1" |
26 | [email protected] "Var1" | 26 | [email protected] "," |
27 | [email protected] "," | 27 | [email protected] "\n " |
28 | [email protected] "\n " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "Var2" |
31 | [email protected] "Var2" | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "(" |
33 | [email protected] "(" | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "String" |
39 | [email protected] "String" | 39 | [email protected] ")" |
40 | [email protected] ")" | 40 | [email protected] "," |
41 | [email protected] "," | 41 | [email protected] "\n " |
42 | [email protected] "\n " | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "Var3" |
45 | [email protected] "Var3" | 45 | [email protected] " " |
46 | [email protected] " " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "{" |
48 | [email protected] "{" | 48 | [email protected] "\n " |
49 | [email protected] "\n " | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "abc" |
52 | [email protected] "abc" | 52 | [email protected] ":" |
53 | [email protected] ":" | 53 | [email protected] " " |
54 | [email protected] " " | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "{" |
56 | [email protected] "{" | 56 | [email protected] "}" |
57 | [email protected] "}" | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "," |
59 | [email protected] "," | 59 | [email protected] " " |
60 | [email protected] " " | 60 | [email protected] "//~ ERROR: expected t ..." |
61 | [email protected] "//~ ERROR: expected t ..." | 61 | [email protected] "\n " |
62 | [email protected] "\n " | 62 | [email protected] "}" |
63 | [email protected] "}" | 63 | [email protected] "," |
64 | [email protected] "," | 64 | [email protected] "\n " |
65 | [email protected] "\n " | 65 | [email protected] "}" |
66 | [email protected] "}" | 66 | [email protected] "\n\n " |
67 | [email protected] "\n\n " | 67 | [email protected] "// recover..." |
68 | [email protected] "// recover..." | 68 | [email protected] "\n " |
69 | [email protected] "\n " | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] "let" |
71 | [email protected] "let" | 71 | [email protected] " " |
72 | [email protected] " " | 72 | [email protected] |
73 | [email protected] | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] "a" |
75 | [email protected] "a" | 75 | [email protected] " " |
76 | [email protected] " " | 76 | [email protected] "=" |
77 | [email protected] "=" | 77 | [email protected] " " |
78 | [email protected] " " | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "1" |
80 | [email protected] "1" | 80 | [email protected] ";" |
81 | [email protected] ";" | 81 | [email protected] "\n " |
82 | [email protected] "\n " | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "enum" |
84 | [email protected] "enum" | 84 | [email protected] " " |
85 | [email protected] " " | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] "Test2" |
87 | [email protected] "Test2" | 87 | [email protected] " " |
88 | [email protected] " " | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] "{" |
90 | [email protected] "{" | 90 | [email protected] "\n " |
91 | [email protected] "\n " | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] "Fine" |
94 | [email protected] "Fine" | 94 | [email protected] "," |
95 | [email protected] "," | 95 | [email protected] "\n " |
96 | [email protected] "\n " | 96 | [email protected] "}" |
97 | [email protected] "}" | 97 | [email protected] "\n\n " |
98 | [email protected] "\n\n " | 98 | [email protected] |
99 | [email protected] | 99 | [email protected] "enum" |
100 | [email protected] "enum" | 100 | [email protected] " " |
101 | [email protected] " " | 101 | [email protected] |
102 | [email protected] | 102 | [email protected] "Test3" |
103 | [email protected] "Test3" | 103 | [email protected] " " |
104 | [email protected] " " | 104 | [email protected] |
105 | [email protected] | 105 | [email protected] "{" |
106 | [email protected] "{" | 106 | [email protected] "\n " |
107 | [email protected] "\n " | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] |
109 | [email protected] | 109 | [email protected] "StillFine" |
110 | [email protected] "StillFine" | 110 | [email protected] " " |
111 | [email protected] " " | 111 | [email protected] |
112 | [email protected] | 112 | [email protected] "{" |
113 | [email protected] "{" | 113 | [email protected] "\n " |
114 | [email protected] "\n " | 114 | [email protected] |
115 | [email protected] | 115 | [email protected] |
116 | [email protected] | 116 | [email protected] "def" |
117 | [email protected] "def" | 117 | [email protected] ":" |
118 | [email protected] ":" | 118 | [email protected] " " |
119 | [email protected] " " | 119 | [email protected] |
120 | [email protected] | 120 | [email protected] |
121 | [email protected] | 121 | [email protected] |
122 | [email protected] | 122 | [email protected] |
123 | [email protected] | 123 | [email protected] "i32" |
124 | [email protected] "i32" | 124 | [email protected] "," |
125 | [email protected] "," | 125 | [email protected] "\n " |
126 | [email protected] "\n " | 126 | [email protected] "}" |
127 | [email protected] "}" | 127 | [email protected] "," |
128 | [email protected] "," | 128 | [email protected] "\n " |
129 | [email protected] "\n " | 129 | [email protected] "}" |
130 | [email protected] "}" | 130 | [email protected] "\n\n " |
131 | [email protected] "\n\n " | 131 | [email protected] |
132 | [email protected] | 132 | [email protected] |
133 | [email protected] | 133 | [email protected] "{" |
134 | [email protected] | 134 | [email protected] "\n " |
135 | [email protected] "{" | 135 | [email protected] |
136 | [email protected] "\n " | 136 | [email protected] "// fail again" |
137 | [email protected] | 137 | [email protected] "\n " |
138 | [email protected] "// fail again" | 138 | [email protected] "enum" |
139 | [email protected] "\n " | 139 | [email protected] " " |
140 | [email protected] "enum" | 140 | [email protected] |
141 | [email protected] " " | 141 | [email protected] "Test4" |
142 | [email protected] | 142 | [email protected] " " |
143 | [email protected] "Test4" | 143 | [email protected] |
144 | [email protected] " " | 144 | [email protected] "{" |
145 | [email protected] | 145 | [email protected] "\n " |
146 | [email protected] "{" | 146 | [email protected] |
147 | [email protected] "\n " | 147 | [email protected] |
148 | [email protected] | 148 | [email protected] "Nope" |
149 | [email protected] | 149 | [email protected] |
150 | [email protected] "Nope" | 150 | [email protected] "(" |
151 | [email protected] | 151 | [email protected] |
152 | [email protected] "(" | 152 | [email protected] |
153 | [email protected] | 153 | [email protected] |
154 | [email protected] | 154 | [email protected] |
155 | [email protected] | 155 | [email protected] |
156 | [email protected] | 156 | [email protected] "i32" |
157 | [email protected] | 157 | [email protected] " " |
158 | [email protected] "i32" | 158 | [email protected] |
159 | [email protected] " " | 159 | [email protected] |
160 | [email protected] | 160 | [email protected] "{" |
161 | [email protected] | 161 | [email protected] "}" |
162 | [email protected] "{" | 162 | [email protected] |
163 | [email protected] "}" | 163 | [email protected] ")" |
164 | [email protected] | 164 | [email protected] " " |
165 | [email protected] ")" | 165 | [email protected] "//~ ERROR: found `{`" |
166 | [email protected] " " | 166 | [email protected] "\n ..." |
167 | [email protected] "//~ ERROR: found `{`" | 167 | [email protected] "//~^ ERROR: found `{`" |
168 | [email protected] "\n ..." | 168 | [email protected] "\n " |
169 | [email protected] "//~^ ERROR: found `{`" | 169 | [email protected] "}" |
170 | [email protected] "\n " | 170 | [email protected] "\n " |
171 | [email protected] "}" | 171 | [email protected] "}" |
172 | [email protected] "\n " | 172 | [email protected] "\n " |
173 | [email protected] "}" | 173 | [email protected] "// still recover later" |
174 | [email protected] "\n " | 174 | [email protected] "\n " |
175 | [email protected] "// still recover later" | 175 | [email protected] |
176 | [email protected] "\n " | 176 | [email protected] "let" |
177 | [email protected] | 177 | [email protected] " " |
178 | [email protected] "let" | 178 | [email protected] |
179 | [email protected] " " | 179 | [email protected] |
180 | [email protected] | 180 | [email protected] "bad_syntax" |
181 | [email protected] | 181 | [email protected] " " |
182 | [email protected] "bad_syntax" | 182 | [email protected] "=" |
183 | [email protected] " " | 183 | [email protected] " " |
184 | [email protected] "=" | 184 | [email protected] |
185 | [email protected] " " | 185 | [email protected] "_" |
186 | [email protected] | 186 | [email protected] ";" |
187 | [email protected] "_" | 187 | [email protected] " " |
188 | [email protected] ";" | 188 | [email protected] "//~ ERROR: expected e ..." |
189 | [email protected] " " | 189 | [email protected] "\n" |
190 | [email protected] "//~ ERROR: expected e ..." | 190 | [email protected] "}" |
191 | [email protected] "\n" | ||
192 | [email protected] "}" | ||
193 | [email protected] "\n" | 191 | [email protected] "\n" |
194 | error 95..95: expected type | 192 | error 95..95: expected type |
195 | error 95..95: expected COMMA | 193 | error 95..95: expected COMMA |
diff --git a/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast b/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast index f2fada510..568a4cc02 100644 --- a/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast +++ b/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast | |||
@@ -21,9 +21,8 @@ [email protected] | |||
21 | [email protected] ">" | 21 | [email protected] ">" |
22 | [email protected] "\n" | 22 | [email protected] "\n" |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "{" |
25 | [email protected] "{" | 25 | [email protected] "}" |
26 | [email protected] "}" | ||
27 | [email protected] "\n" | 26 | [email protected] "\n" |
28 | error 26..26: expected a path | 27 | error 26..26: expected a path |
29 | error 26..26: expected colon | 28 | error 26..26: expected colon |
diff --git a/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast b/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast index 56682f966..0da8f59f0 100644 --- a/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast +++ b/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast | |||
@@ -20,17 +20,16 @@ [email protected] | |||
20 | [email protected] ")" | 20 | [email protected] ")" |
21 | [email protected] " " | 21 | [email protected] " " |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] "{" | 24 | [email protected] "\n " |
25 | [email protected] "\n " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "a" |
31 | [email protected] "a" | 31 | [email protected] "." |
32 | [email protected] "." | 32 | [email protected] "\n" |
33 | [email protected] "\n" | 33 | [email protected] "}" |
34 | [email protected] "}" | ||
35 | [email protected] "\n" | 34 | [email protected] "\n" |
36 | error 21..21: expected field name or number | 35 | error 21..21: expected field name or number |
diff --git a/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast b/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast index aac476430..515819e42 100644 --- a/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast +++ b/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast | |||
@@ -9,115 +9,111 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "inner" |
20 | [email protected] "inner" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "=" |
22 | [email protected] "=" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "{" |
25 | [email protected] | 25 | [email protected] "\n " |
26 | [email protected] "{" | 26 | [email protected] |
27 | [email protected] "\n " | 27 | [email protected] "#" |
28 | [email protected] | 28 | [email protected] "!" |
29 | [email protected] "#" | 29 | [email protected] "[" |
30 | [email protected] "!" | 30 | [email protected] |
31 | [email protected] "[" | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "doc" |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] "doc" | 35 | [email protected] "(" |
36 | [email protected] | 36 | [email protected] "\"Inner attributes not ..." |
37 | [email protected] "(" | 37 | [email protected] ")" |
38 | [email protected] "\"Inner attributes not ..." | 38 | [email protected] "]" |
39 | [email protected] ")" | 39 | [email protected] "\n " |
40 | [email protected] "]" | 40 | [email protected] "//! Nor are ModuleDoc ..." |
41 | [email protected] "\n " | 41 | [email protected] "\n " |
42 | [email protected] "//! Nor are ModuleDoc ..." | 42 | [email protected] "}" |
43 | [email protected] "\n " | 43 | [email protected] ";" |
44 | [email protected] "}" | 44 | [email protected] "\n " |
45 | [email protected] ";" | 45 | [email protected] |
46 | [email protected] "\n " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "if" |
48 | [email protected] | 48 | [email protected] " " |
49 | [email protected] "if" | 49 | [email protected] |
50 | [email protected] " " | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "true" |
52 | [email protected] | 52 | [email protected] " " |
53 | [email protected] "true" | 53 | [email protected] |
54 | [email protected] " " | 54 | [email protected] "{" |
55 | [email protected] | 55 | [email protected] "\n " |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] "{" | 57 | [email protected] "#" |
58 | [email protected] "\n " | 58 | [email protected] "!" |
59 | [email protected] | 59 | [email protected] "[" |
60 | [email protected] "#" | 60 | [email protected] |
61 | [email protected] "!" | 61 | [email protected] |
62 | [email protected] "[" | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "doc" |
64 | [email protected] | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] "(" |
66 | [email protected] "doc" | 66 | [email protected] "\"Nor here\"" |
67 | [email protected] | 67 | [email protected] ")" |
68 | [email protected] "(" | 68 | [email protected] "]" |
69 | [email protected] "\"Nor here\"" | 69 | [email protected] "\n " |
70 | [email protected] ")" | 70 | [email protected] |
71 | [email protected] "]" | 71 | [email protected] "#" |
72 | [email protected] "\n " | 72 | [email protected] "!" |
73 | [email protected] | 73 | [email protected] "[" |
74 | [email protected] "#" | 74 | [email protected] |
75 | [email protected] "!" | 75 | [email protected] |
76 | [email protected] "[" | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] "doc" |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "(" |
80 | [email protected] "doc" | 80 | [email protected] "\"We error on each attr\"" |
81 | [email protected] | 81 | [email protected] ")" |
82 | [email protected] "(" | 82 | [email protected] "]" |
83 | [email protected] "\"We error on each attr\"" | 83 | [email protected] "\n " |
84 | [email protected] ")" | 84 | [email protected] "//! Nor are ModuleDoc ..." |
85 | [email protected] "]" | 85 | [email protected] "\n " |
86 | [email protected] "\n " | 86 | [email protected] "}" |
87 | [email protected] "//! Nor are ModuleDoc ..." | 87 | [email protected] "\n " |
88 | [email protected] "\n " | 88 | [email protected] |
89 | [email protected] "}" | 89 | [email protected] "while" |
90 | [email protected] "\n " | 90 | [email protected] " " |
91 | [email protected] | 91 | [email protected] |
92 | [email protected] "while" | 92 | [email protected] |
93 | [email protected] " " | 93 | [email protected] "true" |
94 | [email protected] | 94 | [email protected] " " |
95 | [email protected] | 95 | [email protected] |
96 | [email protected] "true" | 96 | [email protected] "{" |
97 | [email protected] " " | 97 | [email protected] "\n " |
98 | [email protected] | 98 | [email protected] |
99 | [email protected] | 99 | [email protected] "#" |
100 | [email protected] "{" | 100 | [email protected] "!" |
101 | [email protected] "\n " | 101 | [email protected] "[" |
102 | [email protected] | 102 | [email protected] |
103 | [email protected] "#" | 103 | [email protected] |
104 | [email protected] "!" | 104 | [email protected] |
105 | [email protected] "[" | 105 | [email protected] "doc" |
106 | [email protected] | 106 | [email protected] |
107 | [email protected] | 107 | [email protected] "(" |
108 | [email protected] | 108 | [email protected] "\"Nor here\"" |
109 | [email protected] "doc" | 109 | [email protected] ")" |
110 | [email protected] | 110 | [email protected] "]" |
111 | [email protected] "(" | 111 | [email protected] "\n " |
112 | [email protected] "\"Nor here\"" | 112 | [email protected] "//! Nor are ModuleDoc ..." |
113 | [email protected] ")" | 113 | [email protected] "\n " |
114 | [email protected] "]" | 114 | [email protected] "}" |
115 | [email protected] "\n " | 115 | [email protected] "\n" |
116 | [email protected] "//! Nor are ModuleDoc ..." | 116 | [email protected] "}" |
117 | [email protected] "\n " | ||
118 | [email protected] "}" | ||
119 | [email protected] "\n" | ||
120 | [email protected] "}" | ||
121 | [email protected] "\n" | 117 | [email protected] "\n" |
122 | error 39..83: A block in this position cannot accept inner attributes | 118 | error 39..83: A block in this position cannot accept inner attributes |
123 | error 152..171: A block in this position cannot accept inner attributes | 119 | error 152..171: A block in this position cannot accept inner attributes |
diff --git a/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast b/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast index f98de7f15..c6859eca8 100644 --- a/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast +++ b/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast | |||
@@ -9,187 +9,186 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "match" |
17 | [email protected] "match" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "(" |
20 | [email protected] "(" | 20 | [email protected] ")" |
21 | [email protected] ")" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] "{" | 24 | [email protected] "\n " |
25 | [email protected] "\n " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "_" |
28 | [email protected] "_" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] "=>" |
30 | [email protected] "=>" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "(" |
33 | [email protected] "(" | 33 | [email protected] ")" |
34 | [email protected] ")" | 34 | [email protected] "," |
35 | [email protected] "," | 35 | [email protected] "\n " |
36 | [email protected] "\n " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "#" |
39 | [email protected] "#" | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "!" |
41 | [email protected] "!" | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "[" |
43 | [email protected] "[" | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "doc" |
49 | [email protected] "doc" | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] "(" |
51 | [email protected] "(" | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "\"Not allowed here\"" |
53 | [email protected] "\"Not allowed here\"" | 53 | [email protected] ")" |
54 | [email protected] ")" | 54 | [email protected] "]" |
55 | [email protected] "]" | 55 | [email protected] "\n " |
56 | [email protected] "\n " | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "_" |
59 | [email protected] "_" | 59 | [email protected] " " |
60 | [email protected] " " | 60 | [email protected] "=>" |
61 | [email protected] "=>" | 61 | [email protected] " " |
62 | [email protected] " " | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "(" |
64 | [email protected] "(" | 64 | [email protected] ")" |
65 | [email protected] ")" | 65 | [email protected] "," |
66 | [email protected] "," | 66 | [email protected] "\n " |
67 | [email protected] "\n " | 67 | [email protected] "}" |
68 | [email protected] "}" | 68 | [email protected] "\n\n " |
69 | [email protected] "\n\n " | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "match" |
72 | [email protected] "match" | 72 | [email protected] " " |
73 | [email protected] " " | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] "(" |
75 | [email protected] "(" | 75 | [email protected] ")" |
76 | [email protected] ")" | 76 | [email protected] " " |
77 | [email protected] " " | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] "{" |
79 | [email protected] "{" | 79 | [email protected] "\n " |
80 | [email protected] "\n " | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] "_" |
83 | [email protected] "_" | 83 | [email protected] " " |
84 | [email protected] " " | 84 | [email protected] "=>" |
85 | [email protected] "=>" | 85 | [email protected] " " |
86 | [email protected] " " | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] "(" |
88 | [email protected] "(" | 88 | [email protected] ")" |
89 | [email protected] ")" | 89 | [email protected] "," |
90 | [email protected] "," | 90 | [email protected] "\n " |
91 | [email protected] "\n " | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] "_" |
94 | [email protected] "_" | 94 | [email protected] " " |
95 | [email protected] " " | 95 | [email protected] "=>" |
96 | [email protected] "=>" | 96 | [email protected] " " |
97 | [email protected] " " | 97 | [email protected] |
98 | [email protected] | 98 | [email protected] "(" |
99 | [email protected] "(" | 99 | [email protected] ")" |
100 | [email protected] ")" | 100 | [email protected] "," |
101 | [email protected] "," | 101 | [email protected] "\n " |
102 | [email protected] "\n " | 102 | [email protected] |
103 | [email protected] | 103 | [email protected] |
104 | [email protected] | 104 | [email protected] "#" |
105 | [email protected] "#" | 105 | [email protected] |
106 | [email protected] | 106 | [email protected] "!" |
107 | [email protected] "!" | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] "[" |
109 | [email protected] "[" | 109 | [email protected] |
110 | [email protected] | 110 | [email protected] |
111 | [email protected] | 111 | [email protected] |
112 | [email protected] | 112 | [email protected] |
113 | [email protected] | 113 | [email protected] |
114 | [email protected] | 114 | [email protected] "doc" |
115 | [email protected] "doc" | 115 | [email protected] |
116 | [email protected] | 116 | [email protected] "(" |
117 | [email protected] "(" | 117 | [email protected] |
118 | [email protected] | 118 | [email protected] "\"Nor here\"" |
119 | [email protected] "\"Nor here\"" | 119 | [email protected] ")" |
120 | [email protected] ")" | 120 | [email protected] "]" |
121 | [email protected] "]" | 121 | [email protected] "\n " |
122 | [email protected] "\n " | 122 | [email protected] "}" |
123 | [email protected] "}" | 123 | [email protected] "\n\n " |
124 | [email protected] "\n\n " | 124 | [email protected] |
125 | [email protected] | 125 | [email protected] "match" |
126 | [email protected] "match" | 126 | [email protected] " " |
127 | [email protected] " " | 127 | [email protected] |
128 | [email protected] | 128 | [email protected] "(" |
129 | [email protected] "(" | 129 | [email protected] ")" |
130 | [email protected] ")" | 130 | [email protected] " " |
131 | [email protected] " " | 131 | [email protected] |
132 | [email protected] | 132 | [email protected] "{" |
133 | [email protected] "{" | 133 | [email protected] "\n " |
134 | [email protected] "\n " | 134 | [email protected] |
135 | [email protected] | 135 | [email protected] |
136 | [email protected] | 136 | [email protected] "#" |
137 | [email protected] "#" | 137 | [email protected] "[" |
138 | [email protected] "[" | 138 | [email protected] |
139 | [email protected] | 139 | [email protected] |
140 | [email protected] | 140 | [email protected] |
141 | [email protected] | 141 | [email protected] "cfg" |
142 | [email protected] "cfg" | 142 | [email protected] |
143 | [email protected] | 143 | [email protected] "(" |
144 | [email protected] "(" | 144 | [email protected] "test" |
145 | [email protected] "test" | 145 | [email protected] ")" |
146 | [email protected] ")" | 146 | [email protected] "]" |
147 | [email protected] "]" | 147 | [email protected] "\n " |
148 | [email protected] "\n " | 148 | [email protected] |
149 | [email protected] | 149 | [email protected] "#" |
150 | [email protected] "#" | 150 | [email protected] |
151 | [email protected] | 151 | [email protected] "!" |
152 | [email protected] "!" | 152 | [email protected] |
153 | [email protected] | 153 | [email protected] "[" |
154 | [email protected] "[" | 154 | [email protected] |
155 | [email protected] | 155 | [email protected] |
156 | [email protected] | 156 | [email protected] |
157 | [email protected] | 157 | [email protected] |
158 | [email protected] | 158 | [email protected] |
159 | [email protected] | 159 | [email protected] "doc" |
160 | [email protected] "doc" | 160 | [email protected] |
161 | [email protected] | 161 | [email protected] "(" |
162 | [email protected] "(" | 162 | [email protected] |
163 | [email protected] | 163 | [email protected] "\"Nor here\"" |
164 | [email protected] "\"Nor here\"" | 164 | [email protected] ")" |
165 | [email protected] ")" | 165 | [email protected] "]" |
166 | [email protected] "]" | 166 | [email protected] "\n " |
167 | [email protected] "\n " | 167 | [email protected] |
168 | [email protected] | 168 | [email protected] |
169 | [email protected] | 169 | [email protected] "_" |
170 | [email protected] "_" | 170 | [email protected] " " |
171 | [email protected] " " | 171 | [email protected] "=>" |
172 | [email protected] "=>" | 172 | [email protected] " " |
173 | [email protected] " " | 173 | [email protected] |
174 | [email protected] | 174 | [email protected] "(" |
175 | [email protected] "(" | 175 | [email protected] ")" |
176 | [email protected] ")" | 176 | [email protected] "," |
177 | [email protected] "," | 177 | [email protected] "\n " |
178 | [email protected] "\n " | 178 | [email protected] |
179 | [email protected] | 179 | [email protected] |
180 | [email protected] | 180 | [email protected] "_" |
181 | [email protected] "_" | 181 | [email protected] " " |
182 | [email protected] " " | 182 | [email protected] "=>" |
183 | [email protected] "=>" | 183 | [email protected] " " |
184 | [email protected] " " | 184 | [email protected] |
185 | [email protected] | 185 | [email protected] "(" |
186 | [email protected] "(" | 186 | [email protected] ")" |
187 | [email protected] ")" | 187 | [email protected] "," |
188 | [email protected] "," | 188 | [email protected] "\n " |
189 | [email protected] "\n " | 189 | [email protected] "}" |
190 | [email protected] "}" | 190 | [email protected] "\n" |
191 | [email protected] "\n" | 191 | [email protected] "}" |
192 | [email protected] "}" | ||
193 | [email protected] "\n" | 192 | [email protected] "\n" |
194 | error 52..52: expected `[` | 193 | error 52..52: expected `[` |
195 | error 52..52: expected pattern | 194 | error 52..52: expected pattern |
diff --git a/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast b/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast index d0017c883..53e445459 100644 --- a/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast +++ b/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast | |||
@@ -9,58 +9,57 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "match" |
16 | [email protected] "match" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "(" |
19 | [email protected] "(" | 19 | [email protected] ")" |
20 | [email protected] ")" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "{" |
23 | [email protected] "{" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "_" |
27 | [email protected] "_" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] "=>" |
29 | [email protected] "=>" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "(" |
32 | [email protected] "(" | 32 | [email protected] ")" |
33 | [email protected] ")" | 33 | [email protected] "," |
34 | [email protected] "," | 34 | [email protected] "\n " |
35 | [email protected] "\n " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "_" |
38 | [email protected] "_" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] "=>" |
40 | [email protected] "=>" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "(" |
43 | [email protected] "(" | 43 | [email protected] ")" |
44 | [email protected] ")" | 44 | [email protected] "," |
45 | [email protected] "," | 45 | [email protected] "\n " |
46 | [email protected] "\n " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "#" |
49 | [email protected] "#" | 49 | [email protected] "[" |
50 | [email protected] "[" | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "cfg" |
54 | [email protected] "cfg" | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "(" |
56 | [email protected] "(" | 56 | [email protected] "test" |
57 | [email protected] "test" | 57 | [email protected] ")" |
58 | [email protected] ")" | 58 | [email protected] "]" |
59 | [email protected] "]" | 59 | [email protected] "\n " |
60 | [email protected] "\n " | 60 | [email protected] "}" |
61 | [email protected] "}" | 61 | [email protected] "\n" |
62 | [email protected] "\n" | 62 | [email protected] "}" |
63 | [email protected] "}" | ||
64 | [email protected] "\n" | 63 | [email protected] "\n" |
65 | error 80..80: expected pattern | 64 | error 80..80: expected pattern |
66 | error 80..80: expected FAT_ARROW | 65 | error 80..80: expected FAT_ARROW |
diff --git a/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast b/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast index 2c0bddec8..1b2ac5011 100644 --- a/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast +++ b/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast | |||
@@ -9,84 +9,83 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "ref" |
19 | [email protected] "ref" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "box" |
22 | [email protected] "box" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "i" |
30 | [email protected] "i" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] "=" |
32 | [email protected] "=" | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "(" |
35 | [email protected] "(" | 35 | [email protected] ")" |
36 | [email protected] ")" | 36 | [email protected] ";" |
37 | [email protected] ";" | 37 | [email protected] "\n " |
38 | [email protected] "\n " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "let" |
40 | [email protected] "let" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "mut" |
43 | [email protected] "mut" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "box" |
46 | [email protected] "box" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "i" |
54 | [email protected] "i" | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] "=" |
56 | [email protected] "=" | 56 | [email protected] " " |
57 | [email protected] " " | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "(" |
59 | [email protected] "(" | 59 | [email protected] ")" |
60 | [email protected] ")" | 60 | [email protected] ";" |
61 | [email protected] ";" | 61 | [email protected] "\n " |
62 | [email protected] "\n " | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "let" |
64 | [email protected] "let" | 64 | [email protected] " " |
65 | [email protected] " " | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] "ref" |
67 | [email protected] "ref" | 67 | [email protected] " " |
68 | [email protected] " " | 68 | [email protected] "mut" |
69 | [email protected] "mut" | 69 | [email protected] " " |
70 | [email protected] " " | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "box" |
72 | [email protected] "box" | 72 | [email protected] " " |
73 | [email protected] " " | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "i" |
80 | [email protected] "i" | 80 | [email protected] " " |
81 | [email protected] " " | 81 | [email protected] "=" |
82 | [email protected] "=" | 82 | [email protected] " " |
83 | [email protected] " " | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] "(" |
85 | [email protected] "(" | 85 | [email protected] ")" |
86 | [email protected] ")" | 86 | [email protected] ";" |
87 | [email protected] ";" | 87 | [email protected] "\n" |
88 | [email protected] "\n" | 88 | [email protected] "}" |
89 | [email protected] "}" | ||
90 | [email protected] "\n\n" | 89 | [email protected] "\n\n" |
91 | error 24..24: expected a name | 90 | error 24..24: expected a name |
92 | error 27..27: expected SEMICOLON | 91 | error 27..27: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast b/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast index 83851f5d2..9588cf3b3 100644 --- a/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast +++ b/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast | |||
@@ -44,9 +44,8 @@ [email protected] | |||
44 | [email protected] ")" | 44 | [email protected] ")" |
45 | [email protected] " " | 45 | [email protected] " " |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "{" |
48 | [email protected] "{" | 48 | [email protected] "}" |
49 | [email protected] "}" | ||
50 | [email protected] "\n" | 49 | [email protected] "\n" |
51 | error 17..17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier | 50 | error 17..17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier |
52 | error 17..17: expected SEMICOLON | 51 | error 17..17: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast b/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast index a328222aa..e3cda7c43 100644 --- a/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast +++ b/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast | |||
@@ -27,9 +27,8 @@ [email protected] | |||
27 | [email protected] ")" | 27 | [email protected] ")" |
28 | [email protected] " " | 28 | [email protected] " " |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "{" |
31 | [email protected] "{" | 31 | [email protected] "}" |
32 | [email protected] "}" | ||
33 | [email protected] "\n " | 32 | [email protected] "\n " |
34 | [email protected] | 33 | [email protected] |
35 | [email protected] | 34 | [email protected] |
@@ -44,9 +43,8 @@ [email protected] | |||
44 | [email protected] ")" | 43 | [email protected] ")" |
45 | [email protected] " " | 44 | [email protected] " " |
46 | [email protected] | 45 | [email protected] |
47 | [email protected] | 46 | [email protected] "{" |
48 | [email protected] "{" | 47 | [email protected] "}" |
49 | [email protected] "}" | ||
50 | [email protected] "\n " | 48 | [email protected] "\n " |
51 | [email protected] | 49 | [email protected] |
52 | [email protected] | 50 | [email protected] |
diff --git a/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast b/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast index bcd1fad69..21db9ee85 100644 --- a/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast +++ b/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast | |||
@@ -9,22 +9,21 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] "0" |
18 | [email protected] "0" | 18 | [email protected] "..=" |
19 | [email protected] "..=" | 19 | [email protected] ";" |
20 | [email protected] ";" | 20 | [email protected] "\n " |
21 | [email protected] "\n " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "..=" |
24 | [email protected] "..=" | 24 | [email protected] ";" |
25 | [email protected] ";" | 25 | [email protected] "\n" |
26 | [email protected] "\n" | 26 | [email protected] "}" |
27 | [email protected] "}" | ||
28 | [email protected] "\n" | 27 | [email protected] "\n" |
29 | error 16..20: An inclusive range must have an end expression | 28 | error 16..20: An inclusive range must have an end expression |
30 | error 26..29: An inclusive range must have an end expression | 29 | error 26..29: An inclusive range must have an end expression |
diff --git a/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast index 433ea7bad..ec950381b 100644 --- a/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast +++ b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast | |||
@@ -18,66 +18,65 @@ [email protected] | |||
18 | [email protected] "i32" | 18 | [email protected] "i32" |
19 | [email protected] " " | 19 | [email protected] " " |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "{" |
22 | [email protected] "{" | 22 | [email protected] "\n " |
23 | [email protected] "\n " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "[" |
29 | [email protected] "[" | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "1" |
31 | [email protected] "1" | 31 | [email protected] "," |
32 | [email protected] "," | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "2" |
35 | [email protected] "2" | 35 | [email protected] "," |
36 | [email protected] "," | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "3" |
39 | [email protected] "3" | 39 | [email protected] "]" |
40 | [email protected] "]" | 40 | [email protected] "." |
41 | [email protected] "." | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "iter" |
43 | [email protected] "iter" | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "(" |
45 | [email protected] "(" | 45 | [email protected] ")" |
46 | [email protected] ")" | 46 | [email protected] "\n " |
47 | [email protected] "\n " | 47 | [email protected] "." |
48 | [email protected] "." | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "map" |
50 | [email protected] "map" | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "(" |
52 | [email protected] "(" | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "|" |
55 | [email protected] "|" | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "it" |
59 | [email protected] "it" | 59 | [email protected] "|" |
60 | [email protected] "|" | 60 | [email protected] ")" |
61 | [email protected] ")" | 61 | [email protected] "\n " |
62 | [email protected] "\n " | 62 | [email protected] "." |
63 | [email protected] "." | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "max" |
65 | [email protected] "max" | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] "::" |
67 | [email protected] "::" | 67 | [email protected] "<" |
68 | [email protected] "<" | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] |
73 | [email protected] | 73 | [email protected] "i32" |
74 | [email protected] "i32" | 74 | [email protected] ">" |
75 | [email protected] ">" | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "(" |
77 | [email protected] "(" | 77 | [email protected] ")" |
78 | [email protected] ")" | 78 | [email protected] ";" |
79 | [email protected] ";" | 79 | [email protected] "\n" |
80 | [email protected] "\n" | 80 | [email protected] "}" |
81 | [email protected] "}" | ||
82 | [email protected] "\n" | 81 | [email protected] "\n" |
83 | error 56..56: expected expression | 82 | error 56..56: expected expression |
diff --git a/crates/ra_syntax/test_data/parser/err/0040_illegal_crate_kw_location.rast b/crates/ra_syntax/test_data/parser/err/0040_illegal_crate_kw_location.rast new file mode 100644 index 000000000..d2a549273 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0040_illegal_crate_kw_location.rast | |||
@@ -0,0 +1,91 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] "use" | ||
4 | [email protected] " " | ||
5 | [email protected] | ||
6 | [email protected] | ||
7 | [email protected] | ||
8 | [email protected] "::" | ||
9 | [email protected] "crate" | ||
10 | [email protected] ";" | ||
11 | [email protected] "\n" | ||
12 | [email protected] | ||
13 | [email protected] "use" | ||
14 | [email protected] " " | ||
15 | [email protected] | ||
16 | [email protected] | ||
17 | [email protected] "{" | ||
18 | [email protected] | ||
19 | [email protected] | ||
20 | [email protected] | ||
21 | [email protected] "crate" | ||
22 | [email protected] "," | ||
23 | [email protected] " " | ||
24 | [email protected] | ||
25 | [email protected] | ||
26 | [email protected] | ||
27 | [email protected] | ||
28 | [email protected] "foo" | ||
29 | [email protected] "::" | ||
30 | [email protected] | ||
31 | [email protected] "{" | ||
32 | [email protected] | ||
33 | [email protected] | ||
34 | [email protected] | ||
35 | [email protected] | ||
36 | [email protected] | ||
37 | [email protected] | ||
38 | [email protected] "crate" | ||
39 | [email protected] "::" | ||
40 | [email protected] | ||
41 | [email protected] | ||
42 | [email protected] "foo" | ||
43 | [email protected] "::" | ||
44 | [email protected] | ||
45 | [email protected] | ||
46 | [email protected] "bar" | ||
47 | [email protected] "::" | ||
48 | [email protected] | ||
49 | [email protected] | ||
50 | [email protected] "baz" | ||
51 | [email protected] "}" | ||
52 | [email protected] "}" | ||
53 | [email protected] ";" | ||
54 | [email protected] "\n" | ||
55 | [email protected] | ||
56 | [email protected] "use" | ||
57 | [email protected] " " | ||
58 | [email protected] | ||
59 | [email protected] | ||
60 | [email protected] | ||
61 | [email protected] | ||
62 | [email protected] | ||
63 | [email protected] "hello" | ||
64 | [email protected] "::" | ||
65 | [email protected] | ||
66 | [email protected] "crate" | ||
67 | [email protected] ";" | ||
68 | [email protected] "\n" | ||
69 | [email protected] | ||
70 | [email protected] "use" | ||
71 | [email protected] " " | ||
72 | [email protected] | ||
73 | [email protected] | ||
74 | [email protected] | ||
75 | [email protected] | ||
76 | [email protected] | ||
77 | [email protected] | ||
78 | [email protected] "hello" | ||
79 | [email protected] "::" | ||
80 | [email protected] | ||
81 | [email protected] "crate" | ||
82 | [email protected] "::" | ||
83 | [email protected] | ||
84 | [email protected] | ||
85 | [email protected] "there" | ||
86 | [email protected] ";" | ||
87 | [email protected] "\n" | ||
88 | error 6..11: The `crate` keyword is only allowed as the first segment of a path | ||
89 | error 31..36: The `crate` keyword is only allowed as the first segment of a path | ||
90 | error 66..71: The `crate` keyword is only allowed as the first segment of a path | ||
91 | error 84..89: The `crate` keyword is only allowed as the first segment of a path | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0040_illegal_crate_kw_location.rs b/crates/ra_syntax/test_data/parser/err/0040_illegal_crate_kw_location.rs new file mode 100644 index 000000000..508def2c7 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0040_illegal_crate_kw_location.rs | |||
@@ -0,0 +1,4 @@ | |||
1 | use ::crate; | ||
2 | use {crate, foo::{crate::foo::bar::baz}}; | ||
3 | use hello::crate; | ||
4 | use hello::crate::there; | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast b/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast new file mode 100644 index 000000000..d0360c467 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast | |||
@@ -0,0 +1,70 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] "use" | ||
4 | [email protected] " " | ||
5 | [email protected] | ||
6 | [email protected] | ||
7 | [email protected] | ||
8 | [email protected] "::" | ||
9 | [email protected] "super" | ||
10 | [email protected] ";" | ||
11 | [email protected] "\n" | ||
12 | [email protected] | ||
13 | [email protected] "use" | ||
14 | [email protected] " " | ||
15 | [email protected] | ||
16 | [email protected] | ||
17 | [email protected] | ||
18 | [email protected] | ||
19 | [email protected] | ||
20 | [email protected] "a" | ||
21 | [email protected] "::" | ||
22 | [email protected] | ||
23 | [email protected] "super" | ||
24 | [email protected] ";" | ||
25 | [email protected] "\n" | ||
26 | [email protected] | ||
27 | [email protected] "use" | ||
28 | [email protected] " " | ||
29 | [email protected] | ||
30 | [email protected] | ||
31 | [email protected] | ||
32 | [email protected] | ||
33 | [email protected] | ||
34 | [email protected] "super" | ||
35 | [email protected] "::" | ||
36 | [email protected] | ||
37 | [email protected] | ||
38 | [email protected] "a" | ||
39 | [email protected] "::" | ||
40 | [email protected] | ||
41 | [email protected] "super" | ||
42 | [email protected] ";" | ||
43 | [email protected] "\n" | ||
44 | [email protected] | ||
45 | [email protected] "use" | ||
46 | [email protected] " " | ||
47 | [email protected] | ||
48 | [email protected] | ||
49 | [email protected] | ||
50 | [email protected] | ||
51 | [email protected] "a" | ||
52 | [email protected] "::" | ||
53 | [email protected] | ||
54 | [email protected] "{" | ||
55 | [email protected] | ||
56 | [email protected] | ||
57 | [email protected] | ||
58 | [email protected] | ||
59 | [email protected] "super" | ||
60 | [email protected] "::" | ||
61 | [email protected] | ||
62 | [email protected] | ||
63 | [email protected] "b" | ||
64 | [email protected] "}" | ||
65 | [email protected] ";" | ||
66 | [email protected] "\n" | ||
67 | error 6..11: The `super` keyword may only be preceded by other `super`s | ||
68 | error 20..25: The `super` keyword may only be preceded by other `super`s | ||
69 | error 41..46: The `super` keyword may only be preceded by other `super`s | ||
70 | error 56..61: The `super` keyword may only be preceded by other `super`s | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs b/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs new file mode 100644 index 000000000..bd4d58042 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs | |||
@@ -0,0 +1,4 @@ | |||
1 | use ::super; | ||
2 | use a::super; | ||
3 | use super::a::super; | ||
4 | use a::{super::b}; | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast b/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast new file mode 100644 index 000000000..4f382b06c --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast | |||
@@ -0,0 +1,27 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] "use" | ||
4 | [email protected] " " | ||
5 | [email protected] | ||
6 | [email protected] | ||
7 | [email protected] | ||
8 | [email protected] "::" | ||
9 | [email protected] "self" | ||
10 | [email protected] ";" | ||
11 | [email protected] "\n" | ||
12 | [email protected] | ||
13 | [email protected] "use" | ||
14 | [email protected] " " | ||
15 | [email protected] | ||
16 | [email protected] | ||
17 | [email protected] | ||
18 | [email protected] | ||
19 | [email protected] | ||
20 | [email protected] "a" | ||
21 | [email protected] "::" | ||
22 | [email protected] | ||
23 | [email protected] "self" | ||
24 | [email protected] ";" | ||
25 | [email protected] "\n" | ||
26 | error 6..10: The `self` keyword is only allowed as the first segment of a path | ||
27 | error 19..23: The `self` keyword is only allowed as the first segment of a path | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs b/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs new file mode 100644 index 000000000..b9e1d7d8b --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs | |||
@@ -0,0 +1,2 @@ | |||
1 | use ::self; | ||
2 | use a::self; | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rast b/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rast new file mode 100644 index 000000000..e46456384 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rast | |||
@@ -0,0 +1,71 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] "fn" | ||
4 | [email protected] " " | ||
5 | [email protected] | ||
6 | [email protected] "main" | ||
7 | [email protected] | ||
8 | [email protected] "(" | ||
9 | [email protected] ")" | ||
10 | [email protected] " " | ||
11 | [email protected] | ||
12 | [email protected] "{" | ||
13 | [email protected] "\n " | ||
14 | [email protected] | ||
15 | [email protected] | ||
16 | [email protected] "{" | ||
17 | [email protected] " " | ||
18 | [email protected] | ||
19 | [email protected] "unsafe" | ||
20 | [email protected] " " | ||
21 | [email protected] | ||
22 | [email protected] "92" | ||
23 | [email protected] " " | ||
24 | [email protected] "}" | ||
25 | [email protected] "\n " | ||
26 | [email protected] | ||
27 | [email protected] | ||
28 | [email protected] "{" | ||
29 | [email protected] " " | ||
30 | [email protected] | ||
31 | [email protected] "async" | ||
32 | [email protected] " " | ||
33 | [email protected] | ||
34 | [email protected] "92" | ||
35 | [email protected] " " | ||
36 | [email protected] "}" | ||
37 | [email protected] "\n " | ||
38 | [email protected] | ||
39 | [email protected] | ||
40 | [email protected] "{" | ||
41 | [email protected] " " | ||
42 | [email protected] | ||
43 | [email protected] | ||
44 | [email protected] "try" | ||
45 | [email protected] " " | ||
46 | [email protected] | ||
47 | [email protected] "92" | ||
48 | [email protected] " " | ||
49 | [email protected] "}" | ||
50 | [email protected] "\n " | ||
51 | [email protected] | ||
52 | [email protected] "{" | ||
53 | [email protected] " " | ||
54 | [email protected] | ||
55 | [email protected] | ||
56 | [email protected] | ||
57 | [email protected] "\'label" | ||
58 | [email protected] ":" | ||
59 | [email protected] " " | ||
60 | [email protected] | ||
61 | [email protected] "92" | ||
62 | [email protected] " " | ||
63 | [email protected] "}" | ||
64 | [email protected] "\n" | ||
65 | [email protected] "}" | ||
66 | [email protected] "\n" | ||
67 | error 24..24: expected existential, fn, trait or impl | ||
68 | error 41..41: expected existential, fn, trait or impl | ||
69 | error 56..56: expected a block | ||
70 | error 75..75: expected a loop | ||
71 | error 75..75: expected SEMICOLON | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rs b/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rs new file mode 100644 index 000000000..8fa324c1a --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rs | |||
@@ -0,0 +1,6 @@ | |||
1 | fn main() { | ||
2 | { unsafe 92 } | ||
3 | { async 92 } | ||
4 | { try 92 } | ||
5 | { 'label: 92 } | ||
6 | } | ||
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast b/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast index 85bf276a0..75668c818 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast | |||
@@ -9,19 +9,18 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] "\'loop" |
18 | [email protected] "\'loop" | 18 | [email protected] ":" |
19 | [email protected] ":" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "impl" |
22 | [email protected] "impl" | 22 | [email protected] "\n" |
23 | [email protected] "\n" | 23 | [email protected] "}" |
24 | [email protected] "}" | ||
25 | [email protected] "\n" | 24 | [email protected] "\n" |
26 | error 22..22: expected a loop | 25 | error 22..22: expected a loop |
27 | error 22..22: expected SEMICOLON | 26 | error 22..22: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast b/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast index b901c17f7..c789e8d82 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast | |||
@@ -8,9 +8,8 @@ [email protected] | |||
8 | [email protected] "(" | 8 | [email protected] "(" |
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] | 10 | [email protected] |
11 | [email protected] | 11 | [email protected] "{" |
12 | [email protected] "{" | 12 | [email protected] "}" |
13 | [email protected] "}" | ||
14 | [email protected] " " | 13 | [email protected] " " |
15 | [email protected] | 14 | [email protected] |
16 | [email protected] "unsafe" | 15 | [email protected] "unsafe" |
@@ -29,9 +28,8 @@ [email protected] | |||
29 | [email protected] "(" | 28 | [email protected] "(" |
30 | [email protected] ")" | 29 | [email protected] ")" |
31 | [email protected] | 30 | [email protected] |
32 | [email protected] | 31 | [email protected] "{" |
33 | [email protected] "{" | 32 | [email protected] "}" |
34 | [email protected] "}" | ||
35 | [email protected] "\n" | 33 | [email protected] "\n" |
36 | error 11..11: expected an item | 34 | error 11..11: expected an item |
37 | error 18..18: expected an item | 35 | error 18..18: expected an item |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast b/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast index 3f48b86ed..cd24313d4 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast | |||
@@ -9,24 +9,23 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "_" |
19 | [email protected] "_" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "async" |
24 | [email protected] "async" | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "{" |
27 | [email protected] "{" | 27 | [email protected] "}" |
28 | [email protected] "}" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] "}" |
30 | [email protected] "}" | ||
31 | [email protected] "\n" | 30 | [email protected] "\n" |
32 | error 27..27: expected SEMICOLON | 31 | error 27..27: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast b/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast index be02eaeeb..c5fa7a404 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast | |||
@@ -9,18 +9,17 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "pub" |
17 | [email protected] "pub" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "92" |
21 | [email protected] "92" | 21 | [email protected] ";" |
22 | [email protected] ";" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] "}" |
24 | [email protected] "}" | ||
25 | [email protected] "\n" | 24 | [email protected] "\n" |
26 | error 14..14: expected an item | 25 | error 14..14: expected an item |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast b/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast index b344e4f7f..0656fdf73 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast | |||
@@ -9,53 +9,51 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "#" |
17 | [email protected] "#" | 17 | [email protected] "[" |
18 | [email protected] "[" | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "A" |
22 | [email protected] "A" | 22 | [email protected] "]" |
23 | [email protected] "]" | 23 | [email protected] " " |
24 | [email protected] " " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "1" |
27 | [email protected] "1" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] "+" |
29 | [email protected] "+" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "2" |
32 | [email protected] "2" | 32 | [email protected] ";" |
33 | [email protected] ";" | 33 | [email protected] "\n " |
34 | [email protected] "\n " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "#" |
37 | [email protected] "#" | 37 | [email protected] "[" |
38 | [email protected] "[" | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "B" |
42 | [email protected] "B" | 42 | [email protected] "]" |
43 | [email protected] "]" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "if" |
46 | [email protected] "if" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "true" |
50 | [email protected] "true" | 50 | [email protected] " " |
51 | [email protected] " " | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "{" |
53 | [email protected] | 53 | [email protected] "}" |
54 | [email protected] "{" | 54 | [email protected] ";" |
55 | [email protected] "}" | 55 | [email protected] "\n" |
56 | [email protected] ";" | 56 | [email protected] "}" |
57 | [email protected] "\n" | ||
58 | [email protected] "}" | ||
59 | [email protected] "\n" | 57 | [email protected] "\n" |
60 | error 24..24: attributes are not allowed on BIN_EXPR | 58 | error 24..24: attributes are not allowed on BIN_EXPR |
61 | error 44..44: attributes are not allowed on IF_EXPR | 59 | error 44..44: attributes are not allowed on IF_EXPR |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast b/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast index 5339a84d7..e1abc5633 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast | |||
@@ -9,45 +9,44 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "x" |
21 | [email protected] "x" | 21 | [email protected] "." |
22 | [email protected] "." | 22 | [email protected] "0." |
23 | [email protected] "0." | 23 | [email protected] ";" |
24 | [email protected] ";" | 24 | [email protected] "\n " |
25 | [email protected] "\n " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "x" |
32 | [email protected] "x" | 32 | [email protected] "." |
33 | [email protected] "." | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "1i32" |
35 | [email protected] "1i32" | 35 | [email protected] ";" |
36 | [email protected] ";" | 36 | [email protected] "\n " |
37 | [email protected] "\n " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "x" |
44 | [email protected] "x" | 44 | [email protected] "." |
45 | [email protected] "." | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] "0x01" |
47 | [email protected] "0x01" | 47 | [email protected] ";" |
48 | [email protected] ";" | 48 | [email protected] "\n" |
49 | [email protected] "\n" | 49 | [email protected] "}" |
50 | [email protected] "}" | ||
51 | [email protected] "\n" | 50 | [email protected] "\n" |
52 | error 27..31: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix | 51 | error 27..31: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix |
53 | error 39..43: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix | 52 | error 39..43: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast b/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast index 20ed39046..9be441110 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast | |||
@@ -14,9 +14,8 @@ [email protected] | |||
14 | [email protected] ")" | 14 | [email protected] ")" |
15 | [email protected] " " | 15 | [email protected] " " |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] "{" |
18 | [email protected] "{" | 18 | [email protected] "}" |
19 | [email protected] "}" | ||
20 | [email protected] "\n" | 19 | [email protected] "\n" |
21 | [email protected] | 20 | [email protected] |
22 | [email protected] "unsafe" | 21 | [email protected] "unsafe" |
@@ -33,9 +32,8 @@ [email protected] | |||
33 | [email protected] ")" | 32 | [email protected] ")" |
34 | [email protected] " " | 33 | [email protected] " " |
35 | [email protected] | 34 | [email protected] |
36 | [email protected] | 35 | [email protected] "{" |
37 | [email protected] "{" | 36 | [email protected] "}" |
38 | [email protected] "}" | ||
39 | [email protected] "\n" | 37 | [email protected] "\n" |
40 | error 6..6: expected existential, fn, trait or impl | 38 | error 6..6: expected existential, fn, trait or impl |
41 | error 31..31: expected existential, fn, trait or impl | 39 | error 31..31: expected existential, fn, trait or impl |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast b/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast index 88567263e..b8cd0587d 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast | |||
@@ -45,9 +45,8 @@ [email protected] | |||
45 | [email protected] ")" | 45 | [email protected] ")" |
46 | [email protected] " " | 46 | [email protected] " " |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "{" |
49 | [email protected] "{" | 49 | [email protected] "}" |
50 | [email protected] "}" | ||
51 | [email protected] "\n" | 50 | [email protected] "\n" |
52 | [email protected] "}" | 51 | [email protected] "}" |
53 | [email protected] "\n" | 52 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast b/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast index 578befa56..a9de44b57 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast | |||
@@ -9,41 +9,40 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "S" |
19 | [email protected] "S" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "{" |
22 | [email protected] "{" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "field" |
26 | [email protected] "field" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] ".." |
29 | [email protected] ".." | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "S" |
36 | [email protected] "S" | 36 | [email protected] "::" |
37 | [email protected] "::" | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "default" |
40 | [email protected] "default" | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "(" |
42 | [email protected] "(" | 42 | [email protected] ")" |
43 | [email protected] ")" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] "}" |
45 | [email protected] "}" | 45 | [email protected] "\n" |
46 | [email protected] "\n" | 46 | [email protected] "}" |
47 | [email protected] "}" | ||
48 | [email protected] "\n" | 47 | [email protected] "\n" |
49 | error 25..25: expected COLON | 48 | error 25..25: expected COLON |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast index a1fabb557..a38b4f573 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast | |||
@@ -51,9 +51,8 @@ [email protected] | |||
51 | [email protected] ")" | 51 | [email protected] ")" |
52 | [email protected] " " | 52 | [email protected] " " |
53 | [email protected] | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "{" |
55 | [email protected] "{" | 55 | [email protected] "}" |
56 | [email protected] "}" | ||
57 | [email protected] "\n " | 56 | [email protected] "\n " |
58 | [email protected] | 57 | [email protected] |
59 | [email protected] "fn" | 58 | [email protected] "fn" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast index bd74b44a6..cf3a90400 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast | |||
@@ -1,4 +1,4 @@ | |||
1 | [email protected]50 | 1 | [email protected]49 |
2 | [email protected] | 2 | [email protected] |
3 | [email protected] "use" | 3 | [email protected] "use" |
4 | [email protected] " " | 4 | [email protected] " " |
@@ -104,32 +104,33 @@ [email protected] | |||
104 | [email protected] " " | 104 | [email protected] " " |
105 | [email protected] "// Rust 2015" | 105 | [email protected] "// Rust 2015" |
106 | [email protected] "\n" | 106 | [email protected] "\n" |
107 | [email protected]6 | 107 | [email protected]5 |
108 | [email protected] "use" | 108 | [email protected] "use" |
109 | [email protected] " " | 109 | [email protected] " " |
110 | [email protected]5 | 110 | [email protected]4 |
111 | [email protected] "::" | 111 | [email protected] "::" |
112 | [email protected]5 | 112 | [email protected]4 |
113 | [email protected] "{" | 113 | [email protected] "{" |
114 | [email protected]4 | 114 | [email protected]3 |
115 | [email protected]4 | 115 | [email protected]3 |
116 | [email protected] "{" | 116 | [email protected] "{" |
117 | [email protected]3 | 117 | [email protected]2 |
118 | [email protected]3 | 118 | [email protected]2 |
119 | [email protected] "{" | 119 | [email protected] "{" |
120 | [email protected] | 120 | [email protected] |
121 | [email protected] | 121 | [email protected] |
122 | [email protected] | 122 | [email protected] |
123 | [email protected] | 123 | [email protected] |
124 | [email protected] "crate" | 124 | [email protected] |
125 | [email protected] "::" | 125 | [email protected] "root" |
126 | [email protected] | 126 | [email protected] "::" |
127 | [email protected] | 127 | [email protected] |
128 | [email protected] "export" | 128 | [email protected] |
129 | [email protected] "}" | 129 | [email protected] "export" |
130 | [email protected] "}" | 130 | [email protected] "}" |
131 | [email protected] "}" | 131 | [email protected] "}" |
132 | [email protected] ";" | 132 | [email protected] "}" |
133 | [email protected] " " | 133 | [email protected] ";" |
134 | [email protected] "// Nonsensical but pe ..." | 134 | [email protected] " " |
135 | [email protected] "\n" | 135 | [email protected] "// Nonsensical but pe ..." |
136 | [email protected] "\n" | ||
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rs b/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rs index 06c387cee..381cba1e2 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | use {crate::path::from::root, or::path::from::crate_name}; // Rust 2018 (with a crate named `or`) | 1 | use {crate::path::from::root, or::path::from::crate_name}; // Rust 2018 (with a crate named `or`) |
2 | use {path::from::root}; // Rust 2015 | 2 | use {path::from::root}; // Rust 2015 |
3 | use ::{some::arbritrary::path}; // Rust 2015 | 3 | use ::{some::arbritrary::path}; // Rust 2015 |
4 | use ::{{{crate::export}}}; // Nonsensical but perfectly legal nestnig | 4 | use ::{{{root::export}}}; // Nonsensical but perfectly legal nesting |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast index a46d76fde..9dc473e43 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast | |||
@@ -55,8 +55,7 @@ [email protected] | |||
55 | [email protected] ")" | 55 | [email protected] ")" |
56 | [email protected] "\n" | 56 | [email protected] "\n" |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "{" |
59 | [email protected] "{" | 59 | [email protected] " " |
60 | [email protected] " " | 60 | [email protected] "}" |
61 | [email protected] "}" | ||
62 | [email protected] "\n" | 61 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast index 5181fcd2b..6c8c1e24b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast | |||
@@ -32,7 +32,6 @@ [email protected] | |||
32 | [email protected] "(" | 32 | [email protected] "(" |
33 | [email protected] ")" | 33 | [email protected] ")" |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "{" |
36 | [email protected] "{" | 36 | [email protected] "}" |
37 | [email protected] "}" | ||
38 | [email protected] "\n" | 37 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast index dd41b44e1..9f4a9e69b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast | |||
@@ -23,9 +23,8 @@ [email protected] | |||
23 | [email protected] ")" | 23 | [email protected] ")" |
24 | [email protected] " " | 24 | [email protected] " " |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "{" |
27 | [email protected] "{" | 27 | [email protected] "}" |
28 | [email protected] "}" | ||
29 | [email protected] "\n " | 28 | [email protected] "\n " |
30 | [email protected] | 29 | [email protected] |
31 | [email protected] "fn" | 30 | [email protected] "fn" |
@@ -41,9 +40,8 @@ [email protected] | |||
41 | [email protected] ")" | 40 | [email protected] ")" |
42 | [email protected] " " | 41 | [email protected] " " |
43 | [email protected] | 42 | [email protected] |
44 | [email protected] | 43 | [email protected] "{" |
45 | [email protected] "{" | 44 | [email protected] "}" |
46 | [email protected] "}" | ||
47 | [email protected] "\n " | 45 | [email protected] "\n " |
48 | [email protected] | 46 | [email protected] |
49 | [email protected] "fn" | 47 | [email protected] "fn" |
@@ -61,9 +59,8 @@ [email protected] | |||
61 | [email protected] ")" | 59 | [email protected] ")" |
62 | [email protected] " " | 60 | [email protected] " " |
63 | [email protected] | 61 | [email protected] |
64 | [email protected] | 62 | [email protected] "{" |
65 | [email protected] "{" | 63 | [email protected] "}" |
66 | [email protected] "}" | ||
67 | [email protected] "\n " | 64 | [email protected] "\n " |
68 | [email protected] | 65 | [email protected] |
69 | [email protected] "fn" | 66 | [email protected] "fn" |
@@ -95,9 +92,8 @@ [email protected] | |||
95 | [email protected] ")" | 92 | [email protected] ")" |
96 | [email protected] " " | 93 | [email protected] " " |
97 | [email protected] | 94 | [email protected] |
98 | [email protected] | 95 | [email protected] "{" |
99 | [email protected] "{" | 96 | [email protected] "}" |
100 | [email protected] "}" | ||
101 | [email protected] "\n " | 97 | [email protected] "\n " |
102 | [email protected] | 98 | [email protected] |
103 | [email protected] "fn" | 99 | [email protected] "fn" |
@@ -113,9 +109,8 @@ [email protected] | |||
113 | [email protected] ")" | 109 | [email protected] ")" |
114 | [email protected] " " | 110 | [email protected] " " |
115 | [email protected] | 111 | [email protected] |
116 | [email protected] | 112 | [email protected] "{" |
117 | [email protected] "{" | 113 | [email protected] "}" |
118 | [email protected] "}" | ||
119 | [email protected] "\n" | 114 | [email protected] "\n" |
120 | [email protected] "}" | 115 | [email protected] "}" |
121 | [email protected] "\n" | 116 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast index a8ddd20c9..10eb31d68 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast | |||
@@ -9,89 +9,88 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "foo" |
23 | [email protected] "foo" | 23 | [email protected] "::" |
24 | [email protected] "::" | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "Bar" |
27 | [email protected] "Bar" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] "=" |
29 | [email protected] "=" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "(" |
32 | [email protected] "(" | 32 | [email protected] ")" |
33 | [email protected] ")" | 33 | [email protected] ";" |
34 | [email protected] ";" | 34 | [email protected] "\n " |
35 | [email protected] "\n " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "let" |
37 | [email protected] "let" | 37 | [email protected] " " |
38 | [email protected] " " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "::" |
42 | [email protected] "::" | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "Bar" |
44 | [email protected] "Bar" | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] "=" |
46 | [email protected] "=" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "(" |
49 | [email protected] "(" | 49 | [email protected] ")" |
50 | [email protected] ")" | 50 | [email protected] ";" |
51 | [email protected] ";" | 51 | [email protected] "\n " |
52 | [email protected] "\n " | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "let" |
54 | [email protected] "let" | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "Bar" |
60 | [email protected] "Bar" | 60 | [email protected] " " |
61 | [email protected] " " | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] "{" |
63 | [email protected] "{" | 63 | [email protected] " " |
64 | [email protected] " " | 64 | [email protected] ".." |
65 | [email protected] ".." | 65 | [email protected] " " |
66 | [email protected] " " | 66 | [email protected] "}" |
67 | [email protected] "}" | 67 | [email protected] " " |
68 | [email protected] " " | 68 | [email protected] "=" |
69 | [email protected] "=" | 69 | [email protected] " " |
70 | [email protected] " " | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "(" |
72 | [email protected] "(" | 72 | [email protected] ")" |
73 | [email protected] ")" | 73 | [email protected] ";" |
74 | [email protected] ";" | 74 | [email protected] "\n " |
75 | [email protected] "\n " | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "let" |
77 | [email protected] "let" | 77 | [email protected] " " |
78 | [email protected] " " | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] "Bar" |
83 | [email protected] "Bar" | 83 | [email protected] "(" |
84 | [email protected] "(" | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] ".." |
86 | [email protected] ".." | 86 | [email protected] ")" |
87 | [email protected] ")" | 87 | [email protected] " " |
88 | [email protected] " " | 88 | [email protected] "=" |
89 | [email protected] "=" | 89 | [email protected] " " |
90 | [email protected] " " | 90 | [email protected] |
91 | [email protected] | 91 | [email protected] "(" |
92 | [email protected] "(" | 92 | [email protected] ")" |
93 | [email protected] ")" | 93 | [email protected] ";" |
94 | [email protected] ";" | 94 | [email protected] "\n" |
95 | [email protected] "\n" | 95 | [email protected] "}" |
96 | [email protected] "}" | ||
97 | [email protected] "\n" | 96 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast index df8ada62a..425e5196c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast | |||
@@ -9,18 +9,16 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "loop" |
17 | [email protected] "loop" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "{" |
20 | [email protected] | 20 | [email protected] "}" |
21 | [email protected] "{" | 21 | [email protected] ";" |
22 | [email protected] "}" | 22 | [email protected] "\n" |
23 | [email protected] ";" | 23 | [email protected] "}" |
24 | [email protected] "\n" | ||
25 | [email protected] "}" | ||
26 | [email protected] "\n" | 24 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast index de01cc79e..d823c08fc 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast | |||
@@ -9,52 +9,51 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "x" |
21 | [email protected] "x" | 21 | [email protected] "." |
22 | [email protected] "." | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "foo" |
24 | [email protected] "foo" | 24 | [email protected] ";" |
25 | [email protected] ";" | 25 | [email protected] "\n " |
26 | [email protected] "\n " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "x" |
34 | [email protected] "x" | 34 | [email protected] "." |
35 | [email protected] "." | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "0" |
37 | [email protected] "0" | 37 | [email protected] "." |
38 | [email protected] "." | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "bar" |
40 | [email protected] "bar" | 40 | [email protected] ";" |
41 | [email protected] ";" | 41 | [email protected] "\n " |
42 | [email protected] "\n " | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "x" |
50 | [email protected] "x" | 50 | [email protected] "." |
51 | [email protected] "." | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "0" |
53 | [email protected] "0" | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "(" |
55 | [email protected] "(" | 55 | [email protected] ")" |
56 | [email protected] ")" | 56 | [email protected] ";" |
57 | [email protected] ";" | 57 | [email protected] "\n" |
58 | [email protected] "\n" | 58 | [email protected] "}" |
59 | [email protected] "}" | ||
60 | [email protected] "\n" | 59 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast index 8ac307cb3..422912e3c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast | |||
@@ -9,29 +9,27 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "loop" |
16 | [email protected] "loop" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "{" |
19 | [email protected] | 19 | [email protected] "\n " |
20 | [email protected] "{" | 20 | [email protected] |
21 | [email protected] "\n " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "continue" |
23 | [email protected] | 23 | [email protected] ";" |
24 | [email protected] "continue" | 24 | [email protected] "\n " |
25 | [email protected] ";" | 25 | [email protected] |
26 | [email protected] "\n " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "continue" |
28 | [email protected] | 28 | [email protected] " " |
29 | [email protected] "continue" | 29 | [email protected] "\'l" |
30 | [email protected] " " | 30 | [email protected] ";" |
31 | [email protected] "\'l" | 31 | [email protected] "\n " |
32 | [email protected] ";" | 32 | [email protected] "}" |
33 | [email protected] "\n " | 33 | [email protected] "\n" |
34 | [email protected] "}" | 34 | [email protected] "}" |
35 | [email protected] "\n" | ||
36 | [email protected] "}" | ||
37 | [email protected] "\n" | 35 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast index 6f6400d00..15da6fdd6 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast | |||
@@ -32,9 +32,8 @@ [email protected] | |||
32 | [email protected] ")" | 32 | [email protected] ")" |
33 | [email protected] " " | 33 | [email protected] " " |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "{" |
36 | [email protected] "{" | 36 | [email protected] "}" |
37 | [email protected] "}" | ||
38 | [email protected] "\n " | 37 | [email protected] "\n " |
39 | [email protected] | 38 | [email protected] |
40 | [email protected] "fn" | 39 | [email protected] "fn" |
@@ -66,9 +65,8 @@ [email protected] | |||
66 | [email protected] ")" | 65 | [email protected] ")" |
67 | [email protected] " " | 66 | [email protected] " " |
68 | [email protected] | 67 | [email protected] |
69 | [email protected] | 68 | [email protected] "{" |
70 | [email protected] "{" | 69 | [email protected] "}" |
71 | [email protected] "}" | ||
72 | [email protected] "\n" | 70 | [email protected] "\n" |
73 | [email protected] "}" | 71 | [email protected] "}" |
74 | [email protected] "\n" | 72 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast index ba422f1ae..10d6b2fde 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast | |||
@@ -9,37 +9,36 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "*" |
17 | [email protected] "*" | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "*" |
19 | [email protected] "*" | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "&" |
21 | [email protected] "&" | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "1" |
23 | [email protected] "1" | 23 | [email protected] ";" |
24 | [email protected] ";" | 24 | [email protected] "\n " |
25 | [email protected] "\n " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "!" |
28 | [email protected] "!" | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "!" |
30 | [email protected] "!" | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "true" |
32 | [email protected] "true" | 32 | [email protected] ";" |
33 | [email protected] ";" | 33 | [email protected] "\n " |
34 | [email protected] "\n " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "-" |
37 | [email protected] "-" | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "-" |
39 | [email protected] "-" | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "1" |
41 | [email protected] "1" | 41 | [email protected] ";" |
42 | [email protected] ";" | 42 | [email protected] "\n" |
43 | [email protected] "\n" | 43 | [email protected] "}" |
44 | [email protected] "}" | ||
45 | [email protected] "\n" | 44 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast index de22b22dd..c204aeb63 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast | |||
@@ -55,9 +55,8 @@ [email protected] | |||
55 | [email protected] ")" | 55 | [email protected] ")" |
56 | [email protected] " " | 56 | [email protected] " " |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "{" |
59 | [email protected] "{" | 59 | [email protected] "}" |
60 | [email protected] "}" | ||
61 | [email protected] "\n " | 60 | [email protected] "\n " |
62 | [email protected] | 61 | [email protected] |
63 | [email protected] "fn" | 62 | [email protected] "fn" |
@@ -72,9 +71,8 @@ [email protected] | |||
72 | [email protected] ")" | 71 | [email protected] ")" |
73 | [email protected] " " | 72 | [email protected] " " |
74 | [email protected] | 73 | [email protected] |
75 | [email protected] | 74 | [email protected] "{" |
76 | [email protected] "{" | 75 | [email protected] "}" |
77 | [email protected] "}" | ||
78 | [email protected] "\n" | 76 | [email protected] "\n" |
79 | [email protected] "}" | 77 | [email protected] "}" |
80 | [email protected] "\n" | 78 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast index 7da292a2d..7eb27d5e1 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast | |||
@@ -9,34 +9,33 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "[" |
19 | [email protected] "[" | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "a" |
22 | [email protected] "a" | 22 | [email protected] "," |
23 | [email protected] "," | 23 | [email protected] " " |
24 | [email protected] " " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "b" |
27 | [email protected] "b" | 27 | [email protected] "," |
28 | [email protected] "," | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] ".." |
31 | [email protected] ".." | 31 | [email protected] "]" |
32 | [email protected] "]" | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] "=" |
34 | [email protected] "=" | 34 | [email protected] " " |
35 | [email protected] " " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "[" |
37 | [email protected] "[" | 37 | [email protected] "]" |
38 | [email protected] "]" | 38 | [email protected] ";" |
39 | [email protected] ";" | 39 | [email protected] "\n" |
40 | [email protected] "\n" | 40 | [email protected] "}" |
41 | [email protected] "}" | ||
42 | [email protected] "\n" | 41 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast index 574942f06..b4598768e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast | |||
@@ -9,97 +9,96 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "S" |
22 | [email protected] "S" | 22 | [email protected] "(" |
23 | [email protected] "(" | 23 | [email protected] ")" |
24 | [email protected] ")" | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] "=" |
26 | [email protected] "=" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "(" |
29 | [email protected] "(" | 29 | [email protected] ")" |
30 | [email protected] ")" | 30 | [email protected] ";" |
31 | [email protected] ";" | 31 | [email protected] "\n " |
32 | [email protected] "\n " | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "let" |
34 | [email protected] "let" | 34 | [email protected] " " |
35 | [email protected] " " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "S" |
40 | [email protected] "S" | 40 | [email protected] "(" |
41 | [email protected] "(" | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "_" |
43 | [email protected] "_" | 43 | [email protected] ")" |
44 | [email protected] ")" | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] "=" |
46 | [email protected] "=" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "(" |
49 | [email protected] "(" | 49 | [email protected] ")" |
50 | [email protected] ")" | 50 | [email protected] ";" |
51 | [email protected] ";" | 51 | [email protected] "\n " |
52 | [email protected] "\n " | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "let" |
54 | [email protected] "let" | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "S" |
60 | [email protected] "S" | 60 | [email protected] "(" |
61 | [email protected] "(" | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] "_" |
63 | [email protected] "_" | 63 | [email protected] "," |
64 | [email protected] "," | 64 | [email protected] ")" |
65 | [email protected] ")" | 65 | [email protected] " " |
66 | [email protected] " " | 66 | [email protected] "=" |
67 | [email protected] "=" | 67 | [email protected] " " |
68 | [email protected] " " | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] "(" |
70 | [email protected] "(" | 70 | [email protected] ")" |
71 | [email protected] ")" | 71 | [email protected] ";" |
72 | [email protected] ";" | 72 | [email protected] "\n " |
73 | [email protected] "\n " | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] "let" |
75 | [email protected] "let" | 75 | [email protected] " " |
76 | [email protected] " " | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] "S" |
81 | [email protected] "S" | 81 | [email protected] "(" |
82 | [email protected] "(" | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "_" |
84 | [email protected] "_" | 84 | [email protected] "," |
85 | [email protected] "," | 85 | [email protected] " " |
86 | [email protected] " " | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] ".." |
88 | [email protected] ".." | 88 | [email protected] " " |
89 | [email protected] " " | 89 | [email protected] "," |
90 | [email protected] "," | 90 | [email protected] " " |
91 | [email protected] " " | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] "x" |
94 | [email protected] "x" | 94 | [email protected] ")" |
95 | [email protected] ")" | 95 | [email protected] " " |
96 | [email protected] " " | 96 | [email protected] "=" |
97 | [email protected] "=" | 97 | [email protected] " " |
98 | [email protected] " " | 98 | [email protected] |
99 | [email protected] | 99 | [email protected] "(" |
100 | [email protected] "(" | 100 | [email protected] ")" |
101 | [email protected] ")" | 101 | [email protected] ";" |
102 | [email protected] ";" | 102 | [email protected] "\n" |
103 | [email protected] "\n" | 103 | [email protected] "}" |
104 | [email protected] "}" | ||
105 | [email protected] "\n" | 104 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast index 1927438bb..b824c10a8 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast | |||
@@ -9,42 +9,41 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "&" |
19 | [email protected] "&" | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "a" |
22 | [email protected] "a" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] "=" |
24 | [email protected] "=" | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "(" |
27 | [email protected] "(" | 27 | [email protected] ")" |
28 | [email protected] ")" | 28 | [email protected] ";" |
29 | [email protected] ";" | 29 | [email protected] "\n " |
30 | [email protected] "\n " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "let" |
32 | [email protected] "let" | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "&" |
35 | [email protected] "&" | 35 | [email protected] "mut" |
36 | [email protected] "mut" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "b" |
40 | [email protected] "b" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] "=" |
42 | [email protected] "=" | 42 | [email protected] " " |
43 | [email protected] " " | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "(" |
45 | [email protected] "(" | 45 | [email protected] ")" |
46 | [email protected] ")" | 46 | [email protected] ";" |
47 | [email protected] ";" | 47 | [email protected] "\n" |
48 | [email protected] "\n" | 48 | [email protected] "}" |
49 | [email protected] "}" | ||
50 | [email protected] "\n" | 49 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast index 9effb345f..fabb09937 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast | |||
@@ -9,82 +9,81 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] "82" |
18 | [email protected] "82" | 18 | [email protected] " " |
19 | [email protected] " " | 19 | [email protected] "as" |
20 | [email protected] "as" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "i32" |
26 | [email protected] "i32" | 26 | [email protected] ";" |
27 | [email protected] ";" | 27 | [email protected] "\n " |
28 | [email protected] "\n " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "81" |
33 | [email protected] "81" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] "as" |
35 | [email protected] "as" | 35 | [email protected] " " |
36 | [email protected] " " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "i8" |
41 | [email protected] "i8" | 41 | [email protected] " " |
42 | [email protected] " " | 42 | [email protected] "+" |
43 | [email protected] "+" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "1" |
46 | [email protected] "1" | 46 | [email protected] ";" |
47 | [email protected] ";" | 47 | [email protected] "\n " |
48 | [email protected] "\n " | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "79" |
53 | [email protected] "79" | 53 | [email protected] " " |
54 | [email protected] " " | 54 | [email protected] "as" |
55 | [email protected] "as" | 55 | [email protected] " " |
56 | [email protected] " " | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] "i16" |
61 | [email protected] "i16" | 61 | [email protected] " " |
62 | [email protected] " " | 62 | [email protected] "-" |
63 | [email protected] "-" | 63 | [email protected] " " |
64 | [email protected] " " | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] "1" |
66 | [email protected] "1" | 66 | [email protected] ";" |
67 | [email protected] ";" | 67 | [email protected] "\n " |
68 | [email protected] "\n " | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] "0x36" |
73 | [email protected] "0x36" | 73 | [email protected] " " |
74 | [email protected] " " | 74 | [email protected] "as" |
75 | [email protected] "as" | 75 | [email protected] " " |
76 | [email protected] " " | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] "u8" |
81 | [email protected] "u8" | 81 | [email protected] " " |
82 | [email protected] " " | 82 | [email protected] "<=" |
83 | [email protected] "<=" | 83 | [email protected] " " |
84 | [email protected] " " | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] "0x37" |
86 | [email protected] "0x37" | 86 | [email protected] ";" |
87 | [email protected] ";" | 87 | [email protected] "\n" |
88 | [email protected] "\n" | 88 | [email protected] "}" |
89 | [email protected] "}" | ||
90 | [email protected] "\n" | 89 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast index b6759541e..3aed26732 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast | |||
@@ -9,39 +9,37 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "if" |
16 | [email protected] "if" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "let" |
19 | [email protected] "let" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "Some" |
25 | [email protected] "Some" | 25 | [email protected] "(" |
26 | [email protected] "(" | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "_" |
28 | [email protected] "_" | 28 | [email protected] ")" |
29 | [email protected] ")" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] "=" |
31 | [email protected] "=" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "None" |
37 | [email protected] "None" | 37 | [email protected] " " |
38 | [email protected] " " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "{" |
40 | [email protected] | 40 | [email protected] "}" |
41 | [email protected] "{" | 41 | [email protected] " " |
42 | [email protected] "}" | 42 | [email protected] "}" |
43 | [email protected] " " | ||
44 | [email protected] "}" | ||
45 | [email protected] "\n" | 43 | [email protected] "\n" |
46 | [email protected] | 44 | [email protected] |
47 | [email protected] "fn" | 45 | [email protected] "fn" |
@@ -53,157 +51,152 @@ [email protected] | |||
53 | [email protected] ")" | 51 | [email protected] ")" |
54 | [email protected] " " | 52 | [email protected] " " |
55 | [email protected] | 53 | [email protected] |
56 | [email protected] | 54 | [email protected] "{" |
57 | [email protected] "{" | 55 | [email protected] "\n " |
58 | [email protected] "\n " | 56 | [email protected] |
59 | [email protected] | 57 | [email protected] |
60 | [email protected] | 58 | [email protected] "if" |
61 | [email protected] "if" | 59 | [email protected] " " |
62 | [email protected] " " | 60 | [email protected] |
63 | [email protected] | 61 | [email protected] "let" |
64 | [email protected] "let" | 62 | [email protected] " " |
65 | [email protected] " " | 63 | [email protected] |
66 | [email protected] | 64 | [email protected] |
67 | [email protected] | 65 | [email protected] |
68 | [email protected] | 66 | [email protected] |
69 | [email protected] | 67 | [email protected] |
70 | [email protected] | 68 | [email protected] "Some" |
71 | [email protected] "Some" | 69 | [email protected] "(" |
72 | [email protected] "(" | 70 | [email protected] |
73 | [email protected] | 71 | [email protected] "_" |
74 | [email protected] "_" | 72 | [email protected] ")" |
75 | [email protected] ")" | 73 | [email protected] " " |
76 | [email protected] " " | 74 | [email protected] "|" |
77 | [email protected] "|" | 75 | [email protected] " " |
78 | [email protected] " " | 76 | [email protected] |
79 | [email protected] | 77 | [email protected] |
80 | [email protected] | 78 | [email protected] |
81 | [email protected] | 79 | [email protected] |
82 | [email protected] | 80 | [email protected] "Some" |
83 | [email protected] "Some" | 81 | [email protected] "(" |
84 | [email protected] "(" | 82 | [email protected] |
85 | [email protected] | 83 | [email protected] "_" |
86 | [email protected] "_" | 84 | [email protected] ")" |
87 | [email protected] ")" | 85 | [email protected] " " |
88 | [email protected] " " | 86 | [email protected] "=" |
89 | [email protected] "=" | 87 | [email protected] " " |
90 | [email protected] " " | 88 | [email protected] |
91 | [email protected] | 89 | [email protected] |
92 | [email protected] | 90 | [email protected] |
93 | [email protected] | 91 | [email protected] |
94 | [email protected] | 92 | [email protected] "None" |
95 | [email protected] "None" | 93 | [email protected] " " |
96 | [email protected] " " | 94 | [email protected] |
97 | [email protected] | 95 | [email protected] "{" |
98 | [email protected] | 96 | [email protected] "}" |
99 | [email protected] "{" | 97 | [email protected] "\n " |
100 | [email protected] "}" | 98 | [email protected] |
101 | [email protected] "\n " | 99 | [email protected] |
102 | [email protected] | 100 | [email protected] "if" |
103 | [email protected] | 101 | [email protected] " " |
104 | [email protected] "if" | 102 | [email protected] |
105 | [email protected] " " | 103 | [email protected] "let" |
106 | [email protected] | 104 | [email protected] " " |
107 | [email protected] "let" | 105 | [email protected] "|" |
108 | [email protected] " " | 106 | [email protected] " " |
109 | [email protected] "|" | 107 | [email protected] |
110 | [email protected] " " | 108 | [email protected] |
111 | [email protected] | 109 | [email protected] |
112 | [email protected] | 110 | [email protected] |
113 | [email protected] | 111 | [email protected] "Some" |
114 | [email protected] | 112 | [email protected] "(" |
115 | [email protected] "Some" | 113 | [email protected] |
116 | [email protected] "(" | 114 | [email protected] "_" |
117 | [email protected] | 115 | [email protected] ")" |
118 | [email protected] "_" | 116 | [email protected] " " |
119 | [email protected] ")" | 117 | [email protected] "=" |
120 | [email protected] " " | 118 | [email protected] " " |
121 | [email protected] "=" | 119 | [email protected] |
122 | [email protected] " " | 120 | [email protected] |
123 | [email protected] | 121 | [email protected] |
124 | [email protected] | 122 | [email protected] |
125 | [email protected] | 123 | [email protected] "None" |
126 | [email protected] | 124 | [email protected] " " |
127 | [email protected] "None" | 125 | [email protected] |
128 | [email protected] " " | 126 | [email protected] "{" |
129 | [email protected] | 127 | [email protected] "}" |
130 | [email protected] | 128 | [email protected] "\n " |
131 | [email protected] "{" | 129 | [email protected] |
132 | [email protected] "}" | 130 | [email protected] |
133 | [email protected] "\n " | 131 | [email protected] "while" |
134 | [email protected] | 132 | [email protected] " " |
135 | [email protected] | 133 | [email protected] |
136 | [email protected] "while" | 134 | [email protected] "let" |
137 | [email protected] " " | 135 | [email protected] " " |
138 | [email protected] | 136 | [email protected] |
139 | [email protected] "let" | 137 | [email protected] |
140 | [email protected] " " | 138 | [email protected] |
141 | [email protected] | 139 | [email protected] |
142 | [email protected] | 140 | [email protected] |
143 | [email protected] | 141 | [email protected] "Some" |
144 | [email protected] | 142 | [email protected] "(" |
145 | [email protected] | 143 | [email protected] |
146 | [email protected] "Some" | 144 | [email protected] "_" |
147 | [email protected] "(" | 145 | [email protected] ")" |
148 | [email protected] | 146 | [email protected] " " |
149 | [email protected] "_" | 147 | [email protected] "|" |
150 | [email protected] ")" | 148 | [email protected] " " |
151 | [email protected] " " | 149 | [email protected] |
152 | [email protected] "|" | 150 | [email protected] |
153 | [email protected] " " | 151 | [email protected] |
154 | [email protected] | 152 | [email protected] |
155 | [email protected] | 153 | [email protected] "Some" |
156 | [email protected] | 154 | [email protected] "(" |
157 | [email protected] | 155 | [email protected] |
158 | [email protected] "Some" | 156 | [email protected] "_" |
159 | [email protected] "(" | 157 | [email protected] ")" |
160 | [email protected] | 158 | [email protected] " " |
161 | [email protected] "_" | 159 | [email protected] "=" |
162 | [email protected] ")" | 160 | [email protected] " " |
163 | [email protected] " " | 161 | [email protected] |
164 | [email protected] "=" | 162 | [email protected] |
165 | [email protected] " " | 163 | [email protected] |
166 | [email protected] | 164 | [email protected] |
167 | [email protected] | 165 | [email protected] "None" |
168 | [email protected] | 166 | [email protected] " " |
169 | [email protected] | 167 | [email protected] |
170 | [email protected] "None" | 168 | [email protected] "{" |
171 | [email protected] " " | 169 | [email protected] "}" |
172 | [email protected] | 170 | [email protected] "\n " |
173 | [email protected] | 171 | [email protected] |
174 | [email protected] "{" | 172 | [email protected] "while" |
175 | [email protected] "}" | 173 | [email protected] " " |
176 | [email protected] "\n " | 174 | [email protected] |
177 | [email protected] | 175 | [email protected] "let" |
178 | [email protected] "while" | 176 | [email protected] " " |
179 | [email protected] " " | 177 | [email protected] "|" |
180 | [email protected] | 178 | [email protected] " " |
181 | [email protected] "let" | 179 | [email protected] |
182 | [email protected] " " | 180 | [email protected] |
183 | [email protected] "|" | 181 | [email protected] |
184 | [email protected] " " | 182 | [email protected] |
185 | [email protected] | 183 | [email protected] "Some" |
186 | [email protected] | 184 | [email protected] "(" |
187 | [email protected] | 185 | [email protected] |
188 | [email protected] | 186 | [email protected] "_" |
189 | [email protected] "Some" | 187 | [email protected] ")" |
190 | [email protected] "(" | 188 | [email protected] " " |
191 | [email protected] | 189 | [email protected] "=" |
192 | [email protected] "_" | 190 | [email protected] " " |
193 | [email protected] ")" | 191 | [email protected] |
194 | [email protected] " " | 192 | [email protected] |
195 | [email protected] "=" | 193 | [email protected] |
196 | [email protected] " " | 194 | [email protected] |
197 | [email protected] | 195 | [email protected] "None" |
198 | [email protected] | 196 | [email protected] " " |
199 | [email protected] | 197 | [email protected] |
200 | [email protected] | 198 | [email protected] "{" |
201 | [email protected] "None" | 199 | [email protected] "}" |
202 | [email protected] " " | 200 | [email protected] "\n" |
203 | [email protected] | 201 | [email protected] "}" |
204 | [email protected] | ||
205 | [email protected] "{" | ||
206 | [email protected] "}" | ||
207 | [email protected] "\n" | ||
208 | [email protected] "}" | ||
209 | [email protected] "\n" | 202 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast index e5138a599..899b63aac 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast | |||
@@ -9,81 +9,76 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "while" |
17 | [email protected] "while" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "true" |
21 | [email protected] "true" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] | 24 | [email protected] "}" |
25 | [email protected] "{" | 25 | [email protected] ";" |
26 | [email protected] "}" | 26 | [email protected] "\n " |
27 | [email protected] ";" | 27 | [email protected] |
28 | [email protected] "\n " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "while" |
30 | [email protected] | 30 | [email protected] " " |
31 | [email protected] "while" | 31 | [email protected] |
32 | [email protected] " " | 32 | [email protected] "let" |
33 | [email protected] | 33 | [email protected] " " |
34 | [email protected] "let" | 34 | [email protected] |
35 | [email protected] " " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "Some" |
39 | [email protected] | 39 | [email protected] "(" |
40 | [email protected] "Some" | 40 | [email protected] |
41 | [email protected] "(" | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "x" |
43 | [email protected] | 43 | [email protected] ")" |
44 | [email protected] "x" | 44 | [email protected] " " |
45 | [email protected] ")" | 45 | [email protected] "=" |
46 | [email protected] " " | 46 | [email protected] " " |
47 | [email protected] "=" | 47 | [email protected] |
48 | [email protected] " " | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "it" |
53 | [email protected] | 53 | [email protected] "." |
54 | [email protected] "it" | 54 | [email protected] |
55 | [email protected] "." | 55 | [email protected] "next" |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] "next" | 57 | [email protected] "(" |
58 | [email protected] | 58 | [email protected] ")" |
59 | [email protected] "(" | 59 | [email protected] " " |
60 | [email protected] ")" | 60 | [email protected] |
61 | [email protected] " " | 61 | [email protected] "{" |
62 | [email protected] | 62 | [email protected] "}" |
63 | [email protected] | 63 | [email protected] ";" |
64 | [email protected] "{" | 64 | [email protected] "\n " |
65 | [email protected] "}" | 65 | [email protected] |
66 | [email protected] ";" | 66 | [email protected] |
67 | [email protected] "\n " | 67 | [email protected] "while" |
68 | [email protected] | 68 | [email protected] " " |
69 | [email protected] | 69 | [email protected] |
70 | [email protected] "while" | 70 | [email protected] |
71 | [email protected] " " | 71 | [email protected] "{" |
72 | [email protected] | 72 | [email protected] " " |
73 | [email protected] | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] "true" |
75 | [email protected] "{" | 75 | [email protected] " " |
76 | [email protected] " " | 76 | [email protected] "}" |
77 | [email protected] | 77 | [email protected] " " |
78 | [email protected] "true" | 78 | [email protected] |
79 | [email protected] " " | 79 | [email protected] "{" |
80 | [email protected] "}" | 80 | [email protected] "}" |
81 | [email protected] " " | 81 | [email protected] ";" |
82 | [email protected] | 82 | [email protected] "\n" |
83 | [email protected] | 83 | [email protected] "}" |
84 | [email protected] "{" | ||
85 | [email protected] "}" | ||
86 | [email protected] ";" | ||
87 | [email protected] "\n" | ||
88 | [email protected] "}" | ||
89 | [email protected] "\n" | 84 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast index 52644da8f..e064aafaf 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast | |||
@@ -9,47 +9,45 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "loop" |
16 | [email protected] "loop" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "{" |
19 | [email protected] | 19 | [email protected] "\n " |
20 | [email protected] "{" | 20 | [email protected] |
21 | [email protected] "\n " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "break" |
23 | [email protected] | 23 | [email protected] ";" |
24 | [email protected] "break" | 24 | [email protected] "\n " |
25 | [email protected] ";" | 25 | [email protected] |
26 | [email protected] "\n " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "break" |
28 | [email protected] | 28 | [email protected] " " |
29 | [email protected] "break" | 29 | [email protected] "\'l" |
30 | [email protected] " " | 30 | [email protected] ";" |
31 | [email protected] "\'l" | 31 | [email protected] "\n " |
32 | [email protected] ";" | 32 | [email protected] |
33 | [email protected] "\n " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "break" |
35 | [email protected] | 35 | [email protected] " " |
36 | [email protected] "break" | 36 | [email protected] |
37 | [email protected] " " | 37 | [email protected] "92" |
38 | [email protected] | 38 | [email protected] ";" |
39 | [email protected] "92" | 39 | [email protected] "\n " |
40 | [email protected] ";" | 40 | [email protected] |
41 | [email protected] "\n " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "break" |
43 | [email protected] | 43 | [email protected] " " |
44 | [email protected] "break" | 44 | [email protected] "\'l" |
45 | [email protected] " " | 45 | [email protected] " " |
46 | [email protected] "\'l" | 46 | [email protected] |
47 | [email protected] " " | 47 | [email protected] "92" |
48 | [email protected] | 48 | [email protected] ";" |
49 | [email protected] "92" | 49 | [email protected] "\n " |
50 | [email protected] ";" | 50 | [email protected] "}" |
51 | [email protected] "\n " | 51 | [email protected] "\n" |
52 | [email protected] "}" | 52 | [email protected] "}" |
53 | [email protected] "\n" | ||
54 | [email protected] "}" | ||
55 | [email protected] "\n" | 53 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast index f061c0cac..cf5825593 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast | |||
@@ -16,7 +16,6 @@ [email protected] | |||
16 | [email protected] ")" | 16 | [email protected] ")" |
17 | [email protected] " " | 17 | [email protected] " " |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "{" |
20 | [email protected] "{" | 20 | [email protected] "}" |
21 | [email protected] "}" | ||
22 | [email protected] "\n" | 21 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast index e25fc8c3e..fbd90bc0f 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast | |||
@@ -42,38 +42,37 @@ [email protected] | |||
42 | [email protected] ")" | 42 | [email protected] ")" |
43 | [email protected] " " | 43 | [email protected] " " |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "{" |
46 | [email protected] "{" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "<" |
54 | [email protected] "<" | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "usize" |
59 | [email protected] "usize" | 59 | [email protected] " " |
60 | [email protected] " " | 60 | [email protected] "as" |
61 | [email protected] "as" | 61 | [email protected] " " |
62 | [email protected] " " | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] "Default" |
67 | [email protected] "Default" | 67 | [email protected] ">" |
68 | [email protected] ">" | 68 | [email protected] "::" |
69 | [email protected] "::" | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "default" |
72 | [email protected] "default" | 72 | [email protected] |
73 | [email protected] | 73 | [email protected] "(" |
74 | [email protected] "(" | 74 | [email protected] ")" |
75 | [email protected] ")" | 75 | [email protected] ";" |
76 | [email protected] ";" | 76 | [email protected] " " |
77 | [email protected] " " | 77 | [email protected] "}" |
78 | [email protected] "}" | ||
79 | [email protected] "\n" | 78 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast index a1238d610..a767f145d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast | |||
@@ -9,21 +9,20 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "xs" |
21 | [email protected] "xs" | 21 | [email protected] "[" |
22 | [email protected] "[" | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] ".." |
24 | [email protected] ".." | 24 | [email protected] "]" |
25 | [email protected] "]" | 25 | [email protected] ";" |
26 | [email protected] ";" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] "}" |
28 | [email protected] "}" | ||
29 | [email protected] "\n" | 28 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast index 69e5fe4bc..e92ea2bf2 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast | |||
@@ -32,13 +32,12 @@ [email protected] | |||
32 | [email protected] " " | 32 | [email protected] " " |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "{" |
36 | [email protected] "{" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "2" |
39 | [email protected] "2" | 39 | [email protected] " " |
40 | [email protected] " " | 40 | [email protected] "}" |
41 | [email protected] "}" | ||
42 | [email protected] "," | 41 | [email protected] "," |
43 | [email protected] " " | 42 | [email protected] " " |
44 | [email protected] | 43 | [email protected] |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast index 1a98e2610..aa582516a 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast | |||
@@ -12,10 +12,9 @@ [email protected] | |||
12 | [email protected] ")" | 12 | [email protected] ")" |
13 | [email protected] " " | 13 | [email protected] " " |
14 | [email protected] | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "{" |
16 | [email protected] "{" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] "}" |
18 | [email protected] "}" | ||
19 | [email protected] "\n" | 18 | [email protected] "\n" |
20 | [email protected] | 19 | [email protected] |
21 | [email protected] "struct" | 20 | [email protected] "struct" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast index bbf6dc494..0c1c6e877 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast | |||
@@ -9,140 +9,139 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "_" |
19 | [email protected] "_" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "f" |
28 | [email protected] "f" | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "(" |
30 | [email protected] "(" | 30 | [email protected] ")" |
31 | [email protected] ")" | 31 | [email protected] ";" |
32 | [email protected] ";" | 32 | [email protected] "\n " |
33 | [email protected] "\n " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "let" |
35 | [email protected] "let" | 35 | [email protected] " " |
36 | [email protected] " " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "_" |
38 | [email protected] "_" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] "=" |
40 | [email protected] "=" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "f" |
49 | [email protected] "f" | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] "(" |
51 | [email protected] "(" | 51 | [email protected] ")" |
52 | [email protected] ")" | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "(" |
54 | [email protected] "(" | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "1" |
56 | [email protected] "1" | 56 | [email protected] ")" |
57 | [email protected] ")" | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "(" |
59 | [email protected] "(" | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] "1" |
61 | [email protected] "1" | 61 | [email protected] "," |
62 | [email protected] "," | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "2" |
65 | [email protected] "2" | 65 | [email protected] "," |
66 | [email protected] "," | 66 | [email protected] ")" |
67 | [email protected] ")" | 67 | [email protected] ";" |
68 | [email protected] ";" | 68 | [email protected] "\n " |
69 | [email protected] "\n " | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] "let" |
71 | [email protected] "let" | 71 | [email protected] " " |
72 | [email protected] " " | 72 | [email protected] |
73 | [email protected] | 73 | [email protected] "_" |
74 | [email protected] "_" | 74 | [email protected] " " |
75 | [email protected] " " | 75 | [email protected] "=" |
76 | [email protected] "=" | 76 | [email protected] " " |
77 | [email protected] " " | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] "f" |
83 | [email protected] "f" | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] "(" |
85 | [email protected] "(" | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] |
90 | [email protected] | 90 | [email protected] "<" |
91 | [email protected] "<" | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] |
94 | [email protected] | 94 | [email protected] |
95 | [email protected] | 95 | [email protected] "Foo" |
96 | [email protected] "Foo" | 96 | [email protected] ">" |
97 | [email protected] ">" | 97 | [email protected] "::" |
98 | [email protected] "::" | 98 | [email protected] |
99 | [email protected] | 99 | [email protected] |
100 | [email protected] | 100 | [email protected] "func" |
101 | [email protected] "func" | 101 | [email protected] |
102 | [email protected] | 102 | [email protected] "(" |
103 | [email protected] "(" | 103 | [email protected] ")" |
104 | [email protected] ")" | 104 | [email protected] ")" |
105 | [email protected] ")" | 105 | [email protected] ";" |
106 | [email protected] ";" | 106 | [email protected] "\n " |
107 | [email protected] "\n " | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] |
109 | [email protected] | 109 | [email protected] |
110 | [email protected] | 110 | [email protected] |
111 | [email protected] | 111 | [email protected] |
112 | [email protected] | 112 | [email protected] |
113 | [email protected] | 113 | [email protected] "f" |
114 | [email protected] "f" | 114 | [email protected] |
115 | [email protected] | 115 | [email protected] "(" |
116 | [email protected] "(" | 116 | [email protected] |
117 | [email protected] | 117 | [email protected] |
118 | [email protected] | 118 | [email protected] |
119 | [email protected] | 119 | [email protected] |
120 | [email protected] | 120 | [email protected] |
121 | [email protected] | 121 | [email protected] "<" |
122 | [email protected] "<" | 122 | [email protected] |
123 | [email protected] | 123 | [email protected] |
124 | [email protected] | 124 | [email protected] |
125 | [email protected] | 125 | [email protected] |
126 | [email protected] | 126 | [email protected] "Foo" |
127 | [email protected] "Foo" | 127 | [email protected] " " |
128 | [email protected] " " | 128 | [email protected] "as" |
129 | [email protected] "as" | 129 | [email protected] " " |
130 | [email protected] " " | 130 | [email protected] |
131 | [email protected] | 131 | [email protected] |
132 | [email protected] | 132 | [email protected] |
133 | [email protected] | 133 | [email protected] |
134 | [email protected] | 134 | [email protected] "Trait" |
135 | [email protected] "Trait" | 135 | [email protected] ">" |
136 | [email protected] ">" | 136 | [email protected] "::" |
137 | [email protected] "::" | 137 | [email protected] |
138 | [email protected] | 138 | [email protected] |
139 | [email protected] | 139 | [email protected] "func" |
140 | [email protected] "func" | 140 | [email protected] |
141 | [email protected] | 141 | [email protected] "(" |
142 | [email protected] "(" | 142 | [email protected] ")" |
143 | [email protected] ")" | 143 | [email protected] ")" |
144 | [email protected] ")" | 144 | [email protected] ";" |
145 | [email protected] ";" | 145 | [email protected] "\n" |
146 | [email protected] "\n" | 146 | [email protected] "}" |
147 | [email protected] "}" | ||
148 | [email protected] "\n" | 147 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast b/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast index a454dfc3a..c23b3b67c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast | |||
@@ -9,22 +9,20 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "fn" |
16 | [email protected] "fn" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "b" |
19 | [email protected] "b" | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "(" |
21 | [email protected] "(" | 21 | [email protected] ")" |
22 | [email protected] ")" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "{" |
25 | [email protected] | 25 | [email protected] "}" |
26 | [email protected] "{" | 26 | [email protected] " " |
27 | [email protected] "}" | 27 | [email protected] "}" |
28 | [email protected] " " | ||
29 | [email protected] "}" | ||
30 | [email protected] "\n" | 28 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast index 2a50f796c..9ca2165ba 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast | |||
@@ -41,7 +41,6 @@ [email protected] | |||
41 | [email protected] "(" | 41 | [email protected] "(" |
42 | [email protected] ")" | 42 | [email protected] ")" |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "{" |
45 | [email protected] "{" | 45 | [email protected] "}" |
46 | [email protected] "}" | ||
47 | [email protected] "\n" | 46 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast index 7f87e05ec..b209f67f8 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast | |||
@@ -35,9 +35,8 @@ [email protected] | |||
35 | [email protected] ">" | 35 | [email protected] ">" |
36 | [email protected] " " | 36 | [email protected] " " |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "{" |
39 | [email protected] "{" | 39 | [email protected] "}" |
40 | [email protected] "}" | ||
41 | [email protected] "\n" | 40 | [email protected] "\n" |
42 | [email protected] | 41 | [email protected] |
43 | [email protected] "fn" | 42 | [email protected] "fn" |
@@ -77,7 +76,6 @@ [email protected] | |||
77 | [email protected] ">" | 76 | [email protected] ">" |
78 | [email protected] " " | 77 | [email protected] " " |
79 | [email protected] | 78 | [email protected] |
80 | [email protected] | 79 | [email protected] "{" |
81 | [email protected] "{" | 80 | [email protected] "}" |
82 | [email protected] "}" | ||
83 | [email protected] "\n" | 81 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast index 5f846177e..70232a3b2 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast | |||
@@ -9,88 +9,87 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "_" |
19 | [email protected] "_" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "a" |
27 | [email protected] "a" | 27 | [email protected] ";" |
28 | [email protected] ";" | 28 | [email protected] "\n " |
29 | [email protected] "\n " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "let" |
31 | [email protected] "let" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "_" |
34 | [email protected] "_" | 34 | [email protected] " " |
35 | [email protected] " " | 35 | [email protected] "=" |
36 | [email protected] "=" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "a" |
43 | [email protected] "a" | 43 | [email protected] "::" |
44 | [email protected] "::" | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] "b" |
47 | [email protected] "b" | 47 | [email protected] ";" |
48 | [email protected] ";" | 48 | [email protected] "\n " |
49 | [email protected] "\n " | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] "let" |
51 | [email protected] "let" | 51 | [email protected] " " |
52 | [email protected] " " | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "_" |
54 | [email protected] "_" | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] "=" |
56 | [email protected] "=" | 56 | [email protected] " " |
57 | [email protected] " " | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] "::" |
61 | [email protected] "::" | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] "a" |
63 | [email protected] "a" | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "::" |
65 | [email protected] "::" | 65 | [email protected] "<" |
66 | [email protected] "<" | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] |
68 | [email protected] | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "b" |
72 | [email protected] "b" | 72 | [email protected] ">" |
73 | [email protected] ">" | 73 | [email protected] ";" |
74 | [email protected] ";" | 74 | [email protected] "\n " |
75 | [email protected] "\n " | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "let" |
77 | [email protected] "let" | 77 | [email protected] " " |
78 | [email protected] " " | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "_" |
80 | [email protected] "_" | 80 | [email protected] " " |
81 | [email protected] " " | 81 | [email protected] "=" |
82 | [email protected] "=" | 82 | [email protected] " " |
83 | [email protected] " " | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] "format" |
88 | [email protected] "format" | 88 | [email protected] "!" |
89 | [email protected] "!" | 89 | [email protected] |
90 | [email protected] | 90 | [email protected] "(" |
91 | [email protected] "(" | 91 | [email protected] ")" |
92 | [email protected] ")" | 92 | [email protected] ";" |
93 | [email protected] ";" | 93 | [email protected] "\n" |
94 | [email protected] "\n" | 94 | [email protected] "}" |
95 | [email protected] "}" | ||
96 | [email protected] "\n" | 95 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast b/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast index d9310e82e..03c52525e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast | |||
@@ -9,69 +9,68 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "match" |
16 | [email protected] "match" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "(" |
19 | [email protected] "(" | 19 | [email protected] ")" |
20 | [email protected] ")" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "{" |
23 | [email protected] "{" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "-" |
27 | [email protected] "-" | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "1" |
29 | [email protected] "1" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] "=>" |
31 | [email protected] "=>" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "(" |
34 | [email protected] "(" | 34 | [email protected] ")" |
35 | [email protected] ")" | 35 | [email protected] "," |
36 | [email protected] "," | 36 | [email protected] "\n " |
37 | [email protected] "\n " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "92" |
41 | [email protected] "92" | 41 | [email protected] " " |
42 | [email protected] " " | 42 | [email protected] "=>" |
43 | [email protected] "=>" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "(" |
46 | [email protected] "(" | 46 | [email protected] ")" |
47 | [email protected] ")" | 47 | [email protected] "," |
48 | [email protected] "," | 48 | [email protected] "\n " |
49 | [email protected] "\n " | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "\'c\'" |
53 | [email protected] "\'c\'" | 53 | [email protected] " " |
54 | [email protected] " " | 54 | [email protected] "=>" |
55 | [email protected] "=>" | 55 | [email protected] " " |
56 | [email protected] " " | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] "(" |
58 | [email protected] "(" | 58 | [email protected] ")" |
59 | [email protected] ")" | 59 | [email protected] "," |
60 | [email protected] "," | 60 | [email protected] "\n " |
61 | [email protected] "\n " | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "\"hello\"" |
65 | [email protected] "\"hello\"" | 65 | [email protected] " " |
66 | [email protected] " " | 66 | [email protected] "=>" |
67 | [email protected] "=>" | 67 | [email protected] " " |
68 | [email protected] " " | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] "(" |
70 | [email protected] "(" | 70 | [email protected] ")" |
71 | [email protected] ")" | 71 | [email protected] "," |
72 | [email protected] "," | 72 | [email protected] "\n " |
73 | [email protected] "\n " | 73 | [email protected] "}" |
74 | [email protected] "}" | 74 | [email protected] "\n" |
75 | [email protected] "\n" | 75 | [email protected] "}" |
76 | [email protected] "}" | ||
77 | [email protected] "\n" | 76 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast index 2e727c1ef..24f89b83f 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast | |||
@@ -105,7 +105,6 @@ [email protected] | |||
105 | [email protected] "\'a" | 105 | [email protected] "\'a" |
106 | [email protected] "\n" | 106 | [email protected] "\n" |
107 | [email protected] | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] "{" |
109 | [email protected] "{" | 109 | [email protected] "}" |
110 | [email protected] "}" | ||
111 | [email protected] "\n" | 110 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast index c1e58f9bf..bb43d1eaf 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast | |||
@@ -11,7 +11,6 @@ [email protected] | |||
11 | [email protected] ")" | 11 | [email protected] ")" |
12 | [email protected] " " | 12 | [email protected] " " |
13 | [email protected] | 13 | [email protected] |
14 | [email protected] | 14 | [email protected] "{" |
15 | [email protected] "{" | 15 | [email protected] "}" |
16 | [email protected] "}" | ||
17 | [email protected] "\n" | 16 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast index 9bdf2379f..8bd94a868 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast | |||
@@ -9,75 +9,74 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "match" |
16 | [email protected] "match" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "92" |
19 | [email protected] "92" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "{" |
22 | [email protected] "{" | 22 | [email protected] "\n " |
23 | [email protected] "\n " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "0" |
28 | [email protected] "0" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] "..." |
30 | [email protected] "..." | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "100" |
34 | [email protected] "100" | 34 | [email protected] " " |
35 | [email protected] " " | 35 | [email protected] "=>" |
36 | [email protected] "=>" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "(" |
39 | [email protected] "(" | 39 | [email protected] ")" |
40 | [email protected] ")" | 40 | [email protected] "," |
41 | [email protected] "," | 41 | [email protected] "\n " |
42 | [email protected] "\n " | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] "101" |
47 | [email protected] "101" | 47 | [email protected] " " |
48 | [email protected] " " | 48 | [email protected] "..=" |
49 | [email protected] "..=" | 49 | [email protected] " " |
50 | [email protected] " " | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "200" |
53 | [email protected] "200" | 53 | [email protected] " " |
54 | [email protected] " " | 54 | [email protected] "=>" |
55 | [email protected] "=>" | 55 | [email protected] " " |
56 | [email protected] " " | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] "(" |
58 | [email protected] "(" | 58 | [email protected] ")" |
59 | [email protected] ")" | 59 | [email protected] "," |
60 | [email protected] "," | 60 | [email protected] "\n " |
61 | [email protected] "\n " | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] "200" |
66 | [email protected] "200" | 66 | [email protected] " " |
67 | [email protected] " " | 67 | [email protected] ".." |
68 | [email protected] ".." | 68 | [email protected] " " |
69 | [email protected] " " | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "301" |
72 | [email protected] "301" | 72 | [email protected] "=>" |
73 | [email protected] "=>" | 73 | [email protected] " " |
74 | [email protected] " " | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] "(" |
76 | [email protected] "(" | 76 | [email protected] ")" |
77 | [email protected] ")" | 77 | [email protected] "," |
78 | [email protected] "," | 78 | [email protected] "\n " |
79 | [email protected] "\n " | 79 | [email protected] "}" |
80 | [email protected] "}" | 80 | [email protected] "\n" |
81 | [email protected] "\n" | 81 | [email protected] "}" |
82 | [email protected] "}" | ||
83 | [email protected] "\n" | 82 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast index e9ca92364..9210f155c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast | |||
@@ -9,52 +9,50 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "match" |
16 | [email protected] "match" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "(" |
19 | [email protected] "(" | 19 | [email protected] ")" |
20 | [email protected] ")" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "{" |
23 | [email protected] "{" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "_" |
27 | [email protected] "_" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] "=>" |
29 | [email protected] "=>" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "(" |
32 | [email protected] "(" | 32 | [email protected] ")" |
33 | [email protected] ")" | 33 | [email protected] "," |
34 | [email protected] "," | 34 | [email protected] "\n " |
35 | [email protected] "\n " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "_" |
38 | [email protected] "_" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] "=>" |
40 | [email protected] "=>" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "{" |
43 | [email protected] | 43 | [email protected] "}" |
44 | [email protected] "{" | 44 | [email protected] "\n " |
45 | [email protected] "}" | 45 | [email protected] |
46 | [email protected] "\n " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "_" |
48 | [email protected] | 48 | [email protected] " " |
49 | [email protected] "_" | 49 | [email protected] "=>" |
50 | [email protected] " " | 50 | [email protected] " " |
51 | [email protected] "=>" | 51 | [email protected] |
52 | [email protected] " " | 52 | [email protected] "(" |
53 | [email protected] | 53 | [email protected] ")" |
54 | [email protected] "(" | 54 | [email protected] "\n " |
55 | [email protected] ")" | 55 | [email protected] "}" |
56 | [email protected] "\n " | 56 | [email protected] "\n" |
57 | [email protected] "}" | 57 | [email protected] "}" |
58 | [email protected] "\n" | ||
59 | [email protected] "}" | ||
60 | [email protected] "\n" | 58 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast index 15d332938..850465d82 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast | |||
@@ -9,117 +9,116 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "S" |
20 | [email protected] "S" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "{" |
23 | [email protected] "{" | 23 | [email protected] "}" |
24 | [email protected] "}" | 24 | [email protected] ";" |
25 | [email protected] ";" | 25 | [email protected] "\n " |
26 | [email protected] "\n " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "S" |
32 | [email protected] "S" | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "{" |
35 | [email protected] "{" | 35 | [email protected] " " |
36 | [email protected] " " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "x" |
42 | [email protected] "x" | 42 | [email protected] "," |
43 | [email protected] "," | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] "y" |
47 | [email protected] "y" | 47 | [email protected] ":" |
48 | [email protected] ":" | 48 | [email protected] " " |
49 | [email protected] " " | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] "32" |
51 | [email protected] "32" | 51 | [email protected] "," |
52 | [email protected] "," | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] "}" |
54 | [email protected] "}" | 54 | [email protected] ";" |
55 | [email protected] ";" | 55 | [email protected] "\n " |
56 | [email protected] "\n " | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "S" |
62 | [email protected] "S" | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "{" |
65 | [email protected] "{" | 65 | [email protected] " " |
66 | [email protected] " " | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] |
68 | [email protected] | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "x" |
72 | [email protected] "x" | 72 | [email protected] "," |
73 | [email protected] "," | 73 | [email protected] " " |
74 | [email protected] " " | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "y" |
77 | [email protected] "y" | 77 | [email protected] ":" |
78 | [email protected] ":" | 78 | [email protected] " " |
79 | [email protected] " " | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] "32" |
81 | [email protected] "32" | 81 | [email protected] "," |
82 | [email protected] "," | 82 | [email protected] " " |
83 | [email protected] " " | 83 | [email protected] ".." |
84 | [email protected] ".." | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] |
90 | [email protected] | 90 | [email protected] "Default" |
91 | [email protected] "Default" | 91 | [email protected] "::" |
92 | [email protected] "::" | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] |
94 | [email protected] | 94 | [email protected] "default" |
95 | [email protected] "default" | 95 | [email protected] |
96 | [email protected] | 96 | [email protected] "(" |
97 | [email protected] "(" | 97 | [email protected] ")" |
98 | [email protected] ")" | 98 | [email protected] " " |
99 | [email protected] " " | 99 | [email protected] "}" |
100 | [email protected] "}" | 100 | [email protected] ";" |
101 | [email protected] ";" | 101 | [email protected] "\n " |
102 | [email protected] "\n " | 102 | [email protected] |
103 | [email protected] | 103 | [email protected] |
104 | [email protected] | 104 | [email protected] |
105 | [email protected] | 105 | [email protected] |
106 | [email protected] | 106 | [email protected] |
107 | [email protected] | 107 | [email protected] "TupleStruct" |
108 | [email protected] "TupleStruct" | 108 | [email protected] " " |
109 | [email protected] " " | 109 | [email protected] |
110 | [email protected] | 110 | [email protected] "{" |
111 | [email protected] "{" | 111 | [email protected] " " |
112 | [email protected] " " | 112 | [email protected] |
113 | [email protected] | 113 | [email protected] |
114 | [email protected] | 114 | [email protected] "0" |
115 | [email protected] "0" | 115 | [email protected] ":" |
116 | [email protected] ":" | 116 | [email protected] " " |
117 | [email protected] " " | 117 | [email protected] |
118 | [email protected] | 118 | [email protected] "1" |
119 | [email protected] "1" | 119 | [email protected] " " |
120 | [email protected] " " | 120 | [email protected] "}" |
121 | [email protected] "}" | 121 | [email protected] ";" |
122 | [email protected] ";" | 122 | [email protected] "\n" |
123 | [email protected] "\n" | 123 | [email protected] "}" |
124 | [email protected] "}" | ||
125 | [email protected] "\n" | 124 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast index 3cce106e4..02656df31 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast | |||
@@ -9,9 +9,8 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "}" |
14 | [email protected] "}" | ||
15 | [email protected] "\n" | 14 | [email protected] "\n" |
16 | [email protected] | 15 | [email protected] |
17 | [email protected] | 16 | [email protected] |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast index 5e1b4cc68..445d8d309 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast | |||
@@ -9,124 +9,113 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "if" |
17 | [email protected] "if" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "true" |
21 | [email protected] "true" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] | 24 | [email protected] "}" |
25 | [email protected] "{" | 25 | [email protected] ";" |
26 | [email protected] "}" | 26 | [email protected] "\n " |
27 | [email protected] ";" | 27 | [email protected] |
28 | [email protected] "\n " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "if" |
30 | [email protected] | 30 | [email protected] " " |
31 | [email protected] "if" | 31 | [email protected] |
32 | [email protected] " " | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "true" |
34 | [email protected] | 34 | [email protected] " " |
35 | [email protected] "true" | 35 | [email protected] |
36 | [email protected] " " | 36 | [email protected] "{" |
37 | [email protected] | 37 | [email protected] "}" |
38 | [email protected] | 38 | [email protected] " " |
39 | [email protected] "{" | 39 | [email protected] "else" |
40 | [email protected] "}" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] "else" | 42 | [email protected] "{" |
43 | [email protected] " " | 43 | [email protected] "}" |
44 | [email protected] | 44 | [email protected] ";" |
45 | [email protected] | 45 | [email protected] "\n " |
46 | [email protected] "{" | 46 | [email protected] |
47 | [email protected] "}" | 47 | [email protected] |
48 | [email protected] ";" | 48 | [email protected] "if" |
49 | [email protected] "\n " | 49 | [email protected] " " |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] "if" | 52 | [email protected] "true" |
53 | [email protected] " " | 53 | [email protected] " " |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "{" |
56 | [email protected] "true" | 56 | [email protected] "}" |
57 | [email protected] " " | 57 | [email protected] " " |
58 | [email protected] | 58 | [email protected] "else" |
59 | [email protected] | 59 | [email protected] " " |
60 | [email protected] "{" | 60 | [email protected] |
61 | [email protected] "}" | 61 | [email protected] "if" |
62 | [email protected] " " | 62 | [email protected] " " |
63 | [email protected] "else" | 63 | [email protected] |
64 | [email protected] " " | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] "false" |
66 | [email protected] "if" | 66 | [email protected] " " |
67 | [email protected] " " | 67 | [email protected] |
68 | [email protected] | 68 | [email protected] "{" |
69 | [email protected] | 69 | [email protected] "}" |
70 | [email protected] "false" | 70 | [email protected] " " |
71 | [email protected] " " | 71 | [email protected] "else" |
72 | [email protected] | 72 | [email protected] " " |
73 | [email protected] | 73 | [email protected] |
74 | [email protected] "{" | 74 | [email protected] "{" |
75 | [email protected] "}" | 75 | [email protected] "}" |
76 | [email protected] " " | 76 | [email protected] ";" |
77 | [email protected] "else" | 77 | [email protected] "\n " |
78 | [email protected] " " | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] "if" |
81 | [email protected] "{" | 81 | [email protected] " " |
82 | [email protected] "}" | 82 | [email protected] |
83 | [email protected] ";" | 83 | [email protected] |
84 | [email protected] "\n " | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] |
87 | [email protected] "if" | 87 | [email protected] "S" |
88 | [email protected] " " | 88 | [email protected] " " |
89 | [email protected] | 89 | [email protected] |
90 | [email protected] | 90 | [email protected] "{" |
91 | [email protected] | 91 | [email protected] "}" |
92 | [email protected] | 92 | [email protected] ";" |
93 | [email protected] | 93 | [email protected] "\n " |
94 | [email protected] "S" | 94 | [email protected] |
95 | [email protected] " " | 95 | [email protected] |
96 | [email protected] | 96 | [email protected] "if" |
97 | [email protected] | 97 | [email protected] " " |
98 | [email protected] "{" | 98 | [email protected] |
99 | [email protected] "}" | 99 | [email protected] |
100 | [email protected] ";" | 100 | [email protected] "{" |
101 | [email protected] "\n " | 101 | [email protected] " " |
102 | [email protected] | 102 | [email protected] |
103 | [email protected] | 103 | [email protected] "true" |
104 | [email protected] "if" | 104 | [email protected] " " |
105 | [email protected] " " | 105 | [email protected] "}" |
106 | [email protected] | 106 | [email protected] " " |
107 | [email protected] | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] "{" |
109 | [email protected] "{" | 109 | [email protected] " " |
110 | [email protected] " " | 110 | [email protected] "}" |
111 | [email protected] | 111 | [email protected] " " |
112 | [email protected] "true" | 112 | [email protected] "else" |
113 | [email protected] " " | 113 | [email protected] " " |
114 | [email protected] "}" | 114 | [email protected] |
115 | [email protected] " " | 115 | [email protected] "{" |
116 | [email protected] | 116 | [email protected] " " |
117 | [email protected] | 117 | [email protected] "}" |
118 | [email protected] "{" | 118 | [email protected] ";" |
119 | [email protected] " " | 119 | [email protected] "\n" |
120 | [email protected] "}" | 120 | [email protected] "}" |
121 | [email protected] " " | ||
122 | [email protected] "else" | ||
123 | [email protected] " " | ||
124 | [email protected] | ||
125 | [email protected] | ||
126 | [email protected] "{" | ||
127 | [email protected] " " | ||
128 | [email protected] "}" | ||
129 | [email protected] ";" | ||
130 | [email protected] "\n" | ||
131 | [email protected] "}" | ||
132 | [email protected] "\n" | 121 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast index 108e5c5cc..177bb5514 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast | |||
@@ -9,144 +9,143 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "match" |
17 | [email protected] "match" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "(" |
20 | [email protected] "(" | 20 | [email protected] ")" |
21 | [email protected] ")" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] "{" | 24 | [email protected] "\n " |
25 | [email protected] "\n " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "_" |
28 | [email protected] "_" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] "=>" |
30 | [email protected] "=>" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "(" |
33 | [email protected] "(" | 33 | [email protected] ")" |
34 | [email protected] ")" | 34 | [email protected] "," |
35 | [email protected] "," | 35 | [email protected] "\n " |
36 | [email protected] "\n " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "_" |
39 | [email protected] "_" | 39 | [email protected] " " |
40 | [email protected] " " | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "if" |
42 | [email protected] "if" | 42 | [email protected] " " |
43 | [email protected] " " | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "Test" |
49 | [email protected] "Test" | 49 | [email protected] " " |
50 | [email protected] " " | 50 | [email protected] ">" |
51 | [email protected] ">" | 51 | [email protected] " " |
52 | [email protected] " " | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] "Test" |
57 | [email protected] "Test" | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "{" |
59 | [email protected] "{" | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "field" |
62 | [email protected] "field" | 62 | [email protected] ":" |
63 | [email protected] ":" | 63 | [email protected] " " |
64 | [email protected] " " | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] "0" |
66 | [email protected] "0" | 66 | [email protected] "}" |
67 | [email protected] "}" | 67 | [email protected] " " |
68 | [email protected] " " | 68 | [email protected] "=>" |
69 | [email protected] "=>" | 69 | [email protected] " " |
70 | [email protected] " " | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "(" |
72 | [email protected] "(" | 72 | [email protected] ")" |
73 | [email protected] ")" | 73 | [email protected] "," |
74 | [email protected] "," | 74 | [email protected] "\n " |
75 | [email protected] "\n " | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "X" |
80 | [email protected] "X" | 80 | [email protected] " " |
81 | [email protected] " " | 81 | [email protected] "|" |
82 | [email protected] "|" | 82 | [email protected] " " |
83 | [email protected] " " | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] "Y" |
86 | [email protected] "Y" | 86 | [email protected] " " |
87 | [email protected] " " | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] "if" |
89 | [email protected] "if" | 89 | [email protected] " " |
90 | [email protected] " " | 90 | [email protected] |
91 | [email protected] | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] |
94 | [email protected] | 94 | [email protected] "Z" |
95 | [email protected] "Z" | 95 | [email protected] " " |
96 | [email protected] " " | 96 | [email protected] "=>" |
97 | [email protected] "=>" | 97 | [email protected] " " |
98 | [email protected] " " | 98 | [email protected] |
99 | [email protected] | 99 | [email protected] "(" |
100 | [email protected] "(" | 100 | [email protected] ")" |
101 | [email protected] ")" | 101 | [email protected] "," |
102 | [email protected] "," | 102 | [email protected] "\n " |
103 | [email protected] "\n " | 103 | [email protected] |
104 | [email protected] | 104 | [email protected] "|" |
105 | [email protected] "|" | 105 | [email protected] " " |
106 | [email protected] " " | 106 | [email protected] |
107 | [email protected] | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] |
109 | [email protected] | 109 | [email protected] "X" |
110 | [email protected] "X" | 110 | [email protected] " " |
111 | [email protected] " " | 111 | [email protected] "|" |
112 | [email protected] "|" | 112 | [email protected] " " |
113 | [email protected] " " | 113 | [email protected] |
114 | [email protected] | 114 | [email protected] |
115 | [email protected] | 115 | [email protected] "Y" |
116 | [email protected] "Y" | 116 | [email protected] " " |
117 | [email protected] " " | 117 | [email protected] |
118 | [email protected] | 118 | [email protected] "if" |
119 | [email protected] "if" | 119 | [email protected] " " |
120 | [email protected] " " | 120 | [email protected] |
121 | [email protected] | 121 | [email protected] |
122 | [email protected] | 122 | [email protected] |
123 | [email protected] | 123 | [email protected] |
124 | [email protected] | 124 | [email protected] "Z" |
125 | [email protected] "Z" | 125 | [email protected] " " |
126 | [email protected] " " | 126 | [email protected] "=>" |
127 | [email protected] "=>" | 127 | [email protected] " " |
128 | [email protected] " " | 128 | [email protected] |
129 | [email protected] | 129 | [email protected] "(" |
130 | [email protected] "(" | 130 | [email protected] ")" |
131 | [email protected] ")" | 131 | [email protected] "," |
132 | [email protected] "," | 132 | [email protected] "\n " |
133 | [email protected] "\n " | 133 | [email protected] |
134 | [email protected] | 134 | [email protected] "|" |
135 | [email protected] "|" | 135 | [email protected] " " |
136 | [email protected] " " | 136 | [email protected] |
137 | [email protected] | 137 | [email protected] |
138 | [email protected] | 138 | [email protected] "X" |
139 | [email protected] "X" | 139 | [email protected] " " |
140 | [email protected] " " | 140 | [email protected] "=>" |
141 | [email protected] "=>" | 141 | [email protected] " " |
142 | [email protected] " " | 142 | [email protected] |
143 | [email protected] | 143 | [email protected] "(" |
144 | [email protected] "(" | 144 | [email protected] ")" |
145 | [email protected] ")" | 145 | [email protected] "," |
146 | [email protected] "," | 146 | [email protected] "\n " |
147 | [email protected] "\n " | 147 | [email protected] "}" |
148 | [email protected] "}" | 148 | [email protected] ";" |
149 | [email protected] ";" | 149 | [email protected] "\n" |
150 | [email protected] "\n" | 150 | [email protected] "}" |
151 | [email protected] "}" | ||
152 | [email protected] "\n" | 151 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast index 1e888063e..f8ff7079b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast | |||
@@ -9,45 +9,42 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "_" |
19 | [email protected] "_" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "{" |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] "{" | 26 | [email protected] "1" |
27 | [email protected] | 27 | [email protected] "}" |
28 | [email protected] "1" | 28 | [email protected] " " |
29 | [email protected] "}" | 29 | [email protected] "&" |
30 | [email protected] " " | 30 | [email protected] " " |
31 | [email protected] "&" | 31 | [email protected] |
32 | [email protected] " " | 32 | [email protected] "2" |
33 | [email protected] | 33 | [email protected] ";" |
34 | [email protected] "2" | 34 | [email protected] "\n " |
35 | [email protected] ";" | 35 | [email protected] |
36 | [email protected] "\n " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "{" |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "1" |
40 | [email protected] "{" | 40 | [email protected] "}" |
41 | [email protected] | 41 | [email protected] " " |
42 | [email protected] "1" | 42 | [email protected] |
43 | [email protected] "}" | 43 | [email protected] |
44 | [email protected] " " | 44 | [email protected] "&" |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] "2" |
47 | [email protected] "&" | 47 | [email protected] ";" |
48 | [email protected] | 48 | [email protected] "\n" |
49 | [email protected] "2" | 49 | [email protected] "}" |
50 | [email protected] ";" | ||
51 | [email protected] "\n" | ||
52 | [email protected] "}" | ||
53 | [email protected] "\n" | 50 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast index 218b3ec9e..07b3d1435 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast | |||
@@ -9,88 +9,85 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "match" |
17 | [email protected] "match" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "(" |
20 | [email protected] "(" | 20 | [email protected] ")" |
21 | [email protected] ")" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] "{" | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] "}" |
26 | [email protected] "}" | 26 | [email protected] ";" |
27 | [email protected] ";" | 27 | [email protected] "\n " |
28 | [email protected] "\n " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "match" |
31 | [email protected] "match" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "S" |
37 | [email protected] "S" | 37 | [email protected] " " |
38 | [email protected] " " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "{" |
40 | [email protected] "{" | 40 | [email protected] "}" |
41 | [email protected] "}" | 41 | [email protected] ";" |
42 | [email protected] ";" | 42 | [email protected] "\n " |
43 | [email protected] "\n " | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "match" |
46 | [email protected] "match" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "{" |
49 | [email protected] | 49 | [email protected] " " |
50 | [email protected] "{" | 50 | [email protected] "}" |
51 | [email protected] " " | 51 | [email protected] " " |
52 | [email protected] "}" | 52 | [email protected] |
53 | [email protected] " " | 53 | [email protected] "{" |
54 | [email protected] | 54 | [email protected] " " |
55 | [email protected] "{" | 55 | [email protected] |
56 | [email protected] " " | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] "_" |
58 | [email protected] | 58 | [email protected] " " |
59 | [email protected] "_" | 59 | [email protected] "=>" |
60 | [email protected] " " | 60 | [email protected] " " |
61 | [email protected] "=>" | 61 | [email protected] |
62 | [email protected] " " | 62 | [email protected] "(" |
63 | [email protected] | 63 | [email protected] ")" |
64 | [email protected] "(" | 64 | [email protected] " " |
65 | [email protected] ")" | 65 | [email protected] "}" |
66 | [email protected] " " | 66 | [email protected] ";" |
67 | [email protected] "}" | 67 | [email protected] "\n " |
68 | [email protected] ";" | 68 | [email protected] |
69 | [email protected] "\n " | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] "match" |
71 | [email protected] | 71 | [email protected] " " |
72 | [email protected] "match" | 72 | [email protected] |
73 | [email protected] " " | 73 | [email protected] "{" |
74 | [email protected] | 74 | [email protected] " " |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] "{" | 76 | [email protected] |
77 | [email protected] " " | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "S" |
80 | [email protected] | 80 | [email protected] " " |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] "S" | 82 | [email protected] "{" |
83 | [email protected] " " | 83 | [email protected] "}" |
84 | [email protected] | 84 | [email protected] " " |
85 | [email protected] "{" | 85 | [email protected] "}" |
86 | [email protected] "}" | 86 | [email protected] " " |
87 | [email protected] " " | 87 | [email protected] |
88 | [email protected] "}" | 88 | [email protected] "{" |
89 | [email protected] " " | 89 | [email protected] "}" |
90 | [email protected] | 90 | [email protected] ";" |
91 | [email protected] "{" | 91 | [email protected] "\n" |
92 | [email protected] "}" | 92 | [email protected] "}" |
93 | [email protected] ";" | ||
94 | [email protected] "\n" | ||
95 | [email protected] "}" | ||
96 | [email protected] "\n" | 93 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast index b8171dc9c..665f716a8 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast | |||
@@ -9,21 +9,20 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "return" |
17 | [email protected] "return" | 17 | [email protected] ";" |
18 | [email protected] ";" | 18 | [email protected] "\n " |
19 | [email protected] "\n " | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "return" |
22 | [email protected] "return" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "92" |
25 | [email protected] "92" | 25 | [email protected] ";" |
26 | [email protected] ";" | 26 | [email protected] "\n" |
27 | [email protected] "\n" | 27 | [email protected] "}" |
28 | [email protected] "}" | ||
29 | [email protected] "\n" | 28 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast index c2a73ef25..3fd3a4391 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast | |||
@@ -9,55 +9,51 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "match" |
16 | [email protected] "match" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "(" |
19 | [email protected] "(" | 19 | [email protected] ")" |
20 | [email protected] ")" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "{" |
23 | [email protected] "{" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "_" |
27 | [email protected] "_" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] "=>" |
29 | [email protected] "=>" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "{" |
32 | [email protected] | 32 | [email protected] "}" |
33 | [email protected] "{" | 33 | [email protected] "\n " |
34 | [email protected] "}" | 34 | [email protected] |
35 | [email protected] "\n " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "(" |
37 | [email protected] | 37 | [email protected] ")" |
38 | [email protected] "(" | 38 | [email protected] " " |
39 | [email protected] ")" | 39 | [email protected] "=>" |
40 | [email protected] " " | 40 | [email protected] " " |
41 | [email protected] "=>" | 41 | [email protected] |
42 | [email protected] " " | 42 | [email protected] "{" |
43 | [email protected] | 43 | [email protected] "}" |
44 | [email protected] | 44 | [email protected] "\n " |
45 | [email protected] "{" | 45 | [email protected] |
46 | [email protected] "}" | 46 | [email protected] |
47 | [email protected] "\n " | 47 | [email protected] "[" |
48 | [email protected] | 48 | [email protected] "]" |
49 | [email protected] | 49 | [email protected] " " |
50 | [email protected] "[" | 50 | [email protected] "=>" |
51 | [email protected] "]" | 51 | [email protected] " " |
52 | [email protected] " " | 52 | [email protected] |
53 | [email protected] "=>" | 53 | [email protected] "{" |
54 | [email protected] " " | 54 | [email protected] "}" |
55 | [email protected] | 55 | [email protected] "\n " |
56 | [email protected] | 56 | [email protected] "}" |
57 | [email protected] "{" | 57 | [email protected] "\n" |
58 | [email protected] "}" | 58 | [email protected] "}" |
59 | [email protected] "\n " | ||
60 | [email protected] "}" | ||
61 | [email protected] "\n" | ||
62 | [email protected] "}" | ||
63 | [email protected] "\n" | 59 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast index 39a86d002..97c6e6a9d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast | |||
@@ -9,9 +9,8 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "}" |
14 | [email protected] "}" | ||
15 | [email protected] "\n" | 14 | [email protected] "\n" |
16 | [email protected] | 15 | [email protected] |
17 | [email protected] "fn" | 16 | [email protected] "fn" |
@@ -23,22 +22,21 @@ [email protected] | |||
23 | [email protected] ")" | 22 | [email protected] ")" |
24 | [email protected] " " | 23 | [email protected] " " |
25 | [email protected] | 24 | [email protected] |
26 | [email protected] | 25 | [email protected] "{" |
27 | [email protected] "{" | 26 | [email protected] " " |
28 | [email protected] " " | 27 | [email protected] |
29 | [email protected] | 28 | [email protected] "let" |
30 | [email protected] "let" | 29 | [email protected] " " |
31 | [email protected] " " | 30 | [email protected] |
32 | [email protected] | 31 | [email protected] "_" |
33 | [email protected] "_" | 32 | [email protected] " " |
34 | [email protected] " " | 33 | [email protected] "=" |
35 | [email protected] "=" | 34 | [email protected] " " |
36 | [email protected] " " | 35 | [email protected] |
37 | [email protected] | 36 | [email protected] "1" |
38 | [email protected] "1" | 37 | [email protected] ";" |
39 | [email protected] ";" | 38 | [email protected] " " |
40 | [email protected] " " | 39 | [email protected] "}" |
41 | [email protected] "}" | ||
42 | [email protected] "\n" | 40 | [email protected] "\n" |
43 | [email protected] | 41 | [email protected] |
44 | [email protected] "fn" | 42 | [email protected] "fn" |
@@ -50,20 +48,19 @@ [email protected] | |||
50 | [email protected] ")" | 48 | [email protected] ")" |
51 | [email protected] " " | 49 | [email protected] " " |
52 | [email protected] | 50 | [email protected] |
53 | [email protected] | 51 | [email protected] "{" |
54 | [email protected] "{" | 52 | [email protected] " " |
55 | [email protected] " " | 53 | [email protected] |
56 | [email protected] | 54 | [email protected] |
57 | [email protected] | 55 | [email protected] "1" |
58 | [email protected] "1" | 56 | [email protected] ";" |
59 | [email protected] ";" | 57 | [email protected] " " |
60 | [email protected] " " | 58 | [email protected] |
61 | [email protected] | 59 | [email protected] |
62 | [email protected] | 60 | [email protected] "2" |
63 | [email protected] "2" | 61 | [email protected] ";" |
64 | [email protected] ";" | 62 | [email protected] " " |
65 | [email protected] " " | 63 | [email protected] "}" |
66 | [email protected] "}" | ||
67 | [email protected] "\n" | 64 | [email protected] "\n" |
68 | [email protected] | 65 | [email protected] |
69 | [email protected] "fn" | 66 | [email protected] "fn" |
@@ -75,16 +72,15 @@ [email protected] | |||
75 | [email protected] ")" | 72 | [email protected] ")" |
76 | [email protected] " " | 73 | [email protected] " " |
77 | [email protected] | 74 | [email protected] |
78 | [email protected] | 75 | [email protected] "{" |
79 | [email protected] "{" | 76 | [email protected] " " |
80 | [email protected] " " | 77 | [email protected] |
81 | [email protected] | 78 | [email protected] |
82 | [email protected] | 79 | [email protected] "1" |
83 | [email protected] "1" | 80 | [email protected] ";" |
84 | [email protected] ";" | 81 | [email protected] " " |
85 | [email protected] " " | 82 | [email protected] |
86 | [email protected] | 83 | [email protected] "2" |
87 | [email protected] "2" | 84 | [email protected] " " |
88 | [email protected] " " | 85 | [email protected] "}" |
89 | [email protected] "}" | ||
90 | [email protected] "\n" | 86 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast index 9621ba59e..e2c1a507d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast | |||
@@ -34,7 +34,6 @@ [email protected] | |||
34 | [email protected] "Copy" | 34 | [email protected] "Copy" |
35 | [email protected] " " | 35 | [email protected] " " |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "{" |
38 | [email protected] "{" | 38 | [email protected] "}" |
39 | [email protected] "}" | ||
40 | [email protected] "\n" | 39 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast index ed9d62c5f..4f3a8ed24 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast | |||
@@ -9,18 +9,17 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "x" |
21 | [email protected] "x" | 21 | [email protected] "?" |
22 | [email protected] "?" | 22 | [email protected] ";" |
23 | [email protected] ";" | 23 | [email protected] "\n" |
24 | [email protected] "\n" | 24 | [email protected] "}" |
25 | [email protected] "}" | ||
26 | [email protected] "\n" | 25 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast index 5141ce70d..462d1a8bb 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast | |||
@@ -9,88 +9,87 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "x" |
20 | [email protected] "x" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "=" |
22 | [email protected] "=" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "1" |
26 | [email protected] "1" | 26 | [email protected] ".." |
27 | [email protected] ".." | 27 | [email protected] ";" |
28 | [email protected] ";" | 28 | [email protected] "\n " |
29 | [email protected] "\n " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "match" |
32 | [email protected] "match" | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "1" |
36 | [email protected] "1" | 36 | [email protected] ".." |
37 | [email protected] ".." | 37 | [email protected] " " |
38 | [email protected] " " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "{" |
40 | [email protected] "{" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "_" |
44 | [email protected] "_" | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] "=>" |
46 | [email protected] "=>" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "(" |
49 | [email protected] "(" | 49 | [email protected] ")" |
50 | [email protected] ")" | 50 | [email protected] " " |
51 | [email protected] " " | 51 | [email protected] "}" |
52 | [email protected] "}" | 52 | [email protected] ";" |
53 | [email protected] ";" | 53 | [email protected] "\n " |
54 | [email protected] "\n " | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] "match" |
57 | [email protected] "match" | 57 | [email protected] " " |
58 | [email protected] " " | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "a" |
65 | [email protected] "a" | 65 | [email protected] "." |
66 | [email protected] "." | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] "b" |
68 | [email protected] "b" | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] "(" |
70 | [email protected] "(" | 70 | [email protected] ")" |
71 | [email protected] ")" | 71 | [email protected] ".." |
72 | [email protected] ".." | 72 | [email protected] |
73 | [email protected] | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "S" |
77 | [email protected] "S" | 77 | [email protected] " " |
78 | [email protected] " " | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "{" |
80 | [email protected] "{" | 80 | [email protected] " " |
81 | [email protected] " " | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "_" |
84 | [email protected] "_" | 84 | [email protected] " " |
85 | [email protected] " " | 85 | [email protected] "=>" |
86 | [email protected] "=>" | 86 | [email protected] " " |
87 | [email protected] " " | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] "(" |
89 | [email protected] "(" | 89 | [email protected] ")" |
90 | [email protected] ")" | 90 | [email protected] " " |
91 | [email protected] " " | 91 | [email protected] "}" |
92 | [email protected] "}" | 92 | [email protected] ";" |
93 | [email protected] ";" | 93 | [email protected] "\n" |
94 | [email protected] "\n" | 94 | [email protected] "}" |
95 | [email protected] "}" | ||
96 | [email protected] "\n" | 95 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast index cdbe64180..dfb8d57ad 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast | |||
@@ -89,9 +89,8 @@ [email protected] | |||
89 | [email protected] "Iterator" | 89 | [email protected] "Iterator" |
90 | [email protected] " " | 90 | [email protected] " " |
91 | [email protected] | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] "{" |
93 | [email protected] "{" | 93 | [email protected] "}" |
94 | [email protected] "}" | ||
95 | [email protected] "\n" | 94 | [email protected] "\n" |
96 | [email protected] | 95 | [email protected] |
97 | [email protected] "fn" | 96 | [email protected] "fn" |
@@ -155,9 +154,8 @@ [email protected] | |||
155 | [email protected] "Iterator" | 154 | [email protected] "Iterator" |
156 | [email protected] " " | 155 | [email protected] " " |
157 | [email protected] | 156 | [email protected] |
158 | [email protected] | 157 | [email protected] "{" |
159 | [email protected] "{" | 158 | [email protected] "}" |
160 | [email protected] "}" | ||
161 | [email protected] "\n" | 159 | [email protected] "\n" |
162 | [email protected] | 160 | [email protected] |
163 | [email protected] "fn" | 161 | [email protected] "fn" |
@@ -237,7 +235,6 @@ [email protected] | |||
237 | [email protected] "Iterator" | 235 | [email protected] "Iterator" |
238 | [email protected] " " | 236 | [email protected] " " |
239 | [email protected] | 237 | [email protected] |
240 | [email protected] | 238 | [email protected] "{" |
241 | [email protected] "{" | 239 | [email protected] "}" |
242 | [email protected] "}" | ||
243 | [email protected] "\n" | 240 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast index fbad33389..7fe96e17d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast | |||
@@ -9,47 +9,46 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "_" |
19 | [email protected] "_" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "&" |
24 | [email protected] "&" | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "1" |
26 | [email protected] "1" | 26 | [email protected] ";" |
27 | [email protected] ";" | 27 | [email protected] "\n " |
28 | [email protected] "\n " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "let" |
30 | [email protected] "let" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "_" |
33 | [email protected] "_" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] "=" |
35 | [email protected] "=" | 35 | [email protected] " " |
36 | [email protected] " " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "&" |
38 | [email protected] "&" | 38 | [email protected] "mut" |
39 | [email protected] "mut" | 39 | [email protected] " " |
40 | [email protected] " " | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "&" |
42 | [email protected] "&" | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "f" |
48 | [email protected] "f" | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "(" |
50 | [email protected] "(" | 50 | [email protected] ")" |
51 | [email protected] ")" | 51 | [email protected] ";" |
52 | [email protected] ";" | 52 | [email protected] "\n" |
53 | [email protected] "\n" | 53 | [email protected] "}" |
54 | [email protected] "}" | ||
55 | [email protected] "\n" | 54 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast index b165789fd..9fcb7899e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast | |||
@@ -9,128 +9,127 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "_" |
19 | [email protected] "_" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "true" |
24 | [email protected] "true" | 24 | [email protected] ";" |
25 | [email protected] ";" | 25 | [email protected] "\n " |
26 | [email protected] "\n " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "let" |
28 | [email protected] "let" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "_" |
31 | [email protected] "_" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] "=" |
33 | [email protected] "=" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "false" |
36 | [email protected] "false" | 36 | [email protected] ";" |
37 | [email protected] ";" | 37 | [email protected] "\n " |
38 | [email protected] "\n " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "let" |
40 | [email protected] "let" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "_" |
43 | [email protected] "_" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] "=" |
45 | [email protected] "=" | 45 | [email protected] " " |
46 | [email protected] " " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "1" |
48 | [email protected] "1" | 48 | [email protected] ";" |
49 | [email protected] ";" | 49 | [email protected] "\n " |
50 | [email protected] "\n " | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "let" |
52 | [email protected] "let" | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "_" |
55 | [email protected] "_" | 55 | [email protected] " " |
56 | [email protected] " " | 56 | [email protected] "=" |
57 | [email protected] "=" | 57 | [email protected] " " |
58 | [email protected] " " | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "2.0" |
60 | [email protected] "2.0" | 60 | [email protected] ";" |
61 | [email protected] ";" | 61 | [email protected] "\n " |
62 | [email protected] "\n " | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "let" |
64 | [email protected] "let" | 64 | [email protected] " " |
65 | [email protected] " " | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] "_" |
67 | [email protected] "_" | 67 | [email protected] " " |
68 | [email protected] " " | 68 | [email protected] "=" |
69 | [email protected] "=" | 69 | [email protected] " " |
70 | [email protected] " " | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "b\'a\'" |
72 | [email protected] "b\'a\'" | 72 | [email protected] ";" |
73 | [email protected] ";" | 73 | [email protected] "\n " |
74 | [email protected] "\n " | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] "let" |
76 | [email protected] "let" | 76 | [email protected] " " |
77 | [email protected] " " | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] "_" |
79 | [email protected] "_" | 79 | [email protected] " " |
80 | [email protected] " " | 80 | [email protected] "=" |
81 | [email protected] "=" | 81 | [email protected] " " |
82 | [email protected] " " | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "\'b\'" |
84 | [email protected] "\'b\'" | 84 | [email protected] ";" |
85 | [email protected] ";" | 85 | [email protected] "\n " |
86 | [email protected] "\n " | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] "let" |
88 | [email protected] "let" | 88 | [email protected] " " |
89 | [email protected] " " | 89 | [email protected] |
90 | [email protected] | 90 | [email protected] "_" |
91 | [email protected] "_" | 91 | [email protected] " " |
92 | [email protected] " " | 92 | [email protected] "=" |
93 | [email protected] "=" | 93 | [email protected] " " |
94 | [email protected] " " | 94 | [email protected] |
95 | [email protected] | 95 | [email protected] "\"c\"" |
96 | [email protected] "\"c\"" | 96 | [email protected] ";" |
97 | [email protected] ";" | 97 | [email protected] "\n " |
98 | [email protected] "\n " | 98 | [email protected] |
99 | [email protected] | 99 | [email protected] "let" |
100 | [email protected] "let" | 100 | [email protected] " " |
101 | [email protected] " " | 101 | [email protected] |
102 | [email protected] | 102 | [email protected] "_" |
103 | [email protected] "_" | 103 | [email protected] " " |
104 | [email protected] " " | 104 | [email protected] "=" |
105 | [email protected] "=" | 105 | [email protected] " " |
106 | [email protected] " " | 106 | [email protected] |
107 | [email protected] | 107 | [email protected] "r\"d\"" |
108 | [email protected] "r\"d\"" | 108 | [email protected] ";" |
109 | [email protected] ";" | 109 | [email protected] "\n " |
110 | [email protected] "\n " | 110 | [email protected] |
111 | [email protected] | 111 | [email protected] "let" |
112 | [email protected] "let" | 112 | [email protected] " " |
113 | [email protected] " " | 113 | [email protected] |
114 | [email protected] | 114 | [email protected] "_" |
115 | [email protected] "_" | 115 | [email protected] " " |
116 | [email protected] " " | 116 | [email protected] "=" |
117 | [email protected] "=" | 117 | [email protected] " " |
118 | [email protected] " " | 118 | [email protected] |
119 | [email protected] | 119 | [email protected] "b\"e\"" |
120 | [email protected] "b\"e\"" | 120 | [email protected] ";" |
121 | [email protected] ";" | 121 | [email protected] "\n " |
122 | [email protected] "\n " | 122 | [email protected] |
123 | [email protected] | 123 | [email protected] "let" |
124 | [email protected] "let" | 124 | [email protected] " " |
125 | [email protected] " " | 125 | [email protected] |
126 | [email protected] | 126 | [email protected] "_" |
127 | [email protected] "_" | 127 | [email protected] " " |
128 | [email protected] " " | 128 | [email protected] "=" |
129 | [email protected] "=" | 129 | [email protected] " " |
130 | [email protected] " " | 130 | [email protected] |
131 | [email protected] | 131 | [email protected] "br\"f\"" |
132 | [email protected] "br\"f\"" | 132 | [email protected] ";" |
133 | [email protected] ";" | 133 | [email protected] "\n" |
134 | [email protected] "\n" | 134 | [email protected] "}" |
135 | [email protected] "}" | ||
136 | [email protected] "\n" | 135 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast index 36f17133d..a42abc189 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast | |||
@@ -9,9 +9,8 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "}" |
14 | [email protected] "}" | ||
15 | [email protected] "\n" | 14 | [email protected] "\n" |
16 | [email protected] | 15 | [email protected] |
17 | [email protected] "fn" | 16 | [email protected] "fn" |
@@ -30,7 +29,6 @@ [email protected] | |||
30 | [email protected] ")" | 29 | [email protected] ")" |
31 | [email protected] " " | 30 | [email protected] " " |
32 | [email protected] | 31 | [email protected] |
33 | [email protected] | 32 | [email protected] "{" |
34 | [email protected] "{" | 33 | [email protected] "}" |
35 | [email protected] "}" | ||
36 | [email protected] "\n" | 34 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast index ca5aa007e..7e71d7373 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast | |||
@@ -8,62 +8,58 @@ [email protected] | |||
8 | [email protected] "(" | 8 | [email protected] "(" |
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] | 10 | [email protected] |
11 | [email protected] | 11 | [email protected] "{" |
12 | [email protected] "{" | 12 | [email protected] "\n " |
13 | [email protected] "\n " | 13 | [email protected] |
14 | [email protected] | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "if" |
16 | [email protected] "if" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "break" |
20 | [email protected] "break" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "{" |
23 | [email protected] | 23 | [email protected] "}" |
24 | [email protected] "{" | 24 | [email protected] "\n " |
25 | [email protected] "}" | 25 | [email protected] |
26 | [email protected] "\n " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "while" |
28 | [email protected] | 28 | [email protected] " " |
29 | [email protected] "while" | 29 | [email protected] |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "break" |
32 | [email protected] | 32 | [email protected] " " |
33 | [email protected] "break" | 33 | [email protected] |
34 | [email protected] " " | 34 | [email protected] "{" |
35 | [email protected] | 35 | [email protected] "}" |
36 | [email protected] | 36 | [email protected] "\n " |
37 | [email protected] "{" | 37 | [email protected] |
38 | [email protected] "}" | 38 | [email protected] |
39 | [email protected] "\n " | 39 | [email protected] "for" |
40 | [email protected] | 40 | [email protected] " " |
41 | [email protected] | 41 | [email protected] |
42 | [email protected] "for" | 42 | [email protected] |
43 | [email protected] " " | 43 | [email protected] "i" |
44 | [email protected] | 44 | [email protected] " " |
45 | [email protected] | 45 | [email protected] "in" |
46 | [email protected] "i" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] "in" | 48 | [email protected] "break" |
49 | [email protected] " " | 49 | [email protected] " " |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] "break" | 51 | [email protected] "{" |
52 | [email protected] " " | 52 | [email protected] "}" |
53 | [email protected] | 53 | [email protected] "\n " |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] "{" | 55 | [email protected] "match" |
56 | [email protected] "}" | 56 | [email protected] " " |
57 | [email protected] "\n " | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "break" |
59 | [email protected] "match" | 59 | [email protected] " " |
60 | [email protected] " " | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "{" |
62 | [email protected] "break" | 62 | [email protected] "}" |
63 | [email protected] " " | 63 | [email protected] "\n" |
64 | [email protected] | 64 | [email protected] "}" |
65 | [email protected] "{" | ||
66 | [email protected] "}" | ||
67 | [email protected] "\n" | ||
68 | [email protected] "}" | ||
69 | [email protected] "\n" | 65 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast index 1c1e349e1..48aaf1004 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast | |||
@@ -12,7 +12,6 @@ [email protected] | |||
12 | [email protected] ")" | 12 | [email protected] ")" |
13 | [email protected] " " | 13 | [email protected] " " |
14 | [email protected] | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "{" |
16 | [email protected] "{" | 16 | [email protected] "}" |
17 | [email protected] "}" | ||
18 | [email protected] "\n" | 17 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast index c264dae5e..aed81f9b0 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast | |||
@@ -9,26 +9,25 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "x" |
22 | [email protected] "x" | 22 | [email protected] "[" |
23 | [email protected] "[" | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "1" |
25 | [email protected] "1" | 25 | [email protected] "]" |
26 | [email protected] "]" | 26 | [email protected] "[" |
27 | [email protected] "[" | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "2" |
29 | [email protected] "2" | 29 | [email protected] "]" |
30 | [email protected] "]" | 30 | [email protected] ";" |
31 | [email protected] ";" | 31 | [email protected] "\n" |
32 | [email protected] "\n" | 32 | [email protected] "}" |
33 | [email protected] "}" | ||
34 | [email protected] "\n" | 33 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast index 24e1ba8a0..67d9595d3 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast | |||
@@ -9,21 +9,20 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "_" |
19 | [email protected] "_" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "(" |
24 | [email protected] "(" | 24 | [email protected] ")" |
25 | [email protected] ")" | 25 | [email protected] ";" |
26 | [email protected] ";" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] "}" |
28 | [email protected] "}" | ||
29 | [email protected] "\n" | 28 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast index 47462d44e..031e74652 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast | |||
@@ -9,122 +9,115 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "if" |
17 | [email protected] "if" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "true" |
21 | [email protected] "true" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] | 24 | [email protected] "}" |
25 | [email protected] "{" | 25 | [email protected] "\n " |
26 | [email protected] "}" | 26 | [email protected] |
27 | [email protected] "\n " | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "loop" |
29 | [email protected] | 29 | [email protected] " " |
30 | [email protected] "loop" | 30 | [email protected] |
31 | [email protected] " " | 31 | [email protected] "{" |
32 | [email protected] | 32 | [email protected] "}" |
33 | [email protected] | 33 | [email protected] "\n " |
34 | [email protected] "{" | 34 | [email protected] |
35 | [email protected] "}" | 35 | [email protected] |
36 | [email protected] "\n " | 36 | [email protected] "match" |
37 | [email protected] | 37 | [email protected] " " |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] "match" | 39 | [email protected] "(" |
40 | [email protected] " " | 40 | [email protected] ")" |
41 | [email protected] | 41 | [email protected] " " |
42 | [email protected] "(" | 42 | [email protected] |
43 | [email protected] ")" | 43 | [email protected] "{" |
44 | [email protected] " " | 44 | [email protected] "}" |
45 | [email protected] | 45 | [email protected] "\n " |
46 | [email protected] "{" | 46 | [email protected] |
47 | [email protected] "}" | 47 | [email protected] |
48 | [email protected] "\n " | 48 | [email protected] "while" |
49 | [email protected] | 49 | [email protected] " " |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] "while" | 51 | [email protected] |
52 | [email protected] " " | 52 | [email protected] "true" |
53 | [email protected] | 53 | [email protected] " " |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] "true" | 55 | [email protected] "{" |
56 | [email protected] " " | 56 | [email protected] "}" |
57 | [email protected] | 57 | [email protected] "\n " |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] "{" | 59 | [email protected] |
60 | [email protected] "}" | 60 | [email protected] "for" |
61 | [email protected] "\n " | 61 | [email protected] " " |
62 | [email protected] | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "_" |
64 | [email protected] "for" | 64 | [email protected] " " |
65 | [email protected] " " | 65 | [email protected] "in" |
66 | [email protected] | 66 | [email protected] " " |
67 | [email protected] "_" | 67 | [email protected] |
68 | [email protected] " " | 68 | [email protected] "(" |
69 | [email protected] "in" | 69 | [email protected] ")" |
70 | [email protected] " " | 70 | [email protected] " " |
71 | [email protected] | 71 | [email protected] |
72 | [email protected] "(" | 72 | [email protected] "{" |
73 | [email protected] ")" | 73 | [email protected] "}" |
74 | [email protected] " " | 74 | [email protected] "\n " |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] |
77 | [email protected] "{" | 77 | [email protected] "{" |
78 | [email protected] "}" | 78 | [email protected] "}" |
79 | [email protected] "\n " | 79 | [email protected] "\n " |
80 | [email protected] | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] "{" |
83 | [email protected] "{" | 83 | [email protected] "}" |
84 | [email protected] "}" | 84 | [email protected] "\n " |
85 | [email protected] "\n " | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] |
89 | [email protected] "{" | 89 | [email protected] |
90 | [email protected] "}" | 90 | [email protected] "macro_rules" |
91 | [email protected] "\n " | 91 | [email protected] "!" |
92 | [email protected] | 92 | [email protected] " " |
93 | [email protected] | 93 | [email protected] |
94 | [email protected] | 94 | [email protected] "test" |
95 | [email protected] | 95 | [email protected] " " |
96 | [email protected] | 96 | [email protected] |
97 | [email protected] "macro_rules" | 97 | [email protected] "{" |
98 | [email protected] "!" | 98 | [email protected] "\n " |
99 | [email protected] " " | 99 | [email protected] |
100 | [email protected] | 100 | [email protected] "(" |
101 | [email protected] "test" | 101 | [email protected] ")" |
102 | [email protected] " " | 102 | [email protected] " " |
103 | [email protected] | 103 | [email protected] "=" |
104 | [email protected] "{" | 104 | [email protected] ">" |
105 | [email protected] "\n " | 105 | [email protected] " " |
106 | [email protected] | 106 | [email protected] |
107 | [email protected] "(" | 107 | [email protected] "{" |
108 | [email protected] ")" | 108 | [email protected] "}" |
109 | [email protected] " " | 109 | [email protected] "\n " |
110 | [email protected] "=" | 110 | [email protected] "}" |
111 | [email protected] ">" | 111 | [email protected] "\n " |
112 | [email protected] " " | 112 | [email protected] |
113 | [email protected] | 113 | [email protected] |
114 | [email protected] "{" | 114 | [email protected] |
115 | [email protected] "}" | 115 | [email protected] |
116 | [email protected] "\n " | 116 | [email protected] "test" |
117 | [email protected] "}" | 117 | [email protected] "!" |
118 | [email protected] "\n " | 118 | [email protected] |
119 | [email protected] | 119 | [email protected] "{" |
120 | [email protected] | 120 | [email protected] "}" |
121 | [email protected] | 121 | [email protected] "\n" |
122 | [email protected] | 122 | [email protected] "}" |
123 | [email protected] "test" | ||
124 | [email protected] "!" | ||
125 | [email protected] | ||
126 | [email protected] "{" | ||
127 | [email protected] "}" | ||
128 | [email protected] "\n" | ||
129 | [email protected] "}" | ||
130 | [email protected] "\n" | 123 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast index a51fb5511..816e49310 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast | |||
@@ -13,7 +13,6 @@ [email protected] | |||
13 | [email protected] ")" | 13 | [email protected] ")" |
14 | [email protected] " " | 14 | [email protected] " " |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "{" |
17 | [email protected] "{" | 17 | [email protected] "}" |
18 | [email protected] "}" | ||
19 | [email protected] "\n" | 18 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast index 61b47bf35..d48ef865c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast | |||
@@ -9,9 +9,8 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "}" |
14 | [email protected] "}" | ||
15 | [email protected] "\n" | 14 | [email protected] "\n" |
16 | [email protected] | 15 | [email protected] |
17 | [email protected] "fn" | 16 | [email protected] "fn" |
@@ -34,9 +33,8 @@ [email protected] | |||
34 | [email protected] ")" | 33 | [email protected] ")" |
35 | [email protected] " " | 34 | [email protected] " " |
36 | [email protected] | 35 | [email protected] |
37 | [email protected] | 36 | [email protected] "{" |
38 | [email protected] "{" | 37 | [email protected] "}" |
39 | [email protected] "}" | ||
40 | [email protected] "\n" | 38 | [email protected] "\n" |
41 | [email protected] | 39 | [email protected] |
42 | [email protected] "fn" | 40 | [email protected] "fn" |
@@ -61,9 +59,8 @@ [email protected] | |||
61 | [email protected] ")" | 59 | [email protected] ")" |
62 | [email protected] " " | 60 | [email protected] " " |
63 | [email protected] | 61 | [email protected] |
64 | [email protected] | 62 | [email protected] "{" |
65 | [email protected] "{" | 63 | [email protected] "}" |
66 | [email protected] "}" | ||
67 | [email protected] "\n" | 64 | [email protected] "\n" |
68 | [email protected] | 65 | [email protected] |
69 | [email protected] "fn" | 66 | [email protected] "fn" |
@@ -97,7 +94,6 @@ [email protected] | |||
97 | [email protected] ")" | 94 | [email protected] ")" |
98 | [email protected] " " | 95 | [email protected] " " |
99 | [email protected] | 96 | [email protected] |
100 | [email protected] | 97 | [email protected] "{" |
101 | [email protected] "{" | 98 | [email protected] "}" |
102 | [email protected] "}" | ||
103 | [email protected] "\n" | 99 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast index 89d435d1f..e4455cd3e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast | |||
@@ -9,28 +9,26 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "for" |
17 | [email protected] "for" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "x" |
21 | [email protected] "x" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] "in" |
23 | [email protected] "in" | 23 | [email protected] " " |
24 | [email protected] " " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "[" |
26 | [email protected] "[" | 26 | [email protected] "]" |
27 | [email protected] "]" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "{" |
30 | [email protected] | 30 | [email protected] "}" |
31 | [email protected] "{" | 31 | [email protected] ";" |
32 | [email protected] "}" | 32 | [email protected] "\n" |
33 | [email protected] ";" | 33 | [email protected] "}" |
34 | [email protected] "\n" | ||
35 | [email protected] "}" | ||
36 | [email protected] "\n" | 34 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast index 57b4d0c4f..8a8743060 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast | |||
@@ -11,7 +11,6 @@ [email protected] | |||
11 | [email protected] ")" | 11 | [email protected] ")" |
12 | [email protected] " " | 12 | [email protected] " " |
13 | [email protected] | 13 | [email protected] |
14 | [email protected] | 14 | [email protected] "{" |
15 | [email protected] "{" | 15 | [email protected] "}" |
16 | [email protected] "}" | ||
17 | [email protected] "\n" | 16 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast index ed6f6f326..9f966ff8a 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast | |||
@@ -9,125 +9,124 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "S" |
22 | [email protected] "S" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "{" |
25 | [email protected] "{" | 25 | [email protected] "}" |
26 | [email protected] "}" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] "=" |
28 | [email protected] "=" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "(" |
31 | [email protected] "(" | 31 | [email protected] ")" |
32 | [email protected] ")" | 32 | [email protected] ";" |
33 | [email protected] ";" | 33 | [email protected] "\n " |
34 | [email protected] "\n " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "let" |
36 | [email protected] "let" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "S" |
42 | [email protected] "S" | 42 | [email protected] " " |
43 | [email protected] " " | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "{" |
45 | [email protected] "{" | 45 | [email protected] " " |
46 | [email protected] " " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "f" |
50 | [email protected] "f" | 50 | [email protected] "," |
51 | [email protected] "," | 51 | [email protected] " " |
52 | [email protected] " " | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "ref" |
55 | [email protected] "ref" | 55 | [email protected] " " |
56 | [email protected] " " | 56 | [email protected] "mut" |
57 | [email protected] "mut" | 57 | [email protected] " " |
58 | [email protected] " " | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "g" |
60 | [email protected] "g" | 60 | [email protected] " " |
61 | [email protected] " " | 61 | [email protected] "}" |
62 | [email protected] "}" | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] "=" |
64 | [email protected] "=" | 64 | [email protected] " " |
65 | [email protected] " " | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] "(" |
67 | [email protected] "(" | 67 | [email protected] ")" |
68 | [email protected] ")" | 68 | [email protected] ";" |
69 | [email protected] ";" | 69 | [email protected] "\n " |
70 | [email protected] "\n " | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "let" |
72 | [email protected] "let" | 72 | [email protected] " " |
73 | [email protected] " " | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] "S" |
78 | [email protected] "S" | 78 | [email protected] " " |
79 | [email protected] " " | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] "{" |
81 | [email protected] "{" | 81 | [email protected] " " |
82 | [email protected] " " | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] "h" |
85 | [email protected] "h" | 85 | [email protected] ":" |
86 | [email protected] ":" | 86 | [email protected] " " |
87 | [email protected] " " | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] "_" |
89 | [email protected] "_" | 89 | [email protected] "," |
90 | [email protected] "," | 90 | [email protected] " " |
91 | [email protected] " " | 91 | [email protected] ".." |
92 | [email protected] ".." | 92 | [email protected] "}" |
93 | [email protected] "}" | 93 | [email protected] " " |
94 | [email protected] " " | 94 | [email protected] "=" |
95 | [email protected] "=" | 95 | [email protected] " " |
96 | [email protected] " " | 96 | [email protected] |
97 | [email protected] | 97 | [email protected] "(" |
98 | [email protected] "(" | 98 | [email protected] ")" |
99 | [email protected] ")" | 99 | [email protected] ";" |
100 | [email protected] ";" | 100 | [email protected] "\n " |
101 | [email protected] "\n " | 101 | [email protected] |
102 | [email protected] | 102 | [email protected] "let" |
103 | [email protected] "let" | 103 | [email protected] " " |
104 | [email protected] " " | 104 | [email protected] |
105 | [email protected] | 105 | [email protected] |
106 | [email protected] | 106 | [email protected] |
107 | [email protected] | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] "S" |
109 | [email protected] "S" | 109 | [email protected] " " |
110 | [email protected] " " | 110 | [email protected] |
111 | [email protected] | 111 | [email protected] "{" |
112 | [email protected] "{" | 112 | [email protected] " " |
113 | [email protected] " " | 113 | [email protected] |
114 | [email protected] | 114 | [email protected] |
115 | [email protected] | 115 | [email protected] "h" |
116 | [email protected] "h" | 116 | [email protected] ":" |
117 | [email protected] ":" | 117 | [email protected] " " |
118 | [email protected] " " | 118 | [email protected] |
119 | [email protected] | 119 | [email protected] "_" |
120 | [email protected] "_" | 120 | [email protected] "," |
121 | [email protected] "," | 121 | [email protected] " " |
122 | [email protected] " " | 122 | [email protected] "}" |
123 | [email protected] "}" | 123 | [email protected] " " |
124 | [email protected] " " | 124 | [email protected] "=" |
125 | [email protected] "=" | 125 | [email protected] " " |
126 | [email protected] " " | 126 | [email protected] |
127 | [email protected] | 127 | [email protected] "(" |
128 | [email protected] "(" | 128 | [email protected] ")" |
129 | [email protected] ")" | 129 | [email protected] ";" |
130 | [email protected] ";" | 130 | [email protected] "\n" |
131 | [email protected] "\n" | 131 | [email protected] "}" |
132 | [email protected] "}" | ||
133 | [email protected] "\n" | 132 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast index 461c61914..9b3bef04e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast | |||
@@ -9,47 +9,46 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "[" |
17 | [email protected] "[" | 17 | [email protected] "]" |
18 | [email protected] "]" | 18 | [email protected] ";" |
19 | [email protected] ";" | 19 | [email protected] "\n " |
20 | [email protected] "\n " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "[" |
23 | [email protected] "[" | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "1" |
25 | [email protected] "1" | 25 | [email protected] "]" |
26 | [email protected] "]" | 26 | [email protected] ";" |
27 | [email protected] ";" | 27 | [email protected] "\n " |
28 | [email protected] "\n " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "[" |
31 | [email protected] "[" | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "1" |
33 | [email protected] "1" | 33 | [email protected] "," |
34 | [email protected] "," | 34 | [email protected] " " |
35 | [email protected] " " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "2" |
37 | [email protected] "2" | 37 | [email protected] "," |
38 | [email protected] "," | 38 | [email protected] "]" |
39 | [email protected] "]" | 39 | [email protected] ";" |
40 | [email protected] ";" | 40 | [email protected] "\n " |
41 | [email protected] "\n " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "[" |
44 | [email protected] "[" | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "1" |
46 | [email protected] "1" | 46 | [email protected] ";" |
47 | [email protected] ";" | 47 | [email protected] " " |
48 | [email protected] " " | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "2" |
50 | [email protected] "2" | 50 | [email protected] "]" |
51 | [email protected] "]" | 51 | [email protected] ";" |
52 | [email protected] ";" | 52 | [email protected] "\n" |
53 | [email protected] "\n" | 53 | [email protected] "}" |
54 | [email protected] "}" | ||
55 | [email protected] "\n" | 54 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast deleted file mode 100644 index 8b2323cf2..000000000 --- a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] "fn" | ||
4 | [email protected] " " | ||
5 | [email protected] | ||
6 | [email protected] "foo" | ||
7 | [email protected] | ||
8 | [email protected] "(" | ||
9 | [email protected] ")" | ||
10 | [email protected] " " | ||
11 | [email protected] | ||
12 | [email protected] | ||
13 | [email protected] "{" | ||
14 | [email protected] "\n " | ||
15 | [email protected] | ||
16 | [email protected] | ||
17 | [email protected] | ||
18 | [email protected] "{" | ||
19 | [email protected] "}" | ||
20 | [email protected] ";" | ||
21 | [email protected] "\n " | ||
22 | [email protected] | ||
23 | [email protected] | ||
24 | [email protected] "unsafe" | ||
25 | [email protected] " " | ||
26 | [email protected] | ||
27 | [email protected] "{" | ||
28 | [email protected] "}" | ||
29 | [email protected] ";" | ||
30 | [email protected] "\n " | ||
31 | [email protected] | ||
32 | [email protected] | ||
33 | [email protected] | ||
34 | [email protected] "\'label" | ||
35 | [email protected] ":" | ||
36 | [email protected] " " | ||
37 | [email protected] | ||
38 | [email protected] "{" | ||
39 | [email protected] "}" | ||
40 | [email protected] ";" | ||
41 | [email protected] "\n" | ||
42 | [email protected] "}" | ||
43 | [email protected] "\n" | ||
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rs b/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rs deleted file mode 100644 index 2fed74c5e..000000000 --- a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rs +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | fn foo() { | ||
2 | {}; | ||
3 | unsafe {}; | ||
4 | 'label: {}; | ||
5 | } | ||
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast index 73c314e07..e64717152 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast | |||
@@ -9,132 +9,127 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] "|" |
18 | [email protected] "|" | 18 | [email protected] "|" |
19 | [email protected] "|" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "(" |
22 | [email protected] "(" | 22 | [email protected] ")" |
23 | [email protected] ")" | 23 | [email protected] ";" |
24 | [email protected] ";" | 24 | [email protected] "\n " |
25 | [email protected] "\n " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "|" |
29 | [email protected] "|" | 29 | [email protected] "|" |
30 | [email protected] "|" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "->" |
33 | [email protected] "->" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "i32" |
39 | [email protected] "i32" | 39 | [email protected] " " |
40 | [email protected] " " | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "{" |
42 | [email protected] | 42 | [email protected] " " |
43 | [email protected] "{" | 43 | [email protected] |
44 | [email protected] " " | 44 | [email protected] "92" |
45 | [email protected] | 45 | [email protected] " " |
46 | [email protected] "92" | 46 | [email protected] "}" |
47 | [email protected] " " | 47 | [email protected] ";" |
48 | [email protected] "}" | 48 | [email protected] "\n " |
49 | [email protected] ";" | 49 | [email protected] |
50 | [email protected] "\n " | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "|" |
53 | [email protected] | 53 | [email protected] |
54 | [email protected] "|" | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] "x" |
57 | [email protected] | 57 | [email protected] "|" |
58 | [email protected] "x" | 58 | [email protected] " " |
59 | [email protected] "|" | 59 | [email protected] |
60 | [email protected] " " | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "x" |
64 | [email protected] | 64 | [email protected] ";" |
65 | [email protected] "x" | 65 | [email protected] "\n " |
66 | [email protected] ";" | 66 | [email protected] |
67 | [email protected] "\n " | 67 | [email protected] |
68 | [email protected] | 68 | [email protected] "move" |
69 | [email protected] | 69 | [email protected] " " |
70 | [email protected] "move" | 70 | [email protected] |
71 | [email protected] " " | 71 | [email protected] "|" |
72 | [email protected] | 72 | [email protected] |
73 | [email protected] "|" | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] "x" |
76 | [email protected] | 76 | [email protected] ":" |
77 | [email protected] "x" | 77 | [email protected] " " |
78 | [email protected] ":" | 78 | [email protected] |
79 | [email protected] " " | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] "i32" |
83 | [email protected] | 83 | [email protected] "," |
84 | [email protected] "i32" | 84 | [email protected] "|" |
85 | [email protected] "," | 85 | [email protected] " " |
86 | [email protected] "|" | 86 | [email protected] |
87 | [email protected] " " | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] |
90 | [email protected] | 90 | [email protected] "x" |
91 | [email protected] | 91 | [email protected] ";" |
92 | [email protected] "x" | 92 | [email protected] "\n " |
93 | [email protected] ";" | 93 | [email protected] |
94 | [email protected] "\n " | 94 | [email protected] |
95 | [email protected] | 95 | [email protected] "async" |
96 | [email protected] | 96 | [email protected] " " |
97 | [email protected] "async" | 97 | [email protected] |
98 | [email protected] " " | 98 | [email protected] "|" |
99 | [email protected] | 99 | [email protected] "|" |
100 | [email protected] "|" | 100 | [email protected] " " |
101 | [email protected] "|" | 101 | [email protected] |
102 | [email protected] " " | 102 | [email protected] "{" |
103 | [email protected] | 103 | [email protected] "}" |
104 | [email protected] | 104 | [email protected] ";" |
105 | [email protected] "{" | 105 | [email protected] "\n " |
106 | [email protected] "}" | 106 | [email protected] |
107 | [email protected] ";" | 107 | [email protected] |
108 | [email protected] "\n " | 108 | [email protected] "move" |
109 | [email protected] | 109 | [email protected] " " |
110 | [email protected] | 110 | [email protected] |
111 | [email protected] "move" | 111 | [email protected] "|" |
112 | [email protected] " " | 112 | [email protected] "|" |
113 | [email protected] | 113 | [email protected] " " |
114 | [email protected] "|" | 114 | [email protected] |
115 | [email protected] "|" | 115 | [email protected] "{" |
116 | [email protected] " " | 116 | [email protected] "}" |
117 | [email protected] | 117 | [email protected] ";" |
118 | [email protected] | 118 | [email protected] "\n " |
119 | [email protected] "{" | 119 | [email protected] |
120 | [email protected] "}" | 120 | [email protected] |
121 | [email protected] ";" | 121 | [email protected] "async" |
122 | [email protected] "\n " | 122 | [email protected] " " |
123 | [email protected] | 123 | [email protected] "move" |
124 | [email protected] | 124 | [email protected] " " |
125 | [email protected] "async" | 125 | [email protected] |
126 | [email protected] " " | 126 | [email protected] "|" |
127 | [email protected] "move" | 127 | [email protected] "|" |
128 | [email protected] " " | 128 | [email protected] " " |
129 | [email protected] | 129 | [email protected] |
130 | [email protected] "|" | 130 | [email protected] "{" |
131 | [email protected] "|" | 131 | [email protected] "}" |
132 | [email protected] " " | 132 | [email protected] ";" |
133 | [email protected] | 133 | [email protected] "\n" |
134 | [email protected] | 134 | [email protected] "}" |
135 | [email protected] "{" | ||
136 | [email protected] "}" | ||
137 | [email protected] ";" | ||
138 | [email protected] "\n" | ||
139 | [email protected] "}" | ||
140 | [email protected] "\n" | 135 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast index 5392b1a74..98963dc62 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast | |||
@@ -9,55 +9,54 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "x" |
21 | [email protected] "x" | 21 | [email protected] "." |
22 | [email protected] "." | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "foo" |
24 | [email protected] "foo" | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "(" |
26 | [email protected] "(" | 26 | [email protected] ")" |
27 | [email protected] ")" | 27 | [email protected] ";" |
28 | [email protected] ";" | 28 | [email protected] "\n " |
29 | [email protected] "\n " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "y" |
36 | [email protected] "y" | 36 | [email protected] "." |
37 | [email protected] "." | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "bar" |
39 | [email protected] "bar" | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "::" |
41 | [email protected] "::" | 41 | [email protected] "<" |
42 | [email protected] "<" | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "T" |
48 | [email protected] "T" | 48 | [email protected] ">" |
49 | [email protected] ">" | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] "(" |
51 | [email protected] "(" | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "1" |
53 | [email protected] "1" | 53 | [email protected] "," |
54 | [email protected] "," | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] "2" |
57 | [email protected] "2" | 57 | [email protected] "," |
58 | [email protected] "," | 58 | [email protected] ")" |
59 | [email protected] ")" | 59 | [email protected] ";" |
60 | [email protected] ";" | 60 | [email protected] "\n" |
61 | [email protected] "\n" | 61 | [email protected] "}" |
62 | [email protected] "}" | ||
63 | [email protected] "\n" | 62 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast index 54f18adac..ea603e2c9 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast | |||
@@ -9,31 +9,30 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "(" |
17 | [email protected] "(" | 17 | [email protected] ")" |
18 | [email protected] ")" | 18 | [email protected] ";" |
19 | [email protected] ";" | 19 | [email protected] "\n " |
20 | [email protected] "\n " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "(" |
23 | [email protected] "(" | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "1" |
25 | [email protected] "1" | 25 | [email protected] ")" |
26 | [email protected] ")" | 26 | [email protected] ";" |
27 | [email protected] ";" | 27 | [email protected] "\n " |
28 | [email protected] "\n " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "(" |
31 | [email protected] "(" | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "1" |
33 | [email protected] "1" | 33 | [email protected] "," |
34 | [email protected] "," | 34 | [email protected] ")" |
35 | [email protected] ")" | 35 | [email protected] ";" |
36 | [email protected] ";" | 36 | [email protected] "\n" |
37 | [email protected] "\n" | 37 | [email protected] "}" |
38 | [email protected] "}" | ||
39 | [email protected] "\n" | 38 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast index 6c9e45684..30ff96a7c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast | |||
@@ -9,60 +9,56 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] "\'a" |
18 | [email protected] "\'a" | 18 | [email protected] ":" |
19 | [email protected] ":" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "loop" |
21 | [email protected] "loop" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] | 24 | [email protected] "}" |
25 | [email protected] "{" | 25 | [email protected] "\n " |
26 | [email protected] "}" | 26 | [email protected] |
27 | [email protected] "\n " | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "\'b" |
30 | [email protected] | 30 | [email protected] ":" |
31 | [email protected] "\'b" | 31 | [email protected] " " |
32 | [email protected] ":" | 32 | [email protected] "while" |
33 | [email protected] " " | 33 | [email protected] " " |
34 | [email protected] "while" | 34 | [email protected] |
35 | [email protected] " " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "true" |
37 | [email protected] | 37 | [email protected] " " |
38 | [email protected] "true" | 38 | [email protected] |
39 | [email protected] " " | 39 | [email protected] "{" |
40 | [email protected] | 40 | [email protected] "}" |
41 | [email protected] | 41 | [email protected] "\n " |
42 | [email protected] "{" | 42 | [email protected] |
43 | [email protected] "}" | 43 | [email protected] |
44 | [email protected] "\n " | 44 | [email protected] "\'c" |
45 | [email protected] | 45 | [email protected] ":" |
46 | [email protected] | 46 | [email protected] " " |
47 | [email protected] "\'c" | 47 | [email protected] "for" |
48 | [email protected] ":" | 48 | [email protected] " " |
49 | [email protected] " " | 49 | [email protected] |
50 | [email protected] "for" | 50 | [email protected] |
51 | [email protected] " " | 51 | [email protected] "x" |
52 | [email protected] | 52 | [email protected] " " |
53 | [email protected] | 53 | [email protected] "in" |
54 | [email protected] "x" | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] |
56 | [email protected] "in" | 56 | [email protected] "(" |
57 | [email protected] " " | 57 | [email protected] ")" |
58 | [email protected] | 58 | [email protected] " " |
59 | [email protected] "(" | 59 | [email protected] |
60 | [email protected] ")" | 60 | [email protected] "{" |
61 | [email protected] " " | 61 | [email protected] "}" |
62 | [email protected] | 62 | [email protected] "\n" |
63 | [email protected] | 63 | [email protected] "}" |
64 | [email protected] "{" | ||
65 | [email protected] "}" | ||
66 | [email protected] "\n" | ||
67 | [email protected] "}" | ||
68 | [email protected] "\n" | 64 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast index a1c5475e7..b58f40ac1 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast | |||
@@ -9,82 +9,81 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "(" |
19 | [email protected] "(" | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "a" |
22 | [email protected] "a" | 22 | [email protected] "," |
23 | [email protected] "," | 23 | [email protected] " " |
24 | [email protected] " " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "b" |
27 | [email protected] "b" | 27 | [email protected] "," |
28 | [email protected] "," | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] ".." |
31 | [email protected] ".." | 31 | [email protected] ")" |
32 | [email protected] ")" | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] "=" |
34 | [email protected] "=" | 34 | [email protected] " " |
35 | [email protected] " " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "(" |
37 | [email protected] "(" | 37 | [email protected] ")" |
38 | [email protected] ")" | 38 | [email protected] ";" |
39 | [email protected] ";" | 39 | [email protected] "\n " |
40 | [email protected] "\n " | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "let" |
42 | [email protected] "let" | 42 | [email protected] " " |
43 | [email protected] " " | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "(" |
45 | [email protected] "(" | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "a" |
48 | [email protected] "a" | 48 | [email protected] "," |
49 | [email protected] "," | 49 | [email protected] ")" |
50 | [email protected] ")" | 50 | [email protected] " " |
51 | [email protected] " " | 51 | [email protected] "=" |
52 | [email protected] "=" | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "(" |
55 | [email protected] "(" | 55 | [email protected] ")" |
56 | [email protected] ")" | 56 | [email protected] ";" |
57 | [email protected] ";" | 57 | [email protected] "\n " |
58 | [email protected] "\n " | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "let" |
60 | [email protected] "let" | 60 | [email protected] " " |
61 | [email protected] " " | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] "(" |
63 | [email protected] "(" | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] ".." |
65 | [email protected] ".." | 65 | [email protected] ")" |
66 | [email protected] ")" | 66 | [email protected] " " |
67 | [email protected] " " | 67 | [email protected] "=" |
68 | [email protected] "=" | 68 | [email protected] " " |
69 | [email protected] " " | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] "(" |
71 | [email protected] "(" | 71 | [email protected] ")" |
72 | [email protected] ")" | 72 | [email protected] ";" |
73 | [email protected] ";" | 73 | [email protected] "\n " |
74 | [email protected] "\n " | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] "let" |
76 | [email protected] "let" | 76 | [email protected] " " |
77 | [email protected] " " | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] "(" |
79 | [email protected] "(" | 79 | [email protected] ")" |
80 | [email protected] ")" | 80 | [email protected] " " |
81 | [email protected] " " | 81 | [email protected] "=" |
82 | [email protected] "=" | 82 | [email protected] " " |
83 | [email protected] " " | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] "(" |
85 | [email protected] "(" | 85 | [email protected] ")" |
86 | [email protected] ")" | 86 | [email protected] ";" |
87 | [email protected] ";" | 87 | [email protected] "\n" |
88 | [email protected] "\n" | 88 | [email protected] "}" |
89 | [email protected] "}" | ||
90 | [email protected] "\n" | 89 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast index 42a770a83..b67714c17 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast | |||
@@ -9,120 +9,119 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "a" |
20 | [email protected] "a" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "=" |
22 | [email protected] "=" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "(" |
25 | [email protected] "(" | 25 | [email protected] ")" |
26 | [email protected] ")" | 26 | [email protected] ";" |
27 | [email protected] ";" | 27 | [email protected] "\n " |
28 | [email protected] "\n " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "let" |
30 | [email protected] "let" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "mut" |
33 | [email protected] "mut" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "b" |
36 | [email protected] "b" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] "=" |
38 | [email protected] "=" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "(" |
41 | [email protected] "(" | 41 | [email protected] ")" |
42 | [email protected] ")" | 42 | [email protected] ";" |
43 | [email protected] ";" | 43 | [email protected] "\n " |
44 | [email protected] "\n " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "let" |
46 | [email protected] "let" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "ref" |
49 | [email protected] "ref" | 49 | [email protected] " " |
50 | [email protected] " " | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "c" |
52 | [email protected] "c" | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] "=" |
54 | [email protected] "=" | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] "(" |
57 | [email protected] "(" | 57 | [email protected] ")" |
58 | [email protected] ")" | 58 | [email protected] ";" |
59 | [email protected] ";" | 59 | [email protected] "\n " |
60 | [email protected] "\n " | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "let" |
62 | [email protected] "let" | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "ref" |
65 | [email protected] "ref" | 65 | [email protected] " " |
66 | [email protected] " " | 66 | [email protected] "mut" |
67 | [email protected] "mut" | 67 | [email protected] " " |
68 | [email protected] " " | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] "d" |
70 | [email protected] "d" | 70 | [email protected] " " |
71 | [email protected] " " | 71 | [email protected] "=" |
72 | [email protected] "=" | 72 | [email protected] " " |
73 | [email protected] " " | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] "(" |
75 | [email protected] "(" | 75 | [email protected] ")" |
76 | [email protected] ")" | 76 | [email protected] ";" |
77 | [email protected] ";" | 77 | [email protected] "\n " |
78 | [email protected] "\n " | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "let" |
80 | [email protected] "let" | 80 | [email protected] " " |
81 | [email protected] " " | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "e" |
84 | [email protected] "e" | 84 | [email protected] " " |
85 | [email protected] " " | 85 | [email protected] "@" |
86 | [email protected] "@" | 86 | [email protected] " " |
87 | [email protected] " " | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] "_" |
89 | [email protected] "_" | 89 | [email protected] " " |
90 | [email protected] " " | 90 | [email protected] "=" |
91 | [email protected] "=" | 91 | [email protected] " " |
92 | [email protected] " " | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] "(" |
94 | [email protected] "(" | 94 | [email protected] ")" |
95 | [email protected] ")" | 95 | [email protected] ";" |
96 | [email protected] ";" | 96 | [email protected] "\n " |
97 | [email protected] "\n " | 97 | [email protected] |
98 | [email protected] | 98 | [email protected] "let" |
99 | [email protected] "let" | 99 | [email protected] " " |
100 | [email protected] " " | 100 | [email protected] |
101 | [email protected] | 101 | [email protected] "ref" |
102 | [email protected] "ref" | 102 | [email protected] " " |
103 | [email protected] " " | 103 | [email protected] "mut" |
104 | [email protected] "mut" | 104 | [email protected] " " |
105 | [email protected] " " | 105 | [email protected] |
106 | [email protected] | 106 | [email protected] "f" |
107 | [email protected] "f" | 107 | [email protected] " " |
108 | [email protected] " " | 108 | [email protected] "@" |
109 | [email protected] "@" | 109 | [email protected] " " |
110 | [email protected] " " | 110 | [email protected] |
111 | [email protected] | 111 | [email protected] |
112 | [email protected] | 112 | [email protected] "g" |
113 | [email protected] "g" | 113 | [email protected] " " |
114 | [email protected] " " | 114 | [email protected] "@" |
115 | [email protected] "@" | 115 | [email protected] " " |
116 | [email protected] " " | 116 | [email protected] |
117 | [email protected] | 117 | [email protected] "_" |
118 | [email protected] "_" | 118 | [email protected] " " |
119 | [email protected] " " | 119 | [email protected] "=" |
120 | [email protected] "=" | 120 | [email protected] " " |
121 | [email protected] " " | 121 | [email protected] |
122 | [email protected] | 122 | [email protected] "(" |
123 | [email protected] "(" | 123 | [email protected] ")" |
124 | [email protected] ")" | 124 | [email protected] ";" |
125 | [email protected] ";" | 125 | [email protected] "\n" |
126 | [email protected] "\n" | 126 | [email protected] "}" |
127 | [email protected] "}" | ||
128 | [email protected] "\n" | 127 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast index 5414c90b8..5de480da9 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast | |||
@@ -8,50 +8,48 @@ [email protected] | |||
8 | [email protected] "(" | 8 | [email protected] "(" |
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] | 10 | [email protected] |
11 | [email protected] | 11 | [email protected] "{" |
12 | [email protected] "{" | 12 | [email protected] "\n " |
13 | [email protected] "\n " | 13 | [email protected] ";" |
14 | [email protected] ";" | 14 | [email protected] ";" |
15 | [email protected] ";" | 15 | [email protected] ";" |
16 | [email protected] ";" | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "some_expr" |
23 | [email protected] "some_expr" | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "(" |
25 | [email protected] "(" | 25 | [email protected] ")" |
26 | [email protected] ")" | 26 | [email protected] ";" |
27 | [email protected] ";" | 27 | [email protected] ";" |
28 | [email protected] ";" | 28 | [email protected] ";" |
29 | [email protected] ";" | 29 | [email protected] ";" |
30 | [email protected] ";" | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "{" |
33 | [email protected] | 33 | [email protected] ";" |
34 | [email protected] "{" | 34 | [email protected] ";" |
35 | [email protected] ";" | 35 | [email protected] ";" |
36 | [email protected] ";" | 36 | [email protected] "}" |
37 | [email protected] ";" | 37 | [email protected] ";" |
38 | [email protected] "}" | 38 | [email protected] ";" |
39 | [email protected] ";" | 39 | [email protected] ";" |
40 | [email protected] ";" | 40 | [email protected] ";" |
41 | [email protected] ";" | 41 | [email protected] |
42 | [email protected] ";" | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] "Ok" |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] "Ok" | 48 | [email protected] "(" |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] "(" | 50 | [email protected] "(" |
51 | [email protected] | 51 | [email protected] ")" |
52 | [email protected] "(" | 52 | [email protected] ")" |
53 | [email protected] ")" | 53 | [email protected] "\n" |
54 | [email protected] ")" | 54 | [email protected] "}" |
55 | [email protected] "\n" | ||
56 | [email protected] "}" | ||
57 | [email protected] "\n" | 55 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast index 8e080fb60..e152c6b6c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast | |||
@@ -9,40 +9,39 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "match" |
16 | [email protected] "match" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "(" |
19 | [email protected] "(" | 19 | [email protected] ")" |
20 | [email protected] ")" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "{" |
23 | [email protected] "{" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "_" |
27 | [email protected] "_" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "if" |
30 | [email protected] "if" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "foo" |
36 | [email protected] "foo" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] "=>" |
38 | [email protected] "=>" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "(" |
41 | [email protected] "(" | 41 | [email protected] ")" |
42 | [email protected] ")" | 42 | [email protected] "," |
43 | [email protected] "," | 43 | [email protected] "\n " |
44 | [email protected] "\n " | 44 | [email protected] "}" |
45 | [email protected] "}" | 45 | [email protected] "\n" |
46 | [email protected] "\n" | 46 | [email protected] "}" |
47 | [email protected] "}" | ||
48 | [email protected] "\n" | 47 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast index 728164f8e..b283ab804 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast | |||
@@ -9,73 +9,72 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "match" |
16 | [email protected] "match" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "(" |
19 | [email protected] "(" | 19 | [email protected] ")" |
20 | [email protected] ")" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "{" |
23 | [email protected] "{" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "#" |
26 | [email protected] "#" | 26 | [email protected] "!" |
27 | [email protected] "!" | 27 | [email protected] "[" |
28 | [email protected] "[" | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "doc" |
32 | [email protected] "doc" | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "(" |
34 | [email protected] "(" | 34 | [email protected] "\"Inner attribute\"" |
35 | [email protected] "\"Inner attribute\"" | 35 | [email protected] ")" |
36 | [email protected] ")" | 36 | [email protected] "]" |
37 | [email protected] "]" | 37 | [email protected] "\n " |
38 | [email protected] "\n " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "#" |
40 | [email protected] "#" | 40 | [email protected] "!" |
41 | [email protected] "!" | 41 | [email protected] "[" |
42 | [email protected] "[" | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "doc" |
46 | [email protected] "doc" | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "(" |
48 | [email protected] "(" | 48 | [email protected] "\"Can be\"" |
49 | [email protected] "\"Can be\"" | 49 | [email protected] ")" |
50 | [email protected] ")" | 50 | [email protected] "]" |
51 | [email protected] "]" | 51 | [email protected] "\n " |
52 | [email protected] "\n " | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "#" |
54 | [email protected] "#" | 54 | [email protected] "!" |
55 | [email protected] "!" | 55 | [email protected] "[" |
56 | [email protected] "[" | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "doc" |
60 | [email protected] "doc" | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "(" |
62 | [email protected] "(" | 62 | [email protected] "\"Stacked\"" |
63 | [email protected] "\"Stacked\"" | 63 | [email protected] ")" |
64 | [email protected] ")" | 64 | [email protected] "]" |
65 | [email protected] "]" | 65 | [email protected] "\n " |
66 | [email protected] "\n " | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] |
68 | [email protected] | 68 | [email protected] "_" |
69 | [email protected] "_" | 69 | [email protected] " " |
70 | [email protected] " " | 70 | [email protected] "=>" |
71 | [email protected] "=>" | 71 | [email protected] " " |
72 | [email protected] " " | 72 | [email protected] |
73 | [email protected] | 73 | [email protected] "(" |
74 | [email protected] "(" | 74 | [email protected] ")" |
75 | [email protected] ")" | 75 | [email protected] "," |
76 | [email protected] "," | 76 | [email protected] "\n " |
77 | [email protected] "\n " | 77 | [email protected] "}" |
78 | [email protected] "}" | 78 | [email protected] "\n" |
79 | [email protected] "\n" | 79 | [email protected] "}" |
80 | [email protected] "}" | ||
81 | [email protected] "\n" | 80 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast index 6123885e3..9d5470914 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast | |||
@@ -9,138 +9,137 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "match" |
16 | [email protected] "match" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "(" |
19 | [email protected] "(" | 19 | [email protected] ")" |
20 | [email protected] ")" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "{" |
23 | [email protected] "{" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "#" |
27 | [email protected] "#" | 27 | [email protected] "[" |
28 | [email protected] "[" | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "cfg" |
32 | [email protected] "cfg" | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "(" |
34 | [email protected] "(" | 34 | [email protected] "feature" |
35 | [email protected] "feature" | 35 | [email protected] " " |
36 | [email protected] " " | 36 | [email protected] "=" |
37 | [email protected] "=" | 37 | [email protected] " " |
38 | [email protected] " " | 38 | [email protected] "\"some\"" |
39 | [email protected] "\"some\"" | 39 | [email protected] ")" |
40 | [email protected] ")" | 40 | [email protected] "]" |
41 | [email protected] "]" | 41 | [email protected] "\n " |
42 | [email protected] "\n " | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "_" |
44 | [email protected] "_" | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] "=>" |
46 | [email protected] "=>" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "(" |
49 | [email protected] "(" | 49 | [email protected] ")" |
50 | [email protected] ")" | 50 | [email protected] "," |
51 | [email protected] "," | 51 | [email protected] "\n " |
52 | [email protected] "\n " | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "#" |
55 | [email protected] "#" | 55 | [email protected] "[" |
56 | [email protected] "[" | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "cfg" |
60 | [email protected] "cfg" | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "(" |
62 | [email protected] "(" | 62 | [email protected] "feature" |
63 | [email protected] "feature" | 63 | [email protected] " " |
64 | [email protected] " " | 64 | [email protected] "=" |
65 | [email protected] "=" | 65 | [email protected] " " |
66 | [email protected] " " | 66 | [email protected] "\"other\"" |
67 | [email protected] "\"other\"" | 67 | [email protected] ")" |
68 | [email protected] ")" | 68 | [email protected] "]" |
69 | [email protected] "]" | 69 | [email protected] "\n " |
70 | [email protected] "\n " | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "_" |
72 | [email protected] "_" | 72 | [email protected] " " |
73 | [email protected] " " | 73 | [email protected] "=>" |
74 | [email protected] "=>" | 74 | [email protected] " " |
75 | [email protected] " " | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "(" |
77 | [email protected] "(" | 77 | [email protected] ")" |
78 | [email protected] ")" | 78 | [email protected] "," |
79 | [email protected] "," | 79 | [email protected] "\n " |
80 | [email protected] "\n " | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] "#" |
83 | [email protected] "#" | 83 | [email protected] "[" |
84 | [email protected] "[" | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] "cfg" |
88 | [email protected] "cfg" | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] "(" |
90 | [email protected] "(" | 90 | [email protected] "feature" |
91 | [email protected] "feature" | 91 | [email protected] " " |
92 | [email protected] " " | 92 | [email protected] "=" |
93 | [email protected] "=" | 93 | [email protected] " " |
94 | [email protected] " " | 94 | [email protected] "\"many\"" |
95 | [email protected] "\"many\"" | 95 | [email protected] ")" |
96 | [email protected] ")" | 96 | [email protected] "]" |
97 | [email protected] "]" | 97 | [email protected] "\n " |
98 | [email protected] "\n " | 98 | [email protected] |
99 | [email protected] | 99 | [email protected] "#" |
100 | [email protected] "#" | 100 | [email protected] "[" |
101 | [email protected] "[" | 101 | [email protected] |
102 | [email protected] | 102 | [email protected] |
103 | [email protected] | 103 | [email protected] |
104 | [email protected] | 104 | [email protected] "cfg" |
105 | [email protected] "cfg" | 105 | [email protected] |
106 | [email protected] | 106 | [email protected] "(" |
107 | [email protected] "(" | 107 | [email protected] "feature" |
108 | [email protected] "feature" | 108 | [email protected] " " |
109 | [email protected] " " | 109 | [email protected] "=" |
110 | [email protected] "=" | 110 | [email protected] " " |
111 | [email protected] " " | 111 | [email protected] "\"attributes\"" |
112 | [email protected] "\"attributes\"" | 112 | [email protected] ")" |
113 | [email protected] ")" | 113 | [email protected] "]" |
114 | [email protected] "]" | 114 | [email protected] "\n " |
115 | [email protected] "\n " | 115 | [email protected] |
116 | [email protected] | 116 | [email protected] "#" |
117 | [email protected] "#" | 117 | [email protected] "[" |
118 | [email protected] "[" | 118 | [email protected] |
119 | [email protected] | 119 | [email protected] |
120 | [email protected] | 120 | [email protected] |
121 | [email protected] | 121 | [email protected] "cfg" |
122 | [email protected] "cfg" | 122 | [email protected] |
123 | [email protected] | 123 | [email protected] "(" |
124 | [email protected] "(" | 124 | [email protected] "feature" |
125 | [email protected] "feature" | 125 | [email protected] " " |
126 | [email protected] " " | 126 | [email protected] "=" |
127 | [email protected] "=" | 127 | [email protected] " " |
128 | [email protected] " " | 128 | [email protected] "\"before\"" |
129 | [email protected] "\"before\"" | 129 | [email protected] ")" |
130 | [email protected] ")" | 130 | [email protected] "]" |
131 | [email protected] "]" | 131 | [email protected] "\n " |
132 | [email protected] "\n " | 132 | [email protected] |
133 | [email protected] | 133 | [email protected] "_" |
134 | [email protected] "_" | 134 | [email protected] " " |
135 | [email protected] " " | 135 | [email protected] "=>" |
136 | [email protected] "=>" | 136 | [email protected] " " |
137 | [email protected] " " | 137 | [email protected] |
138 | [email protected] | 138 | [email protected] "(" |
139 | [email protected] "(" | 139 | [email protected] ")" |
140 | [email protected] ")" | 140 | [email protected] "," |
141 | [email protected] "," | 141 | [email protected] "\n " |
142 | [email protected] "\n " | 142 | [email protected] "}" |
143 | [email protected] "}" | 143 | [email protected] "\n" |
144 | [email protected] "\n" | 144 | [email protected] "}" |
145 | [email protected] "}" | ||
146 | [email protected] "\n" | 145 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast index 67b9c10d5..ada2fc54e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast | |||
@@ -59,8 +59,7 @@ [email protected] | |||
59 | [email protected] ")" | 59 | [email protected] ")" |
60 | [email protected] " " | 60 | [email protected] " " |
61 | [email protected] | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] "{" |
63 | [email protected] "{" | 63 | [email protected] "\n" |
64 | [email protected] "\n" | 64 | [email protected] "}" |
65 | [email protected] "}" | ||
66 | [email protected] "\n" | 65 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast index baf22a8d7..6178dfe59 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast | |||
@@ -11,7 +11,6 @@ [email protected] | |||
11 | [email protected] ")" | 11 | [email protected] ")" |
12 | [email protected] " " | 12 | [email protected] " " |
13 | [email protected] | 13 | [email protected] |
14 | [email protected] | 14 | [email protected] "{" |
15 | [email protected] "{" | 15 | [email protected] "}" |
16 | [email protected] "}" | ||
17 | [email protected] "\n" | 16 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast index 16f5b90b6..ced59b7c1 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast | |||
@@ -9,24 +9,23 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "crate" |
21 | [email protected] "crate" | 21 | [email protected] "::" |
22 | [email protected] "::" | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "foo" |
25 | [email protected] "foo" | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "(" |
27 | [email protected] "(" | 27 | [email protected] ")" |
28 | [email protected] ")" | 28 | [email protected] ";" |
29 | [email protected] ";" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] "}" |
31 | [email protected] "}" | ||
32 | [email protected] "\n" | 31 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast index 07ed14773..97611f7f3 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast | |||
@@ -9,40 +9,39 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "S" |
19 | [email protected] "S" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "{" |
22 | [email protected] "{" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "#" |
26 | [email protected] "#" | 26 | [email protected] "[" |
27 | [email protected] "[" | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "cfg" |
31 | [email protected] "cfg" | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "(" |
33 | [email protected] "(" | 33 | [email protected] "test" |
34 | [email protected] "test" | 34 | [email protected] ")" |
35 | [email protected] ")" | 35 | [email protected] "]" |
36 | [email protected] "]" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "field" |
39 | [email protected] "field" | 39 | [email protected] ":" |
40 | [email protected] ":" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "1" |
43 | [email protected] "1" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] "}" |
45 | [email protected] "}" | 45 | [email protected] "\n" |
46 | [email protected] "\n" | 46 | [email protected] "}" |
47 | [email protected] "}" | ||
48 | [email protected] "\n" | 47 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast b/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast index 8307d4c15..09221fc54 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast | |||
@@ -9,91 +9,89 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "#" |
17 | [email protected] "#" | 17 | [email protected] "[" |
18 | [email protected] "[" | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "A" |
22 | [email protected] "A" | 22 | [email protected] "]" |
23 | [email protected] "]" | 23 | [email protected] " " |
24 | [email protected] " " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "foo" |
30 | [email protected] "foo" | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "(" |
32 | [email protected] "(" | 32 | [email protected] ")" |
33 | [email protected] ")" | 33 | [email protected] ";" |
34 | [email protected] ";" | 34 | [email protected] "\n " |
35 | [email protected] "\n " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "#" |
38 | [email protected] "#" | 38 | [email protected] "[" |
39 | [email protected] "[" | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "B" |
43 | [email protected] "B" | 43 | [email protected] "]" |
44 | [email protected] "]" | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "bar" |
50 | [email protected] "bar" | 50 | [email protected] "!" |
51 | [email protected] "!" | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "{" |
53 | [email protected] "{" | 53 | [email protected] "}" |
54 | [email protected] "}" | 54 | [email protected] "\n " |
55 | [email protected] "\n " | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] "#" |
58 | [email protected] "#" | 58 | [email protected] "[" |
59 | [email protected] "[" | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] "C" |
63 | [email protected] "C" | 63 | [email protected] "]" |
64 | [email protected] "]" | 64 | [email protected] " " |
65 | [email protected] " " | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] "#" |
67 | [email protected] "#" | 67 | [email protected] "[" |
68 | [email protected] "[" | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "D" |
72 | [email protected] "D" | 72 | [email protected] "]" |
73 | [email protected] "]" | 73 | [email protected] " " |
74 | [email protected] " " | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] "{" |
76 | [email protected] | 76 | [email protected] "}" |
77 | [email protected] "{" | 77 | [email protected] "\n " |
78 | [email protected] "}" | 78 | [email protected] |
79 | [email protected] "\n " | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] "#" |
81 | [email protected] | 81 | [email protected] "[" |
82 | [email protected] "#" | 82 | [email protected] |
83 | [email protected] "[" | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] "D" |
86 | [email protected] | 86 | [email protected] "]" |
87 | [email protected] "D" | 87 | [email protected] " " |
88 | [email protected] "]" | 88 | [email protected] |
89 | [email protected] " " | 89 | [email protected] "return" |
90 | [email protected] | 90 | [email protected] " " |
91 | [email protected] "return" | 91 | [email protected] |
92 | [email protected] " " | 92 | [email protected] "(" |
93 | [email protected] | 93 | [email protected] ")" |
94 | [email protected] "(" | 94 | [email protected] ";" |
95 | [email protected] ")" | 95 | [email protected] "\n" |
96 | [email protected] ";" | 96 | [email protected] "}" |
97 | [email protected] "\n" | ||
98 | [email protected] "}" | ||
99 | [email protected] "\n" | 97 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast index 19c47ea25..93cc41533 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast | |||
@@ -9,51 +9,49 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "{" |
17 | [email protected] | 17 | [email protected] " " |
18 | [email protected] "{" | 18 | [email protected] |
19 | [email protected] " " | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "#" |
21 | [email protected] | 21 | [email protected] "[" |
22 | [email protected] "#" | 22 | [email protected] |
23 | [email protected] "[" | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "A" |
26 | [email protected] | 26 | [email protected] "]" |
27 | [email protected] "A" | 27 | [email protected] " " |
28 | [email protected] "]" | 28 | [email protected] |
29 | [email protected] " " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "bar" |
33 | [email protected] | 33 | [email protected] "!" |
34 | [email protected] "bar" | 34 | [email protected] |
35 | [email protected] "!" | 35 | [email protected] "(" |
36 | [email protected] | 36 | [email protected] ")" |
37 | [email protected] "(" | 37 | [email protected] "?" |
38 | [email protected] ")" | 38 | [email protected] " " |
39 | [email protected] "?" | 39 | [email protected] "}" |
40 | [email protected] " " | 40 | [email protected] "\n " |
41 | [email protected] "}" | 41 | [email protected] |
42 | [email protected] "\n " | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "#" |
44 | [email protected] | 44 | [email protected] "[" |
45 | [email protected] "#" | 45 | [email protected] |
46 | [email protected] "[" | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "B" |
49 | [email protected] | 49 | [email protected] "]" |
50 | [email protected] "B" | 50 | [email protected] " " |
51 | [email protected] "]" | 51 | [email protected] "&" |
52 | [email protected] " " | 52 | [email protected] |
53 | [email protected] "&" | 53 | [email protected] "(" |
54 | [email protected] | 54 | [email protected] ")" |
55 | [email protected] "(" | 55 | [email protected] "\n" |
56 | [email protected] ")" | 56 | [email protected] "}" |
57 | [email protected] "\n" | ||
58 | [email protected] "}" | ||
59 | [email protected] "\n" | 57 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast b/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast index 5630b20af..0901f2348 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast | |||
@@ -13,9 +13,8 @@ [email protected] | |||
13 | [email protected] ")" | 13 | [email protected] ")" |
14 | [email protected] " " | 14 | [email protected] " " |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "{" |
17 | [email protected] "{" | 17 | [email protected] "}" |
18 | [email protected] "}" | ||
19 | [email protected] "\n" | 18 | [email protected] "\n" |
20 | [email protected] | 19 | [email protected] |
21 | [email protected] "const" | 20 | [email protected] "const" |
@@ -31,7 +30,6 @@ [email protected] | |||
31 | [email protected] ")" | 30 | [email protected] ")" |
32 | [email protected] " " | 31 | [email protected] " " |
33 | [email protected] | 32 | [email protected] |
34 | [email protected] | 33 | [email protected] "{" |
35 | [email protected] "{" | 34 | [email protected] "}" |
36 | [email protected] "}" | ||
37 | [email protected] "\n" | 35 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast index 4946ee050..28291afc2 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast | |||
@@ -9,29 +9,28 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "m" |
23 | [email protected] "m" | 23 | [email protected] "!" |
24 | [email protected] "!" | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "(" |
26 | [email protected] "(" | 26 | [email protected] "x" |
27 | [email protected] "x" | 27 | [email protected] ")" |
28 | [email protected] ")" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] "=" |
30 | [email protected] "=" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "0" |
33 | [email protected] "0" | 33 | [email protected] ";" |
34 | [email protected] ";" | 34 | [email protected] "\n" |
35 | [email protected] "\n" | 35 | [email protected] "}" |
36 | [email protected] "}" | ||
37 | [email protected] "\n" | 36 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast index 18fdd9dc9..bb94a05c6 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast | |||
@@ -9,121 +9,118 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "a" |
20 | [email protected] "a" | 20 | [email protected] ";" |
21 | [email protected] ";" | 21 | [email protected] "\n " |
22 | [email protected] "\n " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "let" |
24 | [email protected] "let" | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "b" |
28 | [email protected] "b" | 28 | [email protected] ":" |
29 | [email protected] ":" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "i32" |
35 | [email protected] "i32" | 35 | [email protected] ";" |
36 | [email protected] ";" | 36 | [email protected] "\n " |
37 | [email protected] "\n " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "let" |
39 | [email protected] "let" | 39 | [email protected] " " |
40 | [email protected] " " | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "c" |
43 | [email protected] "c" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] "=" |
45 | [email protected] "=" | 45 | [email protected] " " |
46 | [email protected] " " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "92" |
48 | [email protected] "92" | 48 | [email protected] ";" |
49 | [email protected] ";" | 49 | [email protected] "\n " |
50 | [email protected] "\n " | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "let" |
52 | [email protected] "let" | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "d" |
56 | [email protected] "d" | 56 | [email protected] ":" |
57 | [email protected] ":" | 57 | [email protected] " " |
58 | [email protected] " " | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] "i32" |
63 | [email protected] "i32" | 63 | [email protected] " " |
64 | [email protected] " " | 64 | [email protected] "=" |
65 | [email protected] "=" | 65 | [email protected] " " |
66 | [email protected] " " | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] "92" |
68 | [email protected] "92" | 68 | [email protected] ";" |
69 | [email protected] ";" | 69 | [email protected] "\n " |
70 | [email protected] "\n " | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "let" |
72 | [email protected] "let" | 72 | [email protected] " " |
73 | [email protected] " " | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] "e" |
76 | [email protected] "e" | 76 | [email protected] ":" |
77 | [email protected] ":" | 77 | [email protected] " " |
78 | [email protected] " " | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "!" |
80 | [email protected] "!" | 80 | [email protected] ";" |
81 | [email protected] ";" | 81 | [email protected] "\n " |
82 | [email protected] "\n " | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "let" |
84 | [email protected] "let" | 84 | [email protected] " " |
85 | [email protected] " " | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] "_" |
87 | [email protected] "_" | 87 | [email protected] ":" |
88 | [email protected] ":" | 88 | [email protected] " " |
89 | [email protected] " " | 89 | [email protected] |
90 | [email protected] | 90 | [email protected] "!" |
91 | [email protected] "!" | 91 | [email protected] " " |
92 | [email protected] " " | 92 | [email protected] "=" |
93 | [email protected] "=" | 93 | [email protected] " " |
94 | [email protected] " " | 94 | [email protected] |
95 | [email protected] | 95 | [email protected] "{" |
96 | [email protected] | 96 | [email protected] "}" |
97 | [email protected] "{" | 97 | [email protected] ";" |
98 | [email protected] "}" | 98 | [email protected] "\n " |
99 | [email protected] ";" | 99 | [email protected] |
100 | [email protected] "\n " | 100 | [email protected] "let" |
101 | [email protected] | 101 | [email protected] " " |
102 | [email protected] "let" | 102 | [email protected] |
103 | [email protected] " " | 103 | [email protected] |
104 | [email protected] | 104 | [email protected] "f" |
105 | [email protected] | 105 | [email protected] " " |
106 | [email protected] "f" | 106 | [email protected] "=" |
107 | [email protected] " " | 107 | [email protected] " " |
108 | [email protected] "=" | 108 | [email protected] |
109 | [email protected] " " | 109 | [email protected] |
110 | [email protected] | 110 | [email protected] "#" |
111 | [email protected] | 111 | [email protected] "[" |
112 | [email protected] "#" | 112 | [email protected] |
113 | [email protected] "[" | 113 | [email protected] |
114 | [email protected] | 114 | [email protected] |
115 | [email protected] | 115 | [email protected] "attr" |
116 | [email protected] | 116 | [email protected] "]" |
117 | [email protected] "attr" | 117 | [email protected] |
118 | [email protected] "]" | 118 | [email protected] "|" |
119 | [email protected] | 119 | [email protected] "|" |
120 | [email protected] "|" | 120 | [email protected] |
121 | [email protected] "|" | 121 | [email protected] "{" |
122 | [email protected] | 122 | [email protected] "}" |
123 | [email protected] | 123 | [email protected] ";" |
124 | [email protected] "{" | 124 | [email protected] "\n" |
125 | [email protected] "}" | 125 | [email protected] "}" |
126 | [email protected] ";" | ||
127 | [email protected] "\n" | ||
128 | [email protected] "}" | ||
129 | [email protected] "\n" | 126 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast index 01fffd7b0..8f2f144c7 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast | |||
@@ -9,25 +9,23 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "_" |
19 | [email protected] "_" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "try" |
24 | [email protected] "try" | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "{" |
27 | [email protected] | 27 | [email protected] "}" |
28 | [email protected] "{" | 28 | [email protected] ";" |
29 | [email protected] "}" | 29 | [email protected] "\n" |
30 | [email protected] ";" | 30 | [email protected] "}" |
31 | [email protected] "\n" | ||
32 | [email protected] "}" | ||
33 | [email protected] "\n" | 31 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast index 498b3121e..87ac42748 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast | |||
@@ -9,82 +9,81 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "x" |
20 | [email protected] "x" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "=" |
22 | [email protected] "=" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "box" |
25 | [email protected] "box" | 25 | [email protected] " " |
26 | [email protected] " " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "1i32" |
28 | [email protected] "1i32" | 28 | [email protected] ";" |
29 | [email protected] ";" | 29 | [email protected] "\n " |
30 | [email protected] "\n " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "let" |
32 | [email protected] "let" | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "y" |
36 | [email protected] "y" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] "=" |
38 | [email protected] "=" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "(" |
41 | [email protected] "(" | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "box" |
43 | [email protected] "box" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "1i32" |
46 | [email protected] "1i32" | 46 | [email protected] "," |
47 | [email protected] "," | 47 | [email protected] " " |
48 | [email protected] " " | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "box" |
50 | [email protected] "box" | 50 | [email protected] " " |
51 | [email protected] " " | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "2i32" |
53 | [email protected] "2i32" | 53 | [email protected] ")" |
54 | [email protected] ")" | 54 | [email protected] ";" |
55 | [email protected] ";" | 55 | [email protected] "\n " |
56 | [email protected] "\n " | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] "let" |
58 | [email protected] "let" | 58 | [email protected] " " |
59 | [email protected] " " | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "z" |
62 | [email protected] "z" | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] "=" |
64 | [email protected] "=" | 64 | [email protected] " " |
65 | [email protected] " " | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] |
68 | [email protected] | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] "Foo" |
71 | [email protected] "Foo" | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] "(" |
73 | [email protected] "(" | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] "box" |
75 | [email protected] "box" | 75 | [email protected] " " |
76 | [email protected] " " | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] "1i32" |
78 | [email protected] "1i32" | 78 | [email protected] "," |
79 | [email protected] "," | 79 | [email protected] " " |
80 | [email protected] " " | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] "box" |
82 | [email protected] "box" | 82 | [email protected] " " |
83 | [email protected] " " | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] "2i32" |
85 | [email protected] "2i32" | 85 | [email protected] ")" |
86 | [email protected] ")" | 86 | [email protected] ";" |
87 | [email protected] ";" | 87 | [email protected] "\n" |
88 | [email protected] "\n" | 88 | [email protected] "}" |
89 | [email protected] "}" | ||
90 | [email protected] "\n" | 89 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast index db58a928e..00ce5ecf0 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast | |||
@@ -48,9 +48,8 @@ [email protected] | |||
48 | [email protected] ")" | 48 | [email protected] ")" |
49 | [email protected] " " | 49 | [email protected] " " |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "{" |
52 | [email protected] "{" | 52 | [email protected] "}" |
53 | [email protected] "}" | ||
54 | [email protected] "\n" | 53 | [email protected] "\n" |
55 | [email protected] "}" | 54 | [email protected] "}" |
56 | [email protected] "\n" | 55 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast index 4ca554ef8..b330a0932 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast | |||
@@ -9,56 +9,54 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "enum" |
16 | [email protected] "enum" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "LocalEnum" |
19 | [email protected] "LocalEnum" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "{" |
22 | [email protected] "{" | 22 | [email protected] "\n " |
23 | [email protected] "\n " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "One" |
26 | [email protected] "One" | 26 | [email protected] "," |
27 | [email protected] "," | 27 | [email protected] "\n " |
28 | [email protected] "\n " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "Two" |
31 | [email protected] "Two" | 31 | [email protected] "," |
32 | [email protected] "," | 32 | [email protected] "\n " |
33 | [email protected] "\n " | 33 | [email protected] "}" |
34 | [email protected] "}" | 34 | [email protected] ";" |
35 | [email protected] ";" | 35 | [email protected] "\n " |
36 | [email protected] "\n " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "fn" |
38 | [email protected] "fn" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "f" |
41 | [email protected] "f" | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "(" |
43 | [email protected] "(" | 43 | [email protected] ")" |
44 | [email protected] ")" | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] "{" |
47 | [email protected] | 47 | [email protected] "}" |
48 | [email protected] "{" | 48 | [email protected] ";" |
49 | [email protected] "}" | 49 | [email protected] "\n " |
50 | [email protected] ";" | 50 | [email protected] |
51 | [email protected] "\n " | 51 | [email protected] "struct" |
52 | [email protected] | 52 | [email protected] " " |
53 | [email protected] "struct" | 53 | [email protected] |
54 | [email protected] " " | 54 | [email protected] "S" |
55 | [email protected] | 55 | [email protected] " " |
56 | [email protected] "S" | 56 | [email protected] |
57 | [email protected] " " | 57 | [email protected] "{" |
58 | [email protected] | 58 | [email protected] "}" |
59 | [email protected] "{" | 59 | [email protected] ";" |
60 | [email protected] "}" | 60 | [email protected] "\n" |
61 | [email protected] ";" | 61 | [email protected] "}" |
62 | [email protected] "\n" | ||
63 | [email protected] "}" | ||
64 | [email protected] "\n" | 62 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast index 7fa3b9f32..8e8d9e992 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast | |||
@@ -9,62 +9,61 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "x" |
21 | [email protected] "x" | 21 | [email protected] "." |
22 | [email protected] "." | 22 | [email protected] "await" |
23 | [email protected] "await" | 23 | [email protected] ";" |
24 | [email protected] ";" | 24 | [email protected] "\n " |
25 | [email protected] "\n " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "x" |
33 | [email protected] "x" | 33 | [email protected] "." |
34 | [email protected] "." | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "0" |
36 | [email protected] "0" | 36 | [email protected] "." |
37 | [email protected] "." | 37 | [email protected] "await" |
38 | [email protected] "await" | 38 | [email protected] ";" |
39 | [email protected] ";" | 39 | [email protected] "\n " |
40 | [email protected] "\n " | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] "x" |
51 | [email protected] "x" | 51 | [email protected] "." |
52 | [email protected] "." | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "0" |
54 | [email protected] "0" | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "(" |
56 | [email protected] "(" | 56 | [email protected] ")" |
57 | [email protected] ")" | 57 | [email protected] "." |
58 | [email protected] "." | 58 | [email protected] "await" |
59 | [email protected] "await" | 59 | [email protected] "?" |
60 | [email protected] "?" | 60 | [email protected] "." |
61 | [email protected] "." | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] "hello" |
63 | [email protected] "hello" | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "(" |
65 | [email protected] "(" | 65 | [email protected] ")" |
66 | [email protected] ")" | 66 | [email protected] ";" |
67 | [email protected] ";" | 67 | [email protected] "\n" |
68 | [email protected] "\n" | 68 | [email protected] "}" |
69 | [email protected] "}" | ||
70 | [email protected] "\n" | 69 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast index a32484f2c..c457851c9 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast | |||
@@ -50,7 +50,6 @@ [email protected] | |||
50 | [email protected] ")" | 50 | [email protected] ")" |
51 | [email protected] " " | 51 | [email protected] " " |
52 | [email protected] | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "{" |
54 | [email protected] "{" | 54 | [email protected] "}" |
55 | [email protected] "}" | ||
56 | [email protected] "\n" | 55 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast index 9017236cc..ea325831e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast | |||
@@ -9,58 +9,56 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "mut" |
19 | [email protected] "mut" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "p" |
22 | [email protected] "p" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] "=" |
24 | [email protected] "=" | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "F" |
30 | [email protected] "F" | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "{" |
32 | [email protected] "{" | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "x" |
35 | [email protected] "x" | 35 | [email protected] ":" |
36 | [email protected] ":" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "5" |
39 | [email protected] "5" | 39 | [email protected] "}" |
40 | [email protected] "}" | 40 | [email protected] ";" |
41 | [email protected] ";" | 41 | [email protected] "\n " |
42 | [email protected] "\n " | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] "{" |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] "{" | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "p" |
52 | [email protected] | 52 | [email protected] "}" |
53 | [email protected] "p" | 53 | [email protected] "." |
54 | [email protected] "}" | 54 | [email protected] |
55 | [email protected] "." | 55 | [email protected] "x" |
56 | [email protected] | 56 | [email protected] " " |
57 | [email protected] "x" | 57 | [email protected] "=" |
58 | [email protected] " " | 58 | [email protected] " " |
59 | [email protected] "=" | 59 | [email protected] |
60 | [email protected] " " | 60 | [email protected] "10" |
61 | [email protected] | 61 | [email protected] ";" |
62 | [email protected] "10" | 62 | [email protected] "\n" |
63 | [email protected] ";" | 63 | [email protected] "}" |
64 | [email protected] "\n" | ||
65 | [email protected] "}" | ||
66 | [email protected] "\n" | 64 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast index 2cb5b52f4..9135de9df 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast | |||
@@ -20,7 +20,6 @@ [email protected] | |||
20 | [email protected] ")" | 20 | [email protected] ")" |
21 | [email protected] " " | 21 | [email protected] " " |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] "{" | 24 | [email protected] "}" |
25 | [email protected] "}" | ||
26 | [email protected] "\n" | 25 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast index ac3f4de26..14610a0a2 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast | |||
@@ -29,7 +29,6 @@ [email protected] | |||
29 | [email protected] ")" | 29 | [email protected] ")" |
30 | [email protected] " " | 30 | [email protected] " " |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "{" |
33 | [email protected] "{" | 33 | [email protected] "}" |
34 | [email protected] "}" | ||
35 | [email protected] "\n" | 34 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast index 8d4919cbd..e6be8b7e4 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast | |||
@@ -9,34 +9,32 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "for" |
16 | [email protected] "for" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "x" |
20 | [email protected] "x" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "in" |
22 | [email protected] "in" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "0" |
26 | [email protected] "0" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] ".." |
28 | [email protected] ".." | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "{" |
31 | [email protected] | 31 | [email protected] "\n " |
32 | [email protected] "{" | 32 | [email protected] |
33 | [email protected] "\n " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "break" |
35 | [email protected] | 35 | [email protected] ";" |
36 | [email protected] "break" | 36 | [email protected] "\n " |
37 | [email protected] ";" | 37 | [email protected] "}" |
38 | [email protected] "\n " | 38 | [email protected] "\n" |
39 | [email protected] "}" | 39 | [email protected] "}" |
40 | [email protected] "\n" | ||
41 | [email protected] "}" | ||
42 | [email protected] "\n" | 40 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast index 2c933fa76..57fba5fd5 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast | |||
@@ -9,103 +9,102 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "box" |
19 | [email protected] "box" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "i" |
23 | [email protected] "i" | 23 | [email protected] " " |
24 | [email protected] " " | 24 | [email protected] "=" |
25 | [email protected] "=" | 25 | [email protected] " " |
26 | [email protected] " " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "(" |
28 | [email protected] "(" | 28 | [email protected] ")" |
29 | [email protected] ")" | 29 | [email protected] ";" |
30 | [email protected] ";" | 30 | [email protected] "\n " |
31 | [email protected] "\n " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "let" |
33 | [email protected] "let" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "box" |
36 | [email protected] "box" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "Outer" |
42 | [email protected] "Outer" | 42 | [email protected] " " |
43 | [email protected] " " | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "{" |
45 | [email protected] "{" | 45 | [email protected] " " |
46 | [email protected] " " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "box" |
49 | [email protected] "box" | 49 | [email protected] " " |
50 | [email protected] " " | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "i" |
53 | [email protected] "i" | 53 | [email protected] "," |
54 | [email protected] "," | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] "j" |
58 | [email protected] "j" | 58 | [email protected] ":" |
59 | [email protected] ":" | 59 | [email protected] " " |
60 | [email protected] " " | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "box" |
62 | [email protected] "box" | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] "Inner" |
68 | [email protected] "Inner" | 68 | [email protected] "(" |
69 | [email protected] "(" | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] "box" |
71 | [email protected] "box" | 71 | [email protected] " " |
72 | [email protected] " " | 72 | [email protected] |
73 | [email protected] | 73 | [email protected] "&" |
74 | [email protected] "&" | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "x" |
77 | [email protected] "x" | 77 | [email protected] ")" |
78 | [email protected] ")" | 78 | [email protected] " " |
79 | [email protected] " " | 79 | [email protected] "}" |
80 | [email protected] "}" | 80 | [email protected] " " |
81 | [email protected] " " | 81 | [email protected] "=" |
82 | [email protected] "=" | 82 | [email protected] " " |
83 | [email protected] " " | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] "(" |
85 | [email protected] "(" | 85 | [email protected] ")" |
86 | [email protected] ")" | 86 | [email protected] ";" |
87 | [email protected] ";" | 87 | [email protected] "\n " |
88 | [email protected] "\n " | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] "let" |
90 | [email protected] "let" | 90 | [email protected] " " |
91 | [email protected] " " | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] "box" |
93 | [email protected] "box" | 93 | [email protected] " " |
94 | [email protected] " " | 94 | [email protected] |
95 | [email protected] | 95 | [email protected] "ref" |
96 | [email protected] "ref" | 96 | [email protected] " " |
97 | [email protected] " " | 97 | [email protected] "mut" |
98 | [email protected] "mut" | 98 | [email protected] " " |
99 | [email protected] " " | 99 | [email protected] |
100 | [email protected] | 100 | [email protected] "i" |
101 | [email protected] "i" | 101 | [email protected] " " |
102 | [email protected] " " | 102 | [email protected] "=" |
103 | [email protected] "=" | 103 | [email protected] " " |
104 | [email protected] " " | 104 | [email protected] |
105 | [email protected] | 105 | [email protected] "(" |
106 | [email protected] "(" | 106 | [email protected] ")" |
107 | [email protected] ")" | 107 | [email protected] ";" |
108 | [email protected] ";" | 108 | [email protected] "\n" |
109 | [email protected] "\n" | 109 | [email protected] "}" |
110 | [email protected] "}" | ||
111 | [email protected] "\n" | 110 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast index e0b50d8be..8d8b9597b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast | |||
@@ -9,448 +9,447 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] ".." |
19 | [email protected] ".." | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "(" |
24 | [email protected] "(" | 24 | [email protected] ")" |
25 | [email protected] ")" | 25 | [email protected] ";" |
26 | [email protected] ";" | 26 | [email protected] "\n " |
27 | [email protected] "\n " | 27 | [email protected] "//" |
28 | [email protected] "//" | 28 | [email protected] "\n " |
29 | [email protected] "\n " | 29 | [email protected] "// Tuples" |
30 | [email protected] "// Tuples" | 30 | [email protected] "\n " |
31 | [email protected] "\n " | 31 | [email protected] "//" |
32 | [email protected] "//" | 32 | [email protected] "\n " |
33 | [email protected] "\n " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "let" |
35 | [email protected] "let" | 35 | [email protected] " " |
36 | [email protected] " " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "(" |
38 | [email protected] "(" | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "a" |
41 | [email protected] "a" | 41 | [email protected] "," |
42 | [email protected] "," | 42 | [email protected] " " |
43 | [email protected] " " | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] ".." |
45 | [email protected] ".." | 45 | [email protected] ")" |
46 | [email protected] ")" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] "=" |
48 | [email protected] "=" | 48 | [email protected] " " |
49 | [email protected] " " | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] "(" |
51 | [email protected] "(" | 51 | [email protected] ")" |
52 | [email protected] ")" | 52 | [email protected] ";" |
53 | [email protected] ";" | 53 | [email protected] "\n " |
54 | [email protected] "\n " | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "let" |
56 | [email protected] "let" | 56 | [email protected] " " |
57 | [email protected] " " | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "(" |
59 | [email protected] "(" | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "a" |
62 | [email protected] "a" | 62 | [email protected] "," |
63 | [email protected] "," | 63 | [email protected] " " |
64 | [email protected] " " | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] ".." |
66 | [email protected] ".." | 66 | [email protected] "," |
67 | [email protected] "," | 67 | [email protected] ")" |
68 | [email protected] ")" | 68 | [email protected] " " |
69 | [email protected] " " | 69 | [email protected] "=" |
70 | [email protected] "=" | 70 | [email protected] " " |
71 | [email protected] " " | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] "(" |
73 | [email protected] "(" | 73 | [email protected] ")" |
74 | [email protected] ")" | 74 | [email protected] ";" |
75 | [email protected] ";" | 75 | [email protected] "\n " |
76 | [email protected] "\n " | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] "let" |
78 | [email protected] "let" | 78 | [email protected] " " |
79 | [email protected] " " | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "Tuple" |
84 | [email protected] "Tuple" | 84 | [email protected] "(" |
85 | [email protected] "(" | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] "a" |
88 | [email protected] "a" | 88 | [email protected] "," |
89 | [email protected] "," | 89 | [email protected] " " |
90 | [email protected] " " | 90 | [email protected] |
91 | [email protected] | 91 | [email protected] ".." |
92 | [email protected] ".." | 92 | [email protected] ")" |
93 | [email protected] ")" | 93 | [email protected] " " |
94 | [email protected] " " | 94 | [email protected] "=" |
95 | [email protected] "=" | 95 | [email protected] " " |
96 | [email protected] " " | 96 | [email protected] |
97 | [email protected] | 97 | [email protected] "(" |
98 | [email protected] "(" | 98 | [email protected] ")" |
99 | [email protected] ")" | 99 | [email protected] ";" |
100 | [email protected] ";" | 100 | [email protected] "\n " |
101 | [email protected] "\n " | 101 | [email protected] |
102 | [email protected] | 102 | [email protected] "let" |
103 | [email protected] "let" | 103 | [email protected] " " |
104 | [email protected] " " | 104 | [email protected] |
105 | [email protected] | 105 | [email protected] |
106 | [email protected] | 106 | [email protected] |
107 | [email protected] | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] "Tuple" |
109 | [email protected] "Tuple" | 109 | [email protected] "(" |
110 | [email protected] "(" | 110 | [email protected] |
111 | [email protected] | 111 | [email protected] |
112 | [email protected] | 112 | [email protected] "a" |
113 | [email protected] "a" | 113 | [email protected] "," |
114 | [email protected] "," | 114 | [email protected] " " |
115 | [email protected] " " | 115 | [email protected] |
116 | [email protected] | 116 | [email protected] ".." |
117 | [email protected] ".." | 117 | [email protected] "," |
118 | [email protected] "," | 118 | [email protected] ")" |
119 | [email protected] ")" | 119 | [email protected] " " |
120 | [email protected] " " | 120 | [email protected] "=" |
121 | [email protected] "=" | 121 | [email protected] " " |
122 | [email protected] " " | 122 | [email protected] |
123 | [email protected] | 123 | [email protected] "(" |
124 | [email protected] "(" | 124 | [email protected] ")" |
125 | [email protected] ")" | 125 | [email protected] ";" |
126 | [email protected] ";" | 126 | [email protected] "\n " |
127 | [email protected] "\n " | 127 | [email protected] |
128 | [email protected] | 128 | [email protected] "let" |
129 | [email protected] "let" | 129 | [email protected] " " |
130 | [email protected] " " | 130 | [email protected] |
131 | [email protected] | 131 | [email protected] "(" |
132 | [email protected] "(" | 132 | [email protected] |
133 | [email protected] | 133 | [email protected] ".." |
134 | [email protected] ".." | 134 | [email protected] "," |
135 | [email protected] "," | 135 | [email protected] " " |
136 | [email protected] " " | 136 | [email protected] |
137 | [email protected] | 137 | [email protected] ".." |
138 | [email protected] ".." | 138 | [email protected] ")" |
139 | [email protected] ")" | 139 | [email protected] " " |
140 | [email protected] " " | 140 | [email protected] "=" |
141 | [email protected] "=" | 141 | [email protected] " " |
142 | [email protected] " " | 142 | [email protected] |
143 | [email protected] | 143 | [email protected] "(" |
144 | [email protected] "(" | 144 | [email protected] ")" |
145 | [email protected] ")" | 145 | [email protected] ";" |
146 | [email protected] ";" | 146 | [email protected] "\n " |
147 | [email protected] "\n " | 147 | [email protected] |
148 | [email protected] | 148 | [email protected] "let" |
149 | [email protected] "let" | 149 | [email protected] " " |
150 | [email protected] " " | 150 | [email protected] |
151 | [email protected] | 151 | [email protected] |
152 | [email protected] | 152 | [email protected] |
153 | [email protected] | 153 | [email protected] |
154 | [email protected] | 154 | [email protected] "Tuple" |
155 | [email protected] "Tuple" | 155 | [email protected] "(" |
156 | [email protected] "(" | 156 | [email protected] |
157 | [email protected] | 157 | [email protected] ".." |
158 | [email protected] ".." | 158 | [email protected] "," |
159 | [email protected] "," | 159 | [email protected] " " |
160 | [email protected] " " | 160 | [email protected] |
161 | [email protected] | 161 | [email protected] ".." |
162 | [email protected] ".." | 162 | [email protected] ")" |
163 | [email protected] ")" | 163 | [email protected] " " |
164 | [email protected] " " | 164 | [email protected] "=" |
165 | [email protected] "=" | 165 | [email protected] " " |
166 | [email protected] " " | 166 | [email protected] |
167 | [email protected] | 167 | [email protected] "(" |
168 | [email protected] "(" | 168 | [email protected] ")" |
169 | [email protected] ")" | 169 | [email protected] ";" |
170 | [email protected] ";" | 170 | [email protected] "\n " |
171 | [email protected] "\n " | 171 | [email protected] |
172 | [email protected] | 172 | [email protected] "let" |
173 | [email protected] "let" | 173 | [email protected] " " |
174 | [email protected] " " | 174 | [email protected] |
175 | [email protected] | 175 | [email protected] "(" |
176 | [email protected] "(" | 176 | [email protected] |
177 | [email protected] | 177 | [email protected] ".." |
178 | [email protected] ".." | 178 | [email protected] "," |
179 | [email protected] "," | 179 | [email protected] " " |
180 | [email protected] " " | 180 | [email protected] |
181 | [email protected] | 181 | [email protected] |
182 | [email protected] | 182 | [email protected] "a" |
183 | [email protected] "a" | 183 | [email protected] "," |
184 | [email protected] "," | 184 | [email protected] " " |
185 | [email protected] " " | 185 | [email protected] |
186 | [email protected] | 186 | [email protected] ".." |
187 | [email protected] ".." | 187 | [email protected] ")" |
188 | [email protected] ")" | 188 | [email protected] " " |
189 | [email protected] " " | 189 | [email protected] "=" |
190 | [email protected] "=" | 190 | [email protected] " " |
191 | [email protected] " " | 191 | [email protected] |
192 | [email protected] | 192 | [email protected] "(" |
193 | [email protected] "(" | 193 | [email protected] ")" |
194 | [email protected] ")" | 194 | [email protected] ";" |
195 | [email protected] ";" | 195 | [email protected] "\n " |
196 | [email protected] "\n " | 196 | [email protected] |
197 | [email protected] | 197 | [email protected] "let" |
198 | [email protected] "let" | 198 | [email protected] " " |
199 | [email protected] " " | 199 | [email protected] |
200 | [email protected] | 200 | [email protected] |
201 | [email protected] | 201 | [email protected] |
202 | [email protected] | 202 | [email protected] |
203 | [email protected] | 203 | [email protected] "Tuple" |
204 | [email protected] "Tuple" | 204 | [email protected] "(" |
205 | [email protected] "(" | 205 | [email protected] |
206 | [email protected] | 206 | [email protected] ".." |
207 | [email protected] ".." | 207 | [email protected] "," |
208 | [email protected] "," | 208 | [email protected] " " |
209 | [email protected] " " | 209 | [email protected] |
210 | [email protected] | 210 | [email protected] |
211 | [email protected] | 211 | [email protected] "a" |
212 | [email protected] "a" | 212 | [email protected] "," |
213 | [email protected] "," | 213 | [email protected] " " |
214 | [email protected] " " | 214 | [email protected] |
215 | [email protected] | 215 | [email protected] ".." |
216 | [email protected] ".." | 216 | [email protected] ")" |
217 | [email protected] ")" | 217 | [email protected] " " |
218 | [email protected] " " | 218 | [email protected] "=" |
219 | [email protected] "=" | 219 | [email protected] " " |
220 | [email protected] " " | 220 | [email protected] |
221 | [email protected] | 221 | [email protected] "(" |
222 | [email protected] "(" | 222 | [email protected] ")" |
223 | [email protected] ")" | 223 | [email protected] ";" |
224 | [email protected] ";" | 224 | [email protected] "\n " |
225 | [email protected] "\n " | 225 | [email protected] "//" |
226 | [email protected] "//" | 226 | [email protected] "\n " |
227 | [email protected] "\n " | 227 | [email protected] "// Slices" |
228 | [email protected] "// Slices" | 228 | [email protected] "\n " |
229 | [email protected] "\n " | 229 | [email protected] "//" |
230 | [email protected] "//" | 230 | [email protected] "\n " |
231 | [email protected] "\n " | 231 | [email protected] |
232 | [email protected] | 232 | [email protected] "let" |
233 | [email protected] "let" | 233 | [email protected] " " |
234 | [email protected] " " | 234 | [email protected] |
235 | [email protected] | 235 | [email protected] "[" |
236 | [email protected] "[" | 236 | [email protected] |
237 | [email protected] | 237 | [email protected] ".." |
238 | [email protected] ".." | 238 | [email protected] "]" |
239 | [email protected] "]" | 239 | [email protected] " " |
240 | [email protected] " " | 240 | [email protected] "=" |
241 | [email protected] "=" | 241 | [email protected] " " |
242 | [email protected] " " | 242 | [email protected] |
243 | [email protected] | 243 | [email protected] "(" |
244 | [email protected] "(" | 244 | [email protected] ")" |
245 | [email protected] ")" | 245 | [email protected] ";" |
246 | [email protected] ";" | 246 | [email protected] "\n " |
247 | [email protected] "\n " | 247 | [email protected] |
248 | [email protected] | 248 | [email protected] "let" |
249 | [email protected] "let" | 249 | [email protected] " " |
250 | [email protected] " " | 250 | [email protected] |
251 | [email protected] | 251 | [email protected] "[" |
252 | [email protected] "[" | 252 | [email protected] |
253 | [email protected] | 253 | [email protected] |
254 | [email protected] | 254 | [email protected] "head" |
255 | [email protected] "head" | 255 | [email protected] "," |
256 | [email protected] "," | 256 | [email protected] " " |
257 | [email protected] " " | 257 | [email protected] |
258 | [email protected] | 258 | [email protected] ".." |
259 | [email protected] ".." | 259 | [email protected] "]" |
260 | [email protected] "]" | 260 | [email protected] " " |
261 | [email protected] " " | 261 | [email protected] "=" |
262 | [email protected] "=" | 262 | [email protected] " " |
263 | [email protected] " " | 263 | [email protected] |
264 | [email protected] | 264 | [email protected] "(" |
265 | [email protected] "(" | 265 | [email protected] ")" |
266 | [email protected] ")" | 266 | [email protected] ";" |
267 | [email protected] ";" | 267 | [email protected] "\n " |
268 | [email protected] "\n " | 268 | [email protected] |
269 | [email protected] | 269 | [email protected] "let" |
270 | [email protected] "let" | 270 | [email protected] " " |
271 | [email protected] " " | 271 | [email protected] |
272 | [email protected] | 272 | [email protected] "[" |
273 | [email protected] "[" | 273 | [email protected] |
274 | [email protected] | 274 | [email protected] |
275 | [email protected] | 275 | [email protected] "head" |
276 | [email protected] "head" | 276 | [email protected] "," |
277 | [email protected] "," | 277 | [email protected] " " |
278 | [email protected] " " | 278 | [email protected] |
279 | [email protected] | 279 | [email protected] |
280 | [email protected] | 280 | [email protected] "tail" |
281 | [email protected] "tail" | 281 | [email protected] " " |
282 | [email protected] " " | 282 | [email protected] "@" |
283 | [email protected] "@" | 283 | [email protected] " " |
284 | [email protected] " " | 284 | [email protected] |
285 | [email protected] | 285 | [email protected] ".." |
286 | [email protected] ".." | 286 | [email protected] "]" |
287 | [email protected] "]" | 287 | [email protected] " " |
288 | [email protected] " " | 288 | [email protected] "=" |
289 | [email protected] "=" | 289 | [email protected] " " |
290 | [email protected] " " | 290 | [email protected] |
291 | [email protected] | 291 | [email protected] "(" |
292 | [email protected] "(" | 292 | [email protected] ")" |
293 | [email protected] ")" | 293 | [email protected] ";" |
294 | [email protected] ";" | 294 | [email protected] "\n " |
295 | [email protected] "\n " | 295 | [email protected] |
296 | [email protected] | 296 | [email protected] "let" |
297 | [email protected] "let" | 297 | [email protected] " " |
298 | [email protected] " " | 298 | [email protected] |
299 | [email protected] | 299 | [email protected] "[" |
300 | [email protected] "[" | 300 | [email protected] |
301 | [email protected] | 301 | [email protected] |
302 | [email protected] | 302 | [email protected] "head" |
303 | [email protected] "head" | 303 | [email protected] "," |
304 | [email protected] "," | 304 | [email protected] " " |
305 | [email protected] " " | 305 | [email protected] |
306 | [email protected] | 306 | [email protected] ".." |
307 | [email protected] ".." | 307 | [email protected] "," |
308 | [email protected] "," | 308 | [email protected] " " |
309 | [email protected] " " | 309 | [email protected] |
310 | [email protected] | 310 | [email protected] |
311 | [email protected] | 311 | [email protected] "cons" |
312 | [email protected] "cons" | 312 | [email protected] "]" |
313 | [email protected] "]" | 313 | [email protected] " " |
314 | [email protected] " " | 314 | [email protected] "=" |
315 | [email protected] "=" | 315 | [email protected] " " |
316 | [email protected] " " | 316 | [email protected] |
317 | [email protected] | 317 | [email protected] "(" |
318 | [email protected] "(" | 318 | [email protected] ")" |
319 | [email protected] ")" | 319 | [email protected] ";" |
320 | [email protected] ";" | 320 | [email protected] "\n " |
321 | [email protected] "\n " | 321 | [email protected] |
322 | [email protected] | 322 | [email protected] "let" |
323 | [email protected] "let" | 323 | [email protected] " " |
324 | [email protected] " " | 324 | [email protected] |
325 | [email protected] | 325 | [email protected] "[" |
326 | [email protected] "[" | 326 | [email protected] |
327 | [email protected] | 327 | [email protected] |
328 | [email protected] | 328 | [email protected] "head" |
329 | [email protected] "head" | 329 | [email protected] "," |
330 | [email protected] "," | 330 | [email protected] " " |
331 | [email protected] " " | 331 | [email protected] |
332 | [email protected] | 332 | [email protected] |
333 | [email protected] | 333 | [email protected] "mid" |
334 | [email protected] "mid" | 334 | [email protected] " " |
335 | [email protected] " " | 335 | [email protected] "@" |
336 | [email protected] "@" | 336 | [email protected] " " |
337 | [email protected] " " | 337 | [email protected] |
338 | [email protected] | 338 | [email protected] ".." |
339 | [email protected] ".." | 339 | [email protected] "," |
340 | [email protected] "," | 340 | [email protected] " " |
341 | [email protected] " " | 341 | [email protected] |
342 | [email protected] | 342 | [email protected] |
343 | [email protected] | 343 | [email protected] "cons" |
344 | [email protected] "cons" | 344 | [email protected] "]" |
345 | [email protected] "]" | 345 | [email protected] " " |
346 | [email protected] " " | 346 | [email protected] "=" |
347 | [email protected] "=" | 347 | [email protected] " " |
348 | [email protected] " " | 348 | [email protected] |
349 | [email protected] | 349 | [email protected] "(" |
350 | [email protected] "(" | 350 | [email protected] ")" |
351 | [email protected] ")" | 351 | [email protected] ";" |
352 | [email protected] ";" | 352 | [email protected] "\n " |
353 | [email protected] "\n " | 353 | [email protected] |
354 | [email protected] | 354 | [email protected] "let" |
355 | [email protected] "let" | 355 | [email protected] " " |
356 | [email protected] " " | 356 | [email protected] |
357 | [email protected] | 357 | [email protected] "[" |
358 | [email protected] "[" | 358 | [email protected] |
359 | [email protected] | 359 | [email protected] |
360 | [email protected] | 360 | [email protected] "head" |
361 | [email protected] "head" | 361 | [email protected] "," |
362 | [email protected] "," | 362 | [email protected] " " |
363 | [email protected] " " | 363 | [email protected] |
364 | [email protected] | 364 | [email protected] ".." |
365 | [email protected] ".." | 365 | [email protected] "," |
366 | [email protected] "," | 366 | [email protected] " " |
367 | [email protected] " " | 367 | [email protected] |
368 | [email protected] | 368 | [email protected] ".." |
369 | [email protected] ".." | 369 | [email protected] "," |
370 | [email protected] "," | 370 | [email protected] " " |
371 | [email protected] " " | 371 | [email protected] |
372 | [email protected] | 372 | [email protected] |
373 | [email protected] | 373 | [email protected] "cons" |
374 | [email protected] "cons" | 374 | [email protected] "]" |
375 | [email protected] "]" | 375 | [email protected] " " |
376 | [email protected] " " | 376 | [email protected] "=" |
377 | [email protected] "=" | 377 | [email protected] " " |
378 | [email protected] " " | 378 | [email protected] |
379 | [email protected] | 379 | [email protected] "(" |
380 | [email protected] "(" | 380 | [email protected] ")" |
381 | [email protected] ")" | 381 | [email protected] ";" |
382 | [email protected] ";" | 382 | [email protected] "\n " |
383 | [email protected] "\n " | 383 | [email protected] |
384 | [email protected] | 384 | [email protected] "let" |
385 | [email protected] "let" | 385 | [email protected] " " |
386 | [email protected] " " | 386 | [email protected] |
387 | [email protected] | 387 | [email protected] "[" |
388 | [email protected] "[" | 388 | [email protected] |
389 | [email protected] | 389 | [email protected] |
390 | [email protected] | 390 | [email protected] "head" |
391 | [email protected] "head" | 391 | [email protected] "," |
392 | [email protected] "," | 392 | [email protected] " " |
393 | [email protected] " " | 393 | [email protected] |
394 | [email protected] | 394 | [email protected] ".." |
395 | [email protected] ".." | 395 | [email protected] "," |
396 | [email protected] "," | 396 | [email protected] " " |
397 | [email protected] " " | 397 | [email protected] |
398 | [email protected] | 398 | [email protected] |
399 | [email protected] | 399 | [email protected] "mid" |
400 | [email protected] "mid" | 400 | [email protected] "," |
401 | [email protected] "," | 401 | [email protected] " " |
402 | [email protected] " " | 402 | [email protected] |
403 | [email protected] | 403 | [email protected] |
404 | [email protected] | 404 | [email protected] "tail" |
405 | [email protected] "tail" | 405 | [email protected] " " |
406 | [email protected] " " | 406 | [email protected] "@" |
407 | [email protected] "@" | 407 | [email protected] " " |
408 | [email protected] " " | 408 | [email protected] |
409 | [email protected] | 409 | [email protected] ".." |
410 | [email protected] ".." | 410 | [email protected] "]" |
411 | [email protected] "]" | 411 | [email protected] " " |
412 | [email protected] " " | 412 | [email protected] "=" |
413 | [email protected] "=" | 413 | [email protected] " " |
414 | [email protected] " " | 414 | [email protected] |
415 | [email protected] | 415 | [email protected] "(" |
416 | [email protected] "(" | 416 | [email protected] ")" |
417 | [email protected] ")" | 417 | [email protected] ";" |
418 | [email protected] ";" | 418 | [email protected] "\n " |
419 | [email protected] "\n " | 419 | [email protected] |
420 | [email protected] | 420 | [email protected] "let" |
421 | [email protected] "let" | 421 | [email protected] " " |
422 | [email protected] " " | 422 | [email protected] |
423 | [email protected] | 423 | [email protected] "[" |
424 | [email protected] "[" | 424 | [email protected] |
425 | [email protected] | 425 | [email protected] |
426 | [email protected] | 426 | [email protected] "head" |
427 | [email protected] "head" | 427 | [email protected] "," |
428 | [email protected] "," | 428 | [email protected] " " |
429 | [email protected] " " | 429 | [email protected] |
430 | [email protected] | 430 | [email protected] ".." |
431 | [email protected] ".." | 431 | [email protected] "," |
432 | [email protected] "," | 432 | [email protected] " " |
433 | [email protected] " " | 433 | [email protected] |
434 | [email protected] | 434 | [email protected] |
435 | [email protected] | 435 | [email protected] "mid" |
436 | [email protected] "mid" | 436 | [email protected] "," |
437 | [email protected] "," | 437 | [email protected] " " |
438 | [email protected] " " | 438 | [email protected] |
439 | [email protected] | 439 | [email protected] ".." |
440 | [email protected] ".." | 440 | [email protected] "," |
441 | [email protected] "," | 441 | [email protected] " " |
442 | [email protected] " " | 442 | [email protected] |
443 | [email protected] | 443 | [email protected] |
444 | [email protected] | 444 | [email protected] "cons" |
445 | [email protected] "cons" | 445 | [email protected] "]" |
446 | [email protected] "]" | 446 | [email protected] " " |
447 | [email protected] " " | 447 | [email protected] "=" |
448 | [email protected] "=" | 448 | [email protected] " " |
449 | [email protected] " " | 449 | [email protected] |
450 | [email protected] | 450 | [email protected] "(" |
451 | [email protected] "(" | 451 | [email protected] ")" |
452 | [email protected] ")" | 452 | [email protected] ";" |
453 | [email protected] ";" | 453 | [email protected] "\n" |
454 | [email protected] "\n" | 454 | [email protected] "}" |
455 | [email protected] "}" | ||
456 | [email protected] "\n" | 455 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast index 10434b637..7c092d518 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast | |||
@@ -9,68 +9,67 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "S" |
22 | [email protected] "S" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "{" |
25 | [email protected] "{" | 25 | [email protected] " " |
26 | [email protected] " " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "0" |
29 | [email protected] "0" | 29 | [email protected] ":" |
30 | [email protected] ":" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "1" |
34 | [email protected] "1" | 34 | [email protected] " " |
35 | [email protected] " " | 35 | [email protected] "}" |
36 | [email protected] "}" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] "=" |
38 | [email protected] "=" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "(" |
41 | [email protected] "(" | 41 | [email protected] ")" |
42 | [email protected] ")" | 42 | [email protected] ";" |
43 | [email protected] ";" | 43 | [email protected] "\n " |
44 | [email protected] "\n " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "let" |
46 | [email protected] "let" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "S" |
52 | [email protected] "S" | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "{" |
55 | [email protected] "{" | 55 | [email protected] " " |
56 | [email protected] " " | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "x" |
59 | [email protected] "x" | 59 | [email protected] ":" |
60 | [email protected] ":" | 60 | [email protected] " " |
61 | [email protected] " " | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "1" |
64 | [email protected] "1" | 64 | [email protected] " " |
65 | [email protected] " " | 65 | [email protected] "}" |
66 | [email protected] "}" | 66 | [email protected] " " |
67 | [email protected] " " | 67 | [email protected] "=" |
68 | [email protected] "=" | 68 | [email protected] " " |
69 | [email protected] " " | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] "(" |
71 | [email protected] "(" | 71 | [email protected] ")" |
72 | [email protected] ")" | 72 | [email protected] ";" |
73 | [email protected] ";" | 73 | [email protected] "\n" |
74 | [email protected] "\n" | 74 | [email protected] "}" |
75 | [email protected] "}" | ||
76 | [email protected] "\n" | 75 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast b/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast index 66ad546b9..8382a4f96 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast | |||
@@ -9,35 +9,34 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "_" |
19 | [email protected] "_" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "&" |
25 | [email protected] "&" | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "1" |
27 | [email protected] "1" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] "as" |
29 | [email protected] "as" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "*" |
32 | [email protected] "*" | 32 | [email protected] "const" |
33 | [email protected] "const" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "i32" |
39 | [email protected] "i32" | 39 | [email protected] ";" |
40 | [email protected] ";" | 40 | [email protected] "\n" |
41 | [email protected] "\n" | 41 | [email protected] "}" |
42 | [email protected] "}" | ||
43 | [email protected] "\n" | 42 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast index c2e290a62..f43dfbe63 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast | |||
@@ -9,29 +9,28 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "foo" |
20 | [email protected] "foo" | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "(" |
22 | [email protected] "(" | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "#" |
25 | [email protected] "#" | 25 | [email protected] "[" |
26 | [email protected] "[" | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "attr" |
30 | [email protected] "attr" | 30 | [email protected] "]" |
31 | [email protected] "]" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] "92" |
33 | [email protected] "92" | 33 | [email protected] ")" |
34 | [email protected] ")" | 34 | [email protected] "\n" |
35 | [email protected] "\n" | 35 | [email protected] "}" |
36 | [email protected] "}" | ||
37 | [email protected] "\n" | 36 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast index dad3dfe4d..ecac05950 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast | |||
@@ -9,62 +9,61 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "foo" |
20 | [email protected] "foo" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "=" |
22 | [email protected] "=" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "|" |
26 | [email protected] "|" | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "bar" |
30 | [email protected] "bar" | 30 | [email protected] "," |
31 | [email protected] "," | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "baz" |
36 | [email protected] "baz" | 36 | [email protected] ":" |
37 | [email protected] ":" | 37 | [email protected] " " |
38 | [email protected] " " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "Baz" |
43 | [email protected] "Baz" | 43 | [email protected] "," |
44 | [email protected] "," | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "qux" |
49 | [email protected] "qux" | 49 | [email protected] ":" |
50 | [email protected] ":" | 50 | [email protected] " " |
51 | [email protected] " " | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] "Qux" |
57 | [email protected] "Qux" | 57 | [email protected] "::" |
58 | [email protected] "::" | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] "Quux" |
61 | [email protected] "Quux" | 61 | [email protected] "|" |
62 | [email protected] "|" | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "(" |
65 | [email protected] "(" | 65 | [email protected] ")" |
66 | [email protected] ")" | 66 | [email protected] ";" |
67 | [email protected] ";" | 67 | [email protected] "\n" |
68 | [email protected] "\n" | 68 | [email protected] "}" |
69 | [email protected] "}" | ||
70 | [email protected] "\n" | 69 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast index 3110bf5c0..092833417 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast | |||
@@ -38,7 +38,6 @@ [email protected] | |||
38 | [email protected] ")" | 38 | [email protected] ")" |
39 | [email protected] " " | 39 | [email protected] " " |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "{" |
42 | [email protected] "{" | 42 | [email protected] "}" |
43 | [email protected] "}" | ||
44 | [email protected] "\n" | 43 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast b/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast index 3f3e6a9a2..88d512f1a 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast | |||
@@ -9,104 +9,103 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "match" |
16 | [email protected] "match" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "(" |
19 | [email protected] "(" | 19 | [email protected] ")" |
20 | [email protected] ")" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "{" |
23 | [email protected] "{" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "(" |
27 | [email protected] "(" | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "_" |
30 | [email protected] "_" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] "|" |
32 | [email protected] "|" | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "_" |
35 | [email protected] "_" | 35 | [email protected] ")" |
36 | [email protected] ")" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] "=>" |
38 | [email protected] "=>" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "(" |
41 | [email protected] "(" | 41 | [email protected] ")" |
42 | [email protected] ")" | 42 | [email protected] "," |
43 | [email protected] "," | 43 | [email protected] "\n " |
44 | [email protected] "\n " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] "&" |
47 | [email protected] "&" | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "(" |
49 | [email protected] "(" | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "_" |
52 | [email protected] "_" | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] "|" |
54 | [email protected] "|" | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] "_" |
57 | [email protected] "_" | 57 | [email protected] ")" |
58 | [email protected] ")" | 58 | [email protected] " " |
59 | [email protected] " " | 59 | [email protected] "=>" |
60 | [email protected] "=>" | 60 | [email protected] " " |
61 | [email protected] " " | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] "(" |
63 | [email protected] "(" | 63 | [email protected] ")" |
64 | [email protected] ")" | 64 | [email protected] "," |
65 | [email protected] "," | 65 | [email protected] "\n " |
66 | [email protected] "\n " | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] |
68 | [email protected] | 68 | [email protected] "(" |
69 | [email protected] "(" | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "_" |
72 | [email protected] "_" | 72 | [email protected] " " |
73 | [email protected] " " | 73 | [email protected] "|" |
74 | [email protected] "|" | 74 | [email protected] " " |
75 | [email protected] " " | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "_" |
77 | [email protected] "_" | 77 | [email protected] "," |
78 | [email protected] "," | 78 | [email protected] ")" |
79 | [email protected] ")" | 79 | [email protected] " " |
80 | [email protected] " " | 80 | [email protected] "=>" |
81 | [email protected] "=>" | 81 | [email protected] " " |
82 | [email protected] " " | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "(" |
84 | [email protected] "(" | 84 | [email protected] ")" |
85 | [email protected] ")" | 85 | [email protected] "," |
86 | [email protected] "," | 86 | [email protected] "\n " |
87 | [email protected] "\n " | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] "[" |
90 | [email protected] "[" | 90 | [email protected] |
91 | [email protected] | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] "_" |
93 | [email protected] "_" | 93 | [email protected] " " |
94 | [email protected] " " | 94 | [email protected] "|" |
95 | [email protected] "|" | 95 | [email protected] " " |
96 | [email protected] " " | 96 | [email protected] |
97 | [email protected] | 97 | [email protected] "_" |
98 | [email protected] "_" | 98 | [email protected] "," |
99 | [email protected] "," | 99 | [email protected] "]" |
100 | [email protected] "]" | 100 | [email protected] " " |
101 | [email protected] " " | 101 | [email protected] "=>" |
102 | [email protected] "=>" | 102 | [email protected] " " |
103 | [email protected] " " | 103 | [email protected] |
104 | [email protected] | 104 | [email protected] "(" |
105 | [email protected] "(" | 105 | [email protected] ")" |
106 | [email protected] ")" | 106 | [email protected] "," |
107 | [email protected] "," | 107 | [email protected] "\n " |
108 | [email protected] "\n " | 108 | [email protected] "}" |
109 | [email protected] "}" | 109 | [email protected] "\n" |
110 | [email protected] "\n" | 110 | [email protected] "}" |
111 | [email protected] "}" | ||
112 | [email protected] "\n" | 111 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast index 50db9e967..bd9e8d40f 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast | |||
@@ -9,30 +9,28 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "v" |
21 | [email protected] "v" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] "=" |
23 | [email protected] "=" | 23 | [email protected] " " |
24 | [email protected] " " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "{" |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] "{" | 28 | [email protected] "1" |
29 | [email protected] | 29 | [email protected] "}" |
30 | [email protected] "1" | 30 | [email protected] "&" |
31 | [email protected] "}" | 31 | [email protected] |
32 | [email protected] "&" | 32 | [email protected] "2" |
33 | [email protected] | 33 | [email protected] ";" |
34 | [email protected] "2" | 34 | [email protected] "\n" |
35 | [email protected] ";" | 35 | [email protected] "}" |
36 | [email protected] "\n" | ||
37 | [email protected] "}" | ||
38 | [email protected] "\n" | 36 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast index c05e05bf3..08333a325 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast | |||
@@ -9,37 +9,35 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "|" |
19 | [email protected] "|" | 19 | [email protected] "|" |
20 | [email protected] "|" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "->" |
23 | [email protected] "->" | 23 | [email protected] " " |
24 | [email protected] " " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "i32" |
29 | [email protected] "i32" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "{" |
32 | [email protected] | 32 | [email protected] " " |
33 | [email protected] "{" | 33 | [email protected] |
34 | [email protected] " " | 34 | [email protected] "92" |
35 | [email protected] | 35 | [email protected] " " |
36 | [email protected] "92" | 36 | [email protected] "}" |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] "}" | 38 | [email protected] "(" |
39 | [email protected] | 39 | [email protected] ")" |
40 | [email protected] "(" | 40 | [email protected] ";" |
41 | [email protected] ")" | 41 | [email protected] " " |
42 | [email protected] ";" | 42 | [email protected] "}" |
43 | [email protected] " " | ||
44 | [email protected] "}" | ||
45 | [email protected] "\n" | 43 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast b/crates/ra_syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast new file mode 100644 index 000000000..5f09e4f4a --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast | |||
@@ -0,0 +1,34 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] "fn" | ||
4 | [email protected] " " | ||
5 | [email protected] | ||
6 | [email protected] "foo" | ||
7 | [email protected] | ||
8 | [email protected] "(" | ||
9 | [email protected] ")" | ||
10 | [email protected] " " | ||
11 | [email protected] | ||
12 | [email protected] "{" | ||
13 | [email protected] " " | ||
14 | [email protected] | ||
15 | [email protected] | ||
16 | [email protected] | ||
17 | [email protected] | ||
18 | [email protected] | ||
19 | [email protected] "try" | ||
20 | [email protected] "!" | ||
21 | [email protected] | ||
22 | [email protected] "(" | ||
23 | [email protected] "Ok" | ||
24 | [email protected] | ||
25 | [email protected] "(" | ||
26 | [email protected] | ||
27 | [email protected] "(" | ||
28 | [email protected] ")" | ||
29 | [email protected] ")" | ||
30 | [email protected] ")" | ||
31 | [email protected] ";" | ||
32 | [email protected] " " | ||
33 | [email protected] "}" | ||
34 | [email protected] "\n" | ||
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rs b/crates/ra_syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rs new file mode 100644 index 000000000..61a6b46a0 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rs | |||
@@ -0,0 +1 @@ | |||
fn foo() { try!(Ok(())); } | |||
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0160_try_macro_rules.rast b/crates/ra_syntax/test_data/parser/inline/ok/0160_try_macro_rules.rast new file mode 100644 index 000000000..05b89d1c3 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0160_try_macro_rules.rast | |||
@@ -0,0 +1,27 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] | ||
4 | [email protected] | ||
5 | [email protected] | ||
6 | [email protected] "macro_rules" | ||
7 | [email protected] "!" | ||
8 | [email protected] " " | ||
9 | [email protected] | ||
10 | [email protected] "try" | ||
11 | [email protected] " " | ||
12 | [email protected] | ||
13 | [email protected] "{" | ||
14 | [email protected] " " | ||
15 | [email protected] | ||
16 | [email protected] "(" | ||
17 | [email protected] ")" | ||
18 | [email protected] " " | ||
19 | [email protected] "=" | ||
20 | [email protected] ">" | ||
21 | [email protected] " " | ||
22 | [email protected] | ||
23 | [email protected] "{" | ||
24 | [email protected] "}" | ||
25 | [email protected] " " | ||
26 | [email protected] "}" | ||
27 | [email protected] "\n" | ||
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0160_try_macro_rules.rs b/crates/ra_syntax/test_data/parser/inline/ok/0160_try_macro_rules.rs new file mode 100644 index 000000000..2e2ab6e60 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0160_try_macro_rules.rs | |||
@@ -0,0 +1 @@ | |||
macro_rules! try { () => {} } | |||
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rast new file mode 100644 index 000000000..9efebd8b8 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rast | |||
@@ -0,0 +1,26 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] "fn" | ||
4 | [email protected] " " | ||
5 | [email protected] | ||
6 | [email protected] "f" | ||
7 | [email protected] | ||
8 | [email protected] "(" | ||
9 | [email protected] ")" | ||
10 | [email protected] " " | ||
11 | [email protected] | ||
12 | [email protected] "{" | ||
13 | [email protected] " " | ||
14 | [email protected] | ||
15 | [email protected] | ||
16 | [email protected] | ||
17 | [email protected] "\'label" | ||
18 | [email protected] ":" | ||
19 | [email protected] " " | ||
20 | [email protected] | ||
21 | [email protected] "{" | ||
22 | [email protected] "}" | ||
23 | [email protected] ";" | ||
24 | [email protected] " " | ||
25 | [email protected] "}" | ||
26 | [email protected] "\n" | ||
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rs b/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rs new file mode 100644 index 000000000..18b4ff4b1 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rs | |||
@@ -0,0 +1 @@ | |||
fn f() { 'label: {}; } | |||
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rast new file mode 100644 index 000000000..4991f2c36 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rast | |||
@@ -0,0 +1,23 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] "fn" | ||
4 | [email protected] " " | ||
5 | [email protected] | ||
6 | [email protected] "f" | ||
7 | [email protected] | ||
8 | [email protected] "(" | ||
9 | [email protected] ")" | ||
10 | [email protected] " " | ||
11 | [email protected] | ||
12 | [email protected] "{" | ||
13 | [email protected] " " | ||
14 | [email protected] | ||
15 | [email protected] "unsafe" | ||
16 | [email protected] " " | ||
17 | [email protected] | ||
18 | [email protected] "{" | ||
19 | [email protected] " " | ||
20 | [email protected] "}" | ||
21 | [email protected] " " | ||
22 | [email protected] "}" | ||
23 | [email protected] "\n" | ||
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rs b/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rs new file mode 100644 index 000000000..dfb9b2a1c --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rs | |||
@@ -0,0 +1 @@ | |||
fn f() { unsafe { } } | |||
diff --git a/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast b/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast index 993ba72b6..0ec237f8e 100644 --- a/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast +++ b/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast | |||
@@ -9,8 +9,7 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n" |
14 | [email protected] "\n" | 14 | [email protected] "}" |
15 | [email protected] "}" | ||
16 | [email protected] "\n" | 15 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast b/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast index 353bf2d2e..37b452ec4 100644 --- a/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast +++ b/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast | |||
@@ -36,10 +36,9 @@ [email protected] | |||
36 | [email protected] ")" | 36 | [email protected] ")" |
37 | [email protected] " " | 37 | [email protected] " " |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "{" |
40 | [email protected] "{" | 40 | [email protected] "\n " |
41 | [email protected] "\n " | 41 | [email protected] "}" |
42 | [email protected] "}" | ||
43 | [email protected] "\n " | 42 | [email protected] "\n " |
44 | [email protected] | 43 | [email protected] |
45 | [email protected] "struct" | 44 | [email protected] "struct" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast b/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast index 3919cc78b..0b9bc58e8 100644 --- a/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast +++ b/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast | |||
@@ -31,9 +31,8 @@ [email protected] | |||
31 | [email protected] ")" | 31 | [email protected] ")" |
32 | [email protected] " " | 32 | [email protected] " " |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "{" |
35 | [email protected] "{" | 35 | [email protected] "}" |
36 | [email protected] "}" | ||
37 | [email protected] "\n\n" | 36 | [email protected] "\n\n" |
38 | [email protected] | 37 | [email protected] |
39 | [email protected] | 38 | [email protected] |
diff --git a/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast b/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast index 750a045ef..980b34049 100644 --- a/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast +++ b/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast | |||
@@ -9,9 +9,8 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "}" |
14 | [email protected] "}" | ||
15 | [email protected] "\n" | 14 | [email protected] "\n" |
16 | [email protected] | 15 | [email protected] |
17 | [email protected] | 16 | [email protected] |
@@ -26,9 +25,8 @@ [email protected] | |||
26 | [email protected] ")" | 25 | [email protected] ")" |
27 | [email protected] " " | 26 | [email protected] " " |
28 | [email protected] | 27 | [email protected] |
29 | [email protected] | 28 | [email protected] "{" |
30 | [email protected] "{" | 29 | [email protected] "}" |
31 | [email protected] "}" | ||
32 | [email protected] "\n" | 30 | [email protected] "\n" |
33 | [email protected] | 31 | [email protected] |
34 | [email protected] | 32 | [email protected] |
@@ -46,9 +44,8 @@ [email protected] | |||
46 | [email protected] ")" | 44 | [email protected] ")" |
47 | [email protected] " " | 45 | [email protected] " " |
48 | [email protected] | 46 | [email protected] |
49 | [email protected] | 47 | [email protected] "{" |
50 | [email protected] "{" | 48 | [email protected] "}" |
51 | [email protected] "}" | ||
52 | [email protected] "\n" | 49 | [email protected] "\n" |
53 | [email protected] | 50 | [email protected] |
54 | [email protected] | 51 | [email protected] |
@@ -66,9 +63,8 @@ [email protected] | |||
66 | [email protected] ")" | 63 | [email protected] ")" |
67 | [email protected] " " | 64 | [email protected] " " |
68 | [email protected] | 65 | [email protected] |
69 | [email protected] | 66 | [email protected] "{" |
70 | [email protected] "{" | 67 | [email protected] "}" |
71 | [email protected] "}" | ||
72 | [email protected] "\n" | 68 | [email protected] "\n" |
73 | [email protected] | 69 | [email protected] |
74 | [email protected] | 70 | [email protected] |
@@ -101,7 +97,6 @@ [email protected] | |||
101 | [email protected] ")" | 97 | [email protected] ")" |
102 | [email protected] " " | 98 | [email protected] " " |
103 | [email protected] | 99 | [email protected] |
104 | [email protected] | 100 | [email protected] "{" |
105 | [email protected] "{" | 101 | [email protected] "}" |
106 | [email protected] "}" | ||
107 | [email protected] "\n" | 102 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast b/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast index a5a90df7b..05d9c05ad 100644 --- a/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast +++ b/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast | |||
@@ -1,4 +1,4 @@ | |||
1 | SOURCE_FILE@0..65 | 1 | SOURCE_FILE@0..38 |
2 | [email protected] | 2 | [email protected] |
3 | [email protected] "use" | 3 | [email protected] "use" |
4 | [email protected] " " | 4 | [email protected] " " |
@@ -31,27 +31,3 @@ [email protected] | |||
31 | [email protected] "bar" | 31 | [email protected] "bar" |
32 | [email protected] ";" | 32 | [email protected] ";" |
33 | [email protected] "\n" | 33 | [email protected] "\n" |
34 | [email protected] | ||
35 | [email protected] "use" | ||
36 | [email protected] " " | ||
37 | [email protected] | ||
38 | [email protected] | ||
39 | [email protected] | ||
40 | [email protected] | ||
41 | [email protected] | ||
42 | [email protected] | ||
43 | [email protected] "::" | ||
44 | [email protected] "self" | ||
45 | [email protected] "::" | ||
46 | [email protected] | ||
47 | [email protected] | ||
48 | [email protected] "a" | ||
49 | [email protected] "::" | ||
50 | [email protected] | ||
51 | [email protected] "super" | ||
52 | [email protected] "::" | ||
53 | [email protected] | ||
54 | [email protected] | ||
55 | [email protected] "bar" | ||
56 | [email protected] ";" | ||
57 | [email protected] "\n" | ||
diff --git a/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rs b/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rs index faf6a42c7..9d9eb9917 100644 --- a/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rs +++ b/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rs | |||
@@ -1,3 +1,2 @@ | |||
1 | use self::foo; | 1 | use self::foo; |
2 | use super::super::bar; | 2 | use super::super::bar; |
3 | use ::self::a::super::bar; | ||
diff --git a/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast b/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast index b5747aacd..964cbf5dd 100644 --- a/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast +++ b/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast | |||
@@ -23,7 +23,6 @@ [email protected] | |||
23 | [email protected] ")" | 23 | [email protected] ")" |
24 | [email protected] " " | 24 | [email protected] " " |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "{" |
27 | [email protected] "{" | 27 | [email protected] "}" |
28 | [email protected] "}" | ||
29 | [email protected] "\n" | 28 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast b/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast index 643a1d16c..873791f50 100644 --- a/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast +++ b/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast | |||
@@ -12,10 +12,9 @@ [email protected] | |||
12 | [email protected] ")" | 12 | [email protected] ")" |
13 | [email protected] " " | 13 | [email protected] " " |
14 | [email protected] | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "{" |
16 | [email protected] "{" | 16 | [email protected] "\n" |
17 | [email protected] "\n" | 17 | [email protected] "}" |
18 | [email protected] "}" | ||
19 | [email protected] "\n\n" | 18 | [email protected] "\n\n" |
20 | [email protected] | 19 | [email protected] |
21 | [email protected] | 20 | [email protected] |
@@ -32,10 +31,9 @@ [email protected] | |||
32 | [email protected] ")" | 31 | [email protected] ")" |
33 | [email protected] " " | 32 | [email protected] " " |
34 | [email protected] | 33 | [email protected] |
35 | [email protected] | 34 | [email protected] "{" |
36 | [email protected] "{" | 35 | [email protected] "\n" |
37 | [email protected] "\n" | 36 | [email protected] "}" |
38 | [email protected] "}" | ||
39 | [email protected] "\n\n" | 37 | [email protected] "\n\n" |
40 | [email protected] | 38 | [email protected] |
41 | [email protected] | 39 | [email protected] |
@@ -52,8 +50,7 @@ [email protected] | |||
52 | [email protected] ")" | 50 | [email protected] ")" |
53 | [email protected] " " | 51 | [email protected] " " |
54 | [email protected] | 52 | [email protected] |
55 | [email protected] | 53 | [email protected] "{" |
56 | [email protected] "{" | 54 | [email protected] "\n" |
57 | [email protected] "\n" | 55 | [email protected] "}" |
58 | [email protected] "}" | ||
59 | [email protected] "\n" | 56 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast b/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast index 60af55837..5701f566e 100644 --- a/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast +++ b/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast | |||
@@ -9,25 +9,23 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "extern" |
17 | [email protected] "extern" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] "fn" |
19 | [email protected] "fn" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "f" |
22 | [email protected] "f" | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "(" |
24 | [email protected] "(" | 24 | [email protected] ")" |
25 | [email protected] ")" | 25 | [email protected] " " |
26 | [email protected] " " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "{" |
28 | [email protected] | 28 | [email protected] "}" |
29 | [email protected] "{" | 29 | [email protected] "\n" |
30 | [email protected] "}" | 30 | [email protected] "}" |
31 | [email protected] "\n" | ||
32 | [email protected] "}" | ||
33 | [email protected] "\n" | 31 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast b/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast index 4432c0163..b029d8692 100644 --- a/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast +++ b/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast | |||
@@ -9,24 +9,22 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "const" |
16 | [email protected] "const" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] "fn" |
18 | [email protected] "fn" | 18 | [email protected] " " |
19 | [email protected] " " | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "f" |
21 | [email protected] "f" | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "(" |
23 | [email protected] "(" | 23 | [email protected] ")" |
24 | [email protected] ")" | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "{" |
27 | [email protected] | 27 | [email protected] "}" |
28 | [email protected] "{" | 28 | [email protected] "\n" |
29 | [email protected] "}" | 29 | [email protected] "}" |
30 | [email protected] "\n" | ||
31 | [email protected] "}" | ||
32 | [email protected] "\n" | 30 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast b/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast index c0162c609..299bbd136 100644 --- a/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast +++ b/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast | |||
@@ -9,35 +9,33 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "unsafe" |
16 | [email protected] "unsafe" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] "fn" |
18 | [email protected] "fn" | 18 | [email protected] " " |
19 | [email protected] " " | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "f" |
21 | [email protected] "f" | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "(" |
23 | [email protected] "(" | 23 | [email protected] ")" |
24 | [email protected] ")" | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "{" |
27 | [email protected] | 27 | [email protected] "}" |
28 | [email protected] "{" | 28 | [email protected] "\n " |
29 | [email protected] "}" | 29 | [email protected] |
30 | [email protected] "\n " | 30 | [email protected] "unsafe" |
31 | [email protected] | 31 | [email protected] " " |
32 | [email protected] "unsafe" | 32 | [email protected] |
33 | [email protected] " " | 33 | [email protected] "{" |
34 | [email protected] | 34 | [email protected] " " |
35 | [email protected] "{" | 35 | [email protected] |
36 | [email protected] " " | 36 | [email protected] "92" |
37 | [email protected] | 37 | [email protected] " " |
38 | [email protected] "92" | 38 | [email protected] "}" |
39 | [email protected] " " | 39 | [email protected] "\n" |
40 | [email protected] "}" | 40 | [email protected] "}" |
41 | [email protected] "\n" | ||
42 | [email protected] "}" | ||
43 | [email protected] "\n" | 41 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast b/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast index 6c0daef52..de3c4b786 100644 --- a/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast +++ b/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast | |||
@@ -9,178 +9,177 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "x" |
20 | [email protected] "x" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "=" |
22 | [email protected] "=" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "1" |
27 | [email protected] "1" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] "+" |
29 | [email protected] "+" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "2" |
34 | [email protected] "2" | 34 | [email protected] " " |
35 | [email protected] " " | 35 | [email protected] "*" |
36 | [email protected] "*" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "3" |
39 | [email protected] "3" | 39 | [email protected] " " |
40 | [email protected] " " | 40 | [email protected] "%" |
41 | [email protected] "%" | 41 | [email protected] " " |
42 | [email protected] " " | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "4" |
44 | [email protected] "4" | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] "-" |
46 | [email protected] "-" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "5" |
50 | [email protected] "5" | 50 | [email protected] " " |
51 | [email protected] " " | 51 | [email protected] "/" |
52 | [email protected] "/" | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "6" |
55 | [email protected] "6" | 55 | [email protected] ";" |
56 | [email protected] ";" | 56 | [email protected] "\n " |
57 | [email protected] "\n " | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] "1" |
61 | [email protected] "1" | 61 | [email protected] " " |
62 | [email protected] " " | 62 | [email protected] "+" |
63 | [email protected] "+" | 63 | [email protected] " " |
64 | [email protected] " " | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] "2" |
67 | [email protected] "2" | 67 | [email protected] " " |
68 | [email protected] " " | 68 | [email protected] "*" |
69 | [email protected] "*" | 69 | [email protected] " " |
70 | [email protected] " " | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "3" |
72 | [email protected] "3" | 72 | [email protected] ";" |
73 | [email protected] ";" | 73 | [email protected] "\n " |
74 | [email protected] "\n " | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] "1" |
78 | [email protected] "1" | 78 | [email protected] " " |
79 | [email protected] " " | 79 | [email protected] "<<" |
80 | [email protected] "<<" | 80 | [email protected] " " |
81 | [email protected] " " | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "2" |
84 | [email protected] "2" | 84 | [email protected] " " |
85 | [email protected] " " | 85 | [email protected] "+" |
86 | [email protected] "+" | 86 | [email protected] " " |
87 | [email protected] " " | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] "3" |
89 | [email protected] "3" | 89 | [email protected] ";" |
90 | [email protected] ";" | 90 | [email protected] "\n " |
91 | [email protected] "\n " | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] |
94 | [email protected] | 94 | [email protected] "1" |
95 | [email protected] "1" | 95 | [email protected] " " |
96 | [email protected] " " | 96 | [email protected] "&" |
97 | [email protected] "&" | 97 | [email protected] " " |
98 | [email protected] " " | 98 | [email protected] |
99 | [email protected] | 99 | [email protected] |
100 | [email protected] | 100 | [email protected] "2" |
101 | [email protected] "2" | 101 | [email protected] " " |
102 | [email protected] " " | 102 | [email protected] ">>" |
103 | [email protected] ">>" | 103 | [email protected] " " |
104 | [email protected] " " | 104 | [email protected] |
105 | [email protected] | 105 | [email protected] "3" |
106 | [email protected] "3" | 106 | [email protected] ";" |
107 | [email protected] ";" | 107 | [email protected] "\n " |
108 | [email protected] "\n " | 108 | [email protected] |
109 | [email protected] | 109 | [email protected] |
110 | [email protected] | 110 | [email protected] |
111 | [email protected] | 111 | [email protected] "1" |
112 | [email protected] "1" | 112 | [email protected] " " |
113 | [email protected] " " | 113 | [email protected] "^" |
114 | [email protected] "^" | 114 | [email protected] " " |
115 | [email protected] " " | 115 | [email protected] |
116 | [email protected] | 116 | [email protected] |
117 | [email protected] | 117 | [email protected] "2" |
118 | [email protected] "2" | 118 | [email protected] " " |
119 | [email protected] " " | 119 | [email protected] "&" |
120 | [email protected] "&" | 120 | [email protected] " " |
121 | [email protected] " " | 121 | [email protected] |
122 | [email protected] | 122 | [email protected] "3" |
123 | [email protected] "3" | 123 | [email protected] ";" |
124 | [email protected] ";" | 124 | [email protected] "\n " |
125 | [email protected] "\n " | 125 | [email protected] |
126 | [email protected] | 126 | [email protected] |
127 | [email protected] | 127 | [email protected] |
128 | [email protected] | 128 | [email protected] "1" |
129 | [email protected] "1" | 129 | [email protected] " " |
130 | [email protected] " " | 130 | [email protected] "|" |
131 | [email protected] "|" | 131 | [email protected] " " |
132 | [email protected] " " | 132 | [email protected] |
133 | [email protected] | 133 | [email protected] |
134 | [email protected] | 134 | [email protected] "2" |
135 | [email protected] "2" | 135 | [email protected] " " |
136 | [email protected] " " | 136 | [email protected] "^" |
137 | [email protected] "^" | 137 | [email protected] " " |
138 | [email protected] " " | 138 | [email protected] |
139 | [email protected] | 139 | [email protected] "3" |
140 | [email protected] "3" | 140 | [email protected] ";" |
141 | [email protected] ";" | 141 | [email protected] "\n " |
142 | [email protected] "\n " | 142 | [email protected] |
143 | [email protected] | 143 | [email protected] |
144 | [email protected] | 144 | [email protected] |
145 | [email protected] | 145 | [email protected] "1" |
146 | [email protected] "1" | 146 | [email protected] " " |
147 | [email protected] " " | 147 | [email protected] "==" |
148 | [email protected] "==" | 148 | [email protected] " " |
149 | [email protected] " " | 149 | [email protected] |
150 | [email protected] | 150 | [email protected] |
151 | [email protected] | 151 | [email protected] "2" |
152 | [email protected] "2" | 152 | [email protected] " " |
153 | [email protected] " " | 153 | [email protected] "|" |
154 | [email protected] "|" | 154 | [email protected] " " |
155 | [email protected] " " | 155 | [email protected] |
156 | [email protected] | 156 | [email protected] "3" |
157 | [email protected] "3" | 157 | [email protected] ";" |
158 | [email protected] ";" | 158 | [email protected] "\n " |
159 | [email protected] "\n " | 159 | [email protected] |
160 | [email protected] | 160 | [email protected] |
161 | [email protected] | 161 | [email protected] |
162 | [email protected] | 162 | [email protected] "1" |
163 | [email protected] "1" | 163 | [email protected] " " |
164 | [email protected] " " | 164 | [email protected] "&&" |
165 | [email protected] "&&" | 165 | [email protected] " " |
166 | [email protected] " " | 166 | [email protected] |
167 | [email protected] | 167 | [email protected] |
168 | [email protected] | 168 | [email protected] "2" |
169 | [email protected] "2" | 169 | [email protected] " " |
170 | [email protected] " " | 170 | [email protected] "==" |
171 | [email protected] "==" | 171 | [email protected] " " |
172 | [email protected] " " | 172 | [email protected] |
173 | [email protected] | 173 | [email protected] "3" |
174 | [email protected] "3" | 174 | [email protected] ";" |
175 | [email protected] ";" | 175 | [email protected] "\n " |
176 | [email protected] "\n " | 176 | [email protected] "//1 || 2 && 2;" |
177 | [email protected] "//1 || 2 && 2;" | 177 | [email protected] "\n " |
178 | [email protected] "\n " | 178 | [email protected] "//1 .. 2 || 3;" |
179 | [email protected] "//1 .. 2 || 3;" | 179 | [email protected] "\n " |
180 | [email protected] "\n " | 180 | [email protected] "//1 = 2 .. 3;" |
181 | [email protected] "//1 = 2 .. 3;" | 181 | [email protected] "\n " |
182 | [email protected] "\n " | 182 | [email protected] "//---&*1 - --2 * 9;" |
183 | [email protected] "//---&*1 - --2 * 9;" | 183 | [email protected] "\n" |
184 | [email protected] "\n" | 184 | [email protected] "}" |
185 | [email protected] "}" | ||
186 | [email protected] "\n" | 185 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast b/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast index 8177bd89b..dc47d68a6 100644 --- a/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast +++ b/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast | |||
@@ -9,144 +9,143 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] ".." |
17 | [email protected] ".." | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "1" |
20 | [email protected] "1" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "+" |
22 | [email protected] "+" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "1" |
25 | [email protected] "1" | 25 | [email protected] ";" |
26 | [email protected] ";" | 26 | [email protected] "\n " |
27 | [email protected] "\n " | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] ".." |
31 | [email protected] ".." | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "z" |
36 | [email protected] "z" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] "=" |
38 | [email protected] "=" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "2" |
41 | [email protected] "2" | 41 | [email protected] ";" |
42 | [email protected] ";" | 42 | [email protected] "\n " |
43 | [email protected] "\n " | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "x" |
50 | [email protected] "x" | 50 | [email protected] " " |
51 | [email protected] " " | 51 | [email protected] "=" |
52 | [email protected] "=" | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "false" |
56 | [email protected] "false" | 56 | [email protected] ".." |
57 | [email protected] ".." | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "1" |
60 | [email protected] "1" | 60 | [email protected] " " |
61 | [email protected] " " | 61 | [email protected] "==" |
62 | [email protected] "==" | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "1" |
65 | [email protected] "1" | 65 | [email protected] ";" |
66 | [email protected] ";" | 66 | [email protected] "\n " |
67 | [email protected] "\n " | 67 | [email protected] |
68 | [email protected] | 68 | [email protected] "let" |
69 | [email protected] "let" | 69 | [email protected] " " |
70 | [email protected] " " | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] "x" |
73 | [email protected] "x" | 73 | [email protected] " " |
74 | [email protected] " " | 74 | [email protected] "=" |
75 | [email protected] "=" | 75 | [email protected] " " |
76 | [email protected] " " | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] "1" |
79 | [email protected] "1" | 79 | [email protected] ".." |
80 | [email protected] ".." | 80 | [email protected] ";" |
81 | [email protected] ";" | 81 | [email protected] "\n \n " |
82 | [email protected] "\n \n " | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] "..=" |
85 | [email protected] "..=" | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] "1" |
88 | [email protected] "1" | 88 | [email protected] " " |
89 | [email protected] " " | 89 | [email protected] "+" |
90 | [email protected] "+" | 90 | [email protected] " " |
91 | [email protected] " " | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] "1" |
93 | [email protected] "1" | 93 | [email protected] ";" |
94 | [email protected] ";" | 94 | [email protected] "\n " |
95 | [email protected] "\n " | 95 | [email protected] |
96 | [email protected] | 96 | [email protected] |
97 | [email protected] | 97 | [email protected] |
98 | [email protected] | 98 | [email protected] "..=" |
99 | [email protected] "..=" | 99 | [email protected] |
100 | [email protected] | 100 | [email protected] |
101 | [email protected] | 101 | [email protected] |
102 | [email protected] | 102 | [email protected] |
103 | [email protected] | 103 | [email protected] "z" |
104 | [email protected] "z" | 104 | [email protected] " " |
105 | [email protected] " " | 105 | [email protected] "=" |
106 | [email protected] "=" | 106 | [email protected] " " |
107 | [email protected] " " | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] "2" |
109 | [email protected] "2" | 109 | [email protected] ";" |
110 | [email protected] ";" | 110 | [email protected] "\n " |
111 | [email protected] "\n " | 111 | [email protected] |
112 | [email protected] | 112 | [email protected] |
113 | [email protected] | 113 | [email protected] |
114 | [email protected] | 114 | [email protected] |
115 | [email protected] | 115 | [email protected] |
116 | [email protected] | 116 | [email protected] |
117 | [email protected] | 117 | [email protected] "x" |
118 | [email protected] "x" | 118 | [email protected] " " |
119 | [email protected] " " | 119 | [email protected] "=" |
120 | [email protected] "=" | 120 | [email protected] " " |
121 | [email protected] " " | 121 | [email protected] |
122 | [email protected] | 122 | [email protected] |
123 | [email protected] | 123 | [email protected] "false" |
124 | [email protected] "false" | 124 | [email protected] "..=" |
125 | [email protected] "..=" | 125 | [email protected] |
126 | [email protected] | 126 | [email protected] |
127 | [email protected] | 127 | [email protected] "1" |
128 | [email protected] "1" | 128 | [email protected] " " |
129 | [email protected] " " | 129 | [email protected] "==" |
130 | [email protected] "==" | 130 | [email protected] " " |
131 | [email protected] " " | 131 | [email protected] |
132 | [email protected] | 132 | [email protected] "1" |
133 | [email protected] "1" | 133 | [email protected] ";" |
134 | [email protected] ";" | 134 | [email protected] "\n " |
135 | [email protected] "\n " | 135 | [email protected] |
136 | [email protected] | 136 | [email protected] "let" |
137 | [email protected] "let" | 137 | [email protected] " " |
138 | [email protected] " " | 138 | [email protected] |
139 | [email protected] | 139 | [email protected] |
140 | [email protected] | 140 | [email protected] "x" |
141 | [email protected] "x" | 141 | [email protected] " " |
142 | [email protected] " " | 142 | [email protected] "=" |
143 | [email protected] "=" | 143 | [email protected] " " |
144 | [email protected] " " | 144 | [email protected] |
145 | [email protected] | 145 | [email protected] |
146 | [email protected] | 146 | [email protected] "1" |
147 | [email protected] "1" | 147 | [email protected] ".." |
148 | [email protected] ".." | 148 | [email protected] ";" |
149 | [email protected] ";" | 149 | [email protected] "\n" |
150 | [email protected] "\n" | 150 | [email protected] "}" |
151 | [email protected] "}" | ||
152 | [email protected] "\n" | 151 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast b/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast index 953930f6c..86c3b46c4 100644 --- a/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast +++ b/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast | |||
@@ -9,56 +9,55 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "_" |
19 | [email protected] "_" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "\'c\'u32" |
24 | [email protected] "\'c\'u32" | 24 | [email protected] ";" |
25 | [email protected] ";" | 25 | [email protected] "\n " |
26 | [email protected] "\n " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "let" |
28 | [email protected] "let" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "_" |
31 | [email protected] "_" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] "=" |
33 | [email protected] "=" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "\"string\"invalid" |
36 | [email protected] "\"string\"invalid" | 36 | [email protected] ";" |
37 | [email protected] ";" | 37 | [email protected] "\n " |
38 | [email protected] "\n " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "let" |
40 | [email protected] "let" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "_" |
43 | [email protected] "_" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] "=" |
45 | [email protected] "=" | 45 | [email protected] " " |
46 | [email protected] " " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "b\'b\'_suff" |
48 | [email protected] "b\'b\'_suff" | 48 | [email protected] ";" |
49 | [email protected] ";" | 49 | [email protected] "\n " |
50 | [email protected] "\n " | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "let" |
52 | [email protected] "let" | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "_" |
55 | [email protected] "_" | 55 | [email protected] " " |
56 | [email protected] " " | 56 | [email protected] "=" |
57 | [email protected] "=" | 57 | [email protected] " " |
58 | [email protected] " " | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "b\"bs\"invalid" |
60 | [email protected] "b\"bs\"invalid" | 60 | [email protected] ";" |
61 | [email protected] ";" | 61 | [email protected] "\n" |
62 | [email protected] "\n" | 62 | [email protected] "}" |
63 | [email protected] "}" | ||
64 | [email protected] "\n" | 63 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast b/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast index 68eb16bbd..8d76c4e0b 100644 --- a/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast +++ b/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast | |||
@@ -85,7 +85,6 @@ [email protected] | |||
85 | [email protected] "," | 85 | [email protected] "," |
86 | [email protected] "\n" | 86 | [email protected] "\n" |
87 | [email protected] | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] "{" |
89 | [email protected] "{" | 89 | [email protected] "}" |
90 | [email protected] "}" | ||
91 | [email protected] "\n" | 90 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast b/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast index 3977faa60..13b730ded 100644 --- a/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast +++ b/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast | |||
@@ -11,210 +11,205 @@ [email protected] | |||
11 | [email protected] ")" | 11 | [email protected] ")" |
12 | [email protected] " " | 12 | [email protected] " " |
13 | [email protected] | 13 | [email protected] |
14 | [email protected] | 14 | [email protected] "{" |
15 | [email protected] "{" | 15 | [email protected] "\n " |
16 | [email protected] "\n " | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "\'empty_block" |
20 | [email protected] "\'empty_block" | 20 | [email protected] ":" |
21 | [email protected] ":" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] "{" | 24 | [email protected] "}" |
25 | [email protected] "}" | 25 | [email protected] "\n\n " |
26 | [email protected] "\n\n " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "\'block" |
30 | [email protected] "\'block" | 30 | [email protected] ":" |
31 | [email protected] ":" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "{" |
34 | [email protected] "{" | 34 | [email protected] "\n " |
35 | [email protected] "\n " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "do_thing" |
42 | [email protected] "do_thing" | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "(" |
44 | [email protected] "(" | 44 | [email protected] ")" |
45 | [email protected] ")" | 45 | [email protected] ";" |
46 | [email protected] ";" | 46 | [email protected] "\n " |
47 | [email protected] "\n " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "if" |
50 | [email protected] "if" | 50 | [email protected] " " |
51 | [email protected] " " | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] "condition_not_met" |
58 | [email protected] "condition_not_met" | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "(" |
60 | [email protected] "(" | 60 | [email protected] ")" |
61 | [email protected] ")" | 61 | [email protected] " " |
62 | [email protected] " " | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "{" |
64 | [email protected] | 64 | [email protected] "\n " |
65 | [email protected] "{" | 65 | [email protected] |
66 | [email protected] "\n " | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] "break" |
68 | [email protected] | 68 | [email protected] " " |
69 | [email protected] "break" | 69 | [email protected] "\'block" |
70 | [email protected] " " | 70 | [email protected] ";" |
71 | [email protected] "\'block" | 71 | [email protected] "\n " |
72 | [email protected] ";" | 72 | [email protected] "}" |
73 | [email protected] "\n " | 73 | [email protected] "\n " |
74 | [email protected] "}" | 74 | [email protected] |
75 | [email protected] "\n " | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] "do_next_thing" |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] "do_next_thing" | 82 | [email protected] "(" |
83 | [email protected] | 83 | [email protected] ")" |
84 | [email protected] "(" | 84 | [email protected] ";" |
85 | [email protected] ")" | 85 | [email protected] "\n " |
86 | [email protected] ";" | 86 | [email protected] |
87 | [email protected] "\n " | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] "if" |
89 | [email protected] | 89 | [email protected] " " |
90 | [email protected] "if" | 90 | [email protected] |
91 | [email protected] " " | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] |
94 | [email protected] | 94 | [email protected] |
95 | [email protected] | 95 | [email protected] |
96 | [email protected] | 96 | [email protected] "condition_not_met" |
97 | [email protected] | 97 | [email protected] |
98 | [email protected] "condition_not_met" | 98 | [email protected] "(" |
99 | [email protected] | 99 | [email protected] ")" |
100 | [email protected] "(" | 100 | [email protected] " " |
101 | [email protected] ")" | 101 | [email protected] |
102 | [email protected] " " | 102 | [email protected] "{" |
103 | [email protected] | 103 | [email protected] "\n " |
104 | [email protected] | 104 | [email protected] |
105 | [email protected] "{" | 105 | [email protected] |
106 | [email protected] "\n " | 106 | [email protected] "break" |
107 | [email protected] | 107 | [email protected] " " |
108 | [email protected] | 108 | [email protected] "\'block" |
109 | [email protected] "break" | 109 | [email protected] ";" |
110 | [email protected] " " | 110 | [email protected] "\n " |
111 | [email protected] "\'block" | 111 | [email protected] "}" |
112 | [email protected] ";" | 112 | [email protected] "\n " |
113 | [email protected] "\n " | 113 | [email protected] |
114 | [email protected] "}" | 114 | [email protected] |
115 | [email protected] "\n " | 115 | [email protected] |
116 | [email protected] | 116 | [email protected] |
117 | [email protected] | 117 | [email protected] |
118 | [email protected] | 118 | [email protected] |
119 | [email protected] | 119 | [email protected] "do_last_thing" |
120 | [email protected] | 120 | [email protected] |
121 | [email protected] | 121 | [email protected] "(" |
122 | [email protected] "do_last_thing" | 122 | [email protected] ")" |
123 | [email protected] | 123 | [email protected] ";" |
124 | [email protected] "(" | 124 | [email protected] "\n " |
125 | [email protected] ")" | 125 | [email protected] "}" |
126 | [email protected] ";" | 126 | [email protected] "\n\n " |
127 | [email protected] "\n " | 127 | [email protected] |
128 | [email protected] "}" | 128 | [email protected] "let" |
129 | [email protected] "\n\n " | 129 | [email protected] " " |
130 | [email protected] | 130 | [email protected] |
131 | [email protected] "let" | 131 | [email protected] |
132 | [email protected] " " | 132 | [email protected] "result" |
133 | [email protected] | 133 | [email protected] " " |
134 | [email protected] | 134 | [email protected] "=" |
135 | [email protected] "result" | 135 | [email protected] " " |
136 | [email protected] " " | 136 | [email protected] |
137 | [email protected] "=" | 137 | [email protected] |
138 | [email protected] " " | 138 | [email protected] "\'block" |
139 | [email protected] | 139 | [email protected] ":" |
140 | [email protected] | 140 | [email protected] " " |
141 | [email protected] "\'block" | 141 | [email protected] |
142 | [email protected] ":" | 142 | [email protected] "{" |
143 | [email protected] " " | 143 | [email protected] "\n " |
144 | [email protected] | 144 | [email protected] |
145 | [email protected] "{" | 145 | [email protected] |
146 | [email protected] "\n " | 146 | [email protected] "if" |
147 | [email protected] | 147 | [email protected] " " |
148 | [email protected] | 148 | [email protected] |
149 | [email protected] "if" | 149 | [email protected] |
150 | [email protected] " " | 150 | [email protected] |
151 | [email protected] | 151 | [email protected] |
152 | [email protected] | 152 | [email protected] |
153 | [email protected] | 153 | [email protected] |
154 | [email protected] | 154 | [email protected] "foo" |
155 | [email protected] | 155 | [email protected] |
156 | [email protected] | 156 | [email protected] "(" |
157 | [email protected] "foo" | 157 | [email protected] ")" |
158 | [email protected] | 158 | [email protected] " " |
159 | [email protected] "(" | 159 | [email protected] |
160 | [email protected] ")" | 160 | [email protected] "{" |
161 | [email protected] " " | 161 | [email protected] "\n " |
162 | [email protected] | 162 | [email protected] "// comment" |
163 | [email protected] | 163 | [email protected] "\n " |
164 | [email protected] "{" | 164 | [email protected] |
165 | [email protected] "\n " | 165 | [email protected] |
166 | [email protected] "// comment" | 166 | [email protected] "break" |
167 | [email protected] "\n " | 167 | [email protected] " " |
168 | [email protected] | 168 | [email protected] "\'block" |
169 | [email protected] | 169 | [email protected] " " |
170 | [email protected] "break" | 170 | [email protected] |
171 | [email protected] " " | 171 | [email protected] "1" |
172 | [email protected] "\'block" | 172 | [email protected] ";" |
173 | [email protected] " " | 173 | [email protected] "\n " |
174 | [email protected] | 174 | [email protected] "}" |
175 | [email protected] "1" | 175 | [email protected] "\n " |
176 | [email protected] ";" | 176 | [email protected] |
177 | [email protected] "\n " | 177 | [email protected] |
178 | [email protected] "}" | 178 | [email protected] "if" |
179 | [email protected] "\n " | 179 | [email protected] " " |
180 | [email protected] | 180 | [email protected] |
181 | [email protected] | 181 | [email protected] |
182 | [email protected] "if" | 182 | [email protected] |
183 | [email protected] " " | 183 | [email protected] |
184 | [email protected] | 184 | [email protected] |
185 | [email protected] | 185 | [email protected] |
186 | [email protected] | 186 | [email protected] "bar" |
187 | [email protected] | 187 | [email protected] |
188 | [email protected] | 188 | [email protected] "(" |
189 | [email protected] | 189 | [email protected] ")" |
190 | [email protected] "bar" | 190 | [email protected] " " |
191 | [email protected] | 191 | [email protected] |
192 | [email protected] "(" | 192 | [email protected] "{" |
193 | [email protected] ")" | 193 | [email protected] "\n " |
194 | [email protected] " " | 194 | [email protected] "/* comment */" |
195 | [email protected] | 195 | [email protected] "\n " |
196 | [email protected] | 196 | [email protected] |
197 | [email protected] "{" | 197 | [email protected] |
198 | [email protected] "\n " | 198 | [email protected] "break" |
199 | [email protected] "/* comment */" | 199 | [email protected] " " |
200 | [email protected] "\n " | 200 | [email protected] "\'block" |
201 | [email protected] | 201 | [email protected] " " |
202 | [email protected] | 202 | [email protected] |
203 | [email protected] "break" | 203 | [email protected] "2" |
204 | [email protected] " " | 204 | [email protected] ";" |
205 | [email protected] "\'block" | 205 | [email protected] "\n " |
206 | [email protected] " " | 206 | [email protected] "}" |
207 | [email protected] | 207 | [email protected] "\n " |
208 | [email protected] "2" | 208 | [email protected] |
209 | [email protected] ";" | 209 | [email protected] "3" |
210 | [email protected] "\n " | 210 | [email protected] "\n " |
211 | [email protected] "}" | 211 | [email protected] "}" |
212 | [email protected] "\n " | 212 | [email protected] ";" |
213 | [email protected] | 213 | [email protected] "\n" |
214 | [email protected] "3" | 214 | [email protected] "}" |
215 | [email protected] "\n " | ||
216 | [email protected] "}" | ||
217 | [email protected] ";" | ||
218 | [email protected] "\n" | ||
219 | [email protected] "}" | ||
220 | [email protected] "\n" | 215 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast b/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast index 3b9e8c71c..21874ae3a 100644 --- a/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast +++ b/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast | |||
@@ -9,34 +9,33 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "make_query" |
21 | [email protected] "make_query" | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "(" |
23 | [email protected] "(" | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "crate" |
29 | [email protected] "crate" | 29 | [email protected] "::" |
30 | [email protected] "::" | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "module_map" |
33 | [email protected] "module_map" | 33 | [email protected] "::" |
34 | [email protected] "::" | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "module_tree" |
37 | [email protected] "module_tree" | 37 | [email protected] ")" |
38 | [email protected] ")" | 38 | [email protected] ";" |
39 | [email protected] ";" | 39 | [email protected] "\n" |
40 | [email protected] "\n" | 40 | [email protected] "}" |
41 | [email protected] "}" | ||
42 | [email protected] "\n" | 41 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast index 9af689635..eb59d6e17 100644 --- a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast +++ b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast | |||
@@ -139,33 +139,32 @@ [email protected] | |||
139 | [email protected] "bool" | 139 | [email protected] "bool" |
140 | [email protected] " " | 140 | [email protected] " " |
141 | [email protected] | 141 | [email protected] |
142 | [email protected] | 142 | [email protected] "{" |
143 | [email protected] "{" | 143 | [email protected] " " |
144 | [email protected] " " | 144 | [email protected] |
145 | [email protected] | 145 | [email protected] "let" |
146 | [email protected] "let" | 146 | [email protected] " " |
147 | [email protected] " " | 147 | [email protected] |
148 | [email protected] | 148 | [email protected] |
149 | [email protected] | 149 | [email protected] "_x" |
150 | [email protected] "_x" | 150 | [email protected] ":" |
151 | [email protected] ":" | 151 | [email protected] " " |
152 | [email protected] " " | 152 | [email protected] |
153 | [email protected] | 153 | [email protected] |
154 | [email protected] | 154 | [email protected] |
155 | [email protected] | 155 | [email protected] |
156 | [email protected] | 156 | [email protected] "bool" |
157 | [email protected] "bool" | 157 | [email protected] " " |
158 | [email protected] " " | 158 | [email protected] "=" |
159 | [email protected] "=" | 159 | [email protected] " " |
160 | [email protected] " " | 160 | [email protected] |
161 | [email protected] | 161 | [email protected] "return" |
162 | [email protected] "return" | 162 | [email protected] " " |
163 | [email protected] " " | 163 | [email protected] |
164 | [email protected] | 164 | [email protected] "true" |
165 | [email protected] "true" | 165 | [email protected] ";" |
166 | [email protected] ";" | 166 | [email protected] " " |
167 | [email protected] " " | 167 | [email protected] "}" |
168 | [email protected] "}" | ||
169 | [email protected] "\n\n" | 168 | [email protected] "\n\n" |
170 | [email protected] | 169 | [email protected] |
171 | [email protected] "fn" | 170 | [email protected] "fn" |
@@ -177,48 +176,46 @@ [email protected] | |||
177 | [email protected] ")" | 176 | [email protected] ")" |
178 | [email protected] " " | 177 | [email protected] " " |
179 | [email protected] | 178 | [email protected] |
180 | [email protected] | 179 | [email protected] "{" |
181 | [email protected] "{" | 180 | [email protected] "\n " |
182 | [email protected] "\n " | 181 | [email protected] |
183 | [email protected] | 182 | [email protected] "fn" |
184 | [email protected] "fn" | 183 | [email protected] " " |
185 | [email protected] " " | 184 | [email protected] |
186 | [email protected] | 185 | [email protected] "f" |
187 | [email protected] "f" | 186 | [email protected] |
188 | [email protected] | 187 | [email protected] "(" |
189 | [email protected] "(" | 188 | [email protected] |
190 | [email protected] | 189 | [email protected] |
191 | [email protected] | 190 | [email protected] |
192 | [email protected] | 191 | [email protected] "_x" |
193 | [email protected] "_x" | 192 | [email protected] ":" |
194 | [email protected] ":" | 193 | [email protected] " " |
195 | [email protected] " " | 194 | [email protected] |
196 | [email protected] | 195 | [email protected] "(" |
197 | [email protected] "(" | 196 | [email protected] ")" |
198 | [email protected] ")" | 197 | [email protected] ")" |
199 | [email protected] ")" | 198 | [email protected] " " |
200 | [email protected] " " | 199 | [email protected] |
201 | [email protected] | 200 | [email protected] "{" |
202 | [email protected] | 201 | [email protected] " " |
203 | [email protected] "{" | 202 | [email protected] "}" |
204 | [email protected] " " | 203 | [email protected] "\n " |
205 | [email protected] "}" | 204 | [email protected] |
206 | [email protected] "\n " | 205 | [email protected] |
207 | [email protected] | 206 | [email protected] |
208 | [email protected] | 207 | [email protected] |
209 | [email protected] | 208 | [email protected] |
210 | [email protected] | 209 | [email protected] |
211 | [email protected] | 210 | [email protected] "f" |
212 | [email protected] | 211 | [email protected] |
213 | [email protected] "f" | 212 | [email protected] "(" |
214 | [email protected] | 213 | [email protected] |
215 | [email protected] "(" | 214 | [email protected] "return" |
216 | [email protected] | 215 | [email protected] ")" |
217 | [email protected] "return" | 216 | [email protected] ";" |
218 | [email protected] ")" | 217 | [email protected] "\n" |
219 | [email protected] ";" | 218 | [email protected] "}" |
220 | [email protected] "\n" | ||
221 | [email protected] "}" | ||
222 | [email protected] "\n\n" | 219 | [email protected] "\n\n" |
223 | [email protected] | 220 | [email protected] |
224 | [email protected] "fn" | 221 | [email protected] "fn" |
@@ -230,189 +227,185 @@ [email protected] | |||
230 | [email protected] ")" | 227 | [email protected] ")" |
231 | [email protected] " " | 228 | [email protected] " " |
232 | [email protected] | 229 | [email protected] |
233 | [email protected] | 230 | [email protected] "{" |
234 | [email protected] "{" | 231 | [email protected] "\n " |
235 | [email protected] "\n " | 232 | [email protected] |
236 | [email protected] | 233 | [email protected] "fn" |
237 | [email protected] "fn" | 234 | [email protected] " " |
238 | [email protected] " " | 235 | [email protected] |
239 | [email protected] | 236 | [email protected] "the" |
240 | [email protected] "the" | 237 | [email protected] |
241 | [email protected] | 238 | [email protected] "(" |
242 | [email protected] "(" | 239 | [email protected] |
243 | [email protected] | 240 | [email protected] |
244 | [email protected] | 241 | [email protected] |
245 | [email protected] | 242 | [email protected] "x" |
246 | [email protected] "x" | 243 | [email protected] ":" |
247 | [email protected] ":" | 244 | [email protected] " " |
248 | [email protected] " " | 245 | [email protected] |
249 | [email protected] | 246 | [email protected] "&" |
250 | [email protected] "&" | 247 | [email protected] |
251 | [email protected] | 248 | [email protected] |
252 | [email protected] | 249 | [email protected] |
253 | [email protected] | 250 | [email protected] |
254 | [email protected] | 251 | [email protected] "Cell" |
255 | [email protected] "Cell" | 252 | [email protected] |
256 | [email protected] | 253 | [email protected] "<" |
257 | [email protected] "<" | 254 | [email protected] |
258 | [email protected] | 255 | [email protected] |
259 | [email protected] | 256 | [email protected] |
260 | [email protected] | 257 | [email protected] |
261 | [email protected] | 258 | [email protected] |
262 | [email protected] | 259 | [email protected] "bool" |
263 | [email protected] "bool" | 260 | [email protected] ">" |
264 | [email protected] ">" | 261 | [email protected] ")" |
265 | [email protected] ")" | 262 | [email protected] " " |
266 | [email protected] " " | 263 | [email protected] |
267 | [email protected] | 264 | [email protected] "{" |
268 | [email protected] | 265 | [email protected] "\n " |
269 | [email protected] "{" | 266 | [email protected] |
270 | [email protected] "\n " | 267 | [email protected] |
271 | [email protected] | 268 | [email protected] "return" |
272 | [email protected] | 269 | [email protected] " " |
273 | [email protected] "return" | 270 | [email protected] |
274 | [email protected] " " | 271 | [email protected] "while" |
275 | [email protected] | 272 | [email protected] " " |
276 | [email protected] "while" | 273 | [email protected] |
277 | [email protected] " " | 274 | [email protected] |
278 | [email protected] | 275 | [email protected] "!" |
279 | [email protected] | 276 | [email protected] |
280 | [email protected] "!" | 277 | [email protected] |
281 | [email protected] | 278 | [email protected] |
282 | [email protected] | 279 | [email protected] |
283 | [email protected] | 280 | [email protected] |
284 | [email protected] | 281 | [email protected] "x" |
285 | [email protected] | 282 | [email protected] "." |
286 | [email protected] "x" | 283 | [email protected] |
287 | [email protected] "." | 284 | [email protected] "get" |
288 | [email protected] | 285 | [email protected] |
289 | [email protected] "get" | 286 | [email protected] "(" |
290 | [email protected] | 287 | [email protected] ")" |
291 | [email protected] "(" | 288 | [email protected] " " |
292 | [email protected] ")" | 289 | [email protected] |
293 | [email protected] " " | 290 | [email protected] "{" |
294 | [email protected] | 291 | [email protected] " " |
295 | [email protected] | 292 | [email protected] |
296 | [email protected] "{" | 293 | [email protected] |
297 | [email protected] " " | 294 | [email protected] |
298 | [email protected] | 295 | [email protected] |
299 | [email protected] | 296 | [email protected] |
300 | [email protected] | 297 | [email protected] |
301 | [email protected] | 298 | [email protected] "x" |
302 | [email protected] | 299 | [email protected] "." |
303 | [email protected] | 300 | [email protected] |
304 | [email protected] "x" | 301 | [email protected] "set" |
305 | [email protected] "." | 302 | [email protected] |
306 | [email protected] | 303 | [email protected] "(" |
307 | [email protected] "set" | 304 | [email protected] |
308 | [email protected] | 305 | [email protected] "true" |
309 | [email protected] "(" | 306 | [email protected] ")" |
310 | [email protected] | 307 | [email protected] ";" |
311 | [email protected] "true" | 308 | [email protected] " " |
312 | [email protected] ")" | 309 | [email protected] "}" |
313 | [email protected] ";" | 310 | [email protected] ";" |
314 | [email protected] " " | 311 | [email protected] "\n " |
315 | [email protected] "}" | 312 | [email protected] "}" |
316 | [email protected] ";" | 313 | [email protected] "\n " |
317 | [email protected] "\n " | 314 | [email protected] |
318 | [email protected] "}" | 315 | [email protected] "let" |
319 | [email protected] "\n " | 316 | [email protected] " " |
320 | [email protected] | 317 | [email protected] |
321 | [email protected] "let" | 318 | [email protected] |
322 | [email protected] " " | 319 | [email protected] "i" |
323 | [email protected] | 320 | [email protected] " " |
324 | [email protected] | 321 | [email protected] "=" |
325 | [email protected] "i" | 322 | [email protected] " " |
326 | [email protected] " " | 323 | [email protected] |
327 | [email protected] "=" | 324 | [email protected] "&" |
328 | [email protected] " " | 325 | [email protected] |
329 | [email protected] | 326 | [email protected] |
330 | [email protected] "&" | 327 | [email protected] |
331 | [email protected] | 328 | [email protected] |
332 | [email protected] | 329 | [email protected] |
333 | [email protected] | 330 | [email protected] |
334 | [email protected] | 331 | [email protected] "Cell" |
335 | [email protected] | 332 | [email protected] "::" |
336 | [email protected] | 333 | [email protected] |
337 | [email protected] "Cell" | 334 | [email protected] |
338 | [email protected] "::" | 335 | [email protected] "new" |
339 | [email protected] | 336 | [email protected] |
340 | [email protected] | 337 | [email protected] "(" |
341 | [email protected] "new" | 338 | [email protected] |
342 | [email protected] | 339 | [email protected] "false" |
343 | [email protected] "(" | 340 | [email protected] ")" |
344 | [email protected] | 341 | [email protected] ";" |
345 | [email protected] "false" | 342 | [email protected] "\n " |
346 | [email protected] ")" | 343 | [email protected] |
347 | [email protected] ";" | 344 | [email protected] "let" |
348 | [email protected] "\n " | 345 | [email protected] " " |
349 | [email protected] | 346 | [email protected] |
350 | [email protected] "let" | 347 | [email protected] |
351 | [email protected] " " | 348 | [email protected] "dont" |
352 | [email protected] | 349 | [email protected] " " |
353 | [email protected] | 350 | [email protected] "=" |
354 | [email protected] "dont" | 351 | [email protected] " " |
355 | [email protected] " " | 352 | [email protected] |
356 | [email protected] "=" | 353 | [email protected] "{" |
357 | [email protected] " " | 354 | [email protected] |
358 | [email protected] | 355 | [email protected] |
359 | [email protected] | 356 | [email protected] "|" |
360 | [email protected] "{" | 357 | [email protected] "|" |
361 | [email protected] | 358 | [email protected] |
362 | [email protected] | 359 | [email protected] |
363 | [email protected] "|" | 360 | [email protected] |
364 | [email protected] "|" | 361 | [email protected] |
365 | [email protected] | 362 | [email protected] |
366 | [email protected] | 363 | [email protected] "the" |
367 | [email protected] | 364 | [email protected] |
368 | [email protected] | 365 | [email protected] "(" |
369 | [email protected] | 366 | [email protected] |
370 | [email protected] "the" | 367 | [email protected] |
371 | [email protected] | 368 | [email protected] |
372 | [email protected] "(" | 369 | [email protected] |
373 | [email protected] | 370 | [email protected] "i" |
374 | [email protected] | 371 | [email protected] ")" |
375 | [email protected] | 372 | [email protected] "}" |
376 | [email protected] | 373 | [email protected] ";" |
377 | [email protected] "i" | 374 | [email protected] "\n " |
378 | [email protected] ")" | 375 | [email protected] |
379 | [email protected] "}" | 376 | [email protected] |
380 | [email protected] ";" | 377 | [email protected] |
381 | [email protected] "\n " | 378 | [email protected] |
382 | [email protected] | 379 | [email protected] |
383 | [email protected] | 380 | [email protected] |
384 | [email protected] | 381 | [email protected] "dont" |
385 | [email protected] | 382 | [email protected] |
386 | [email protected] | 383 | [email protected] "(" |
387 | [email protected] | 384 | [email protected] ")" |
388 | [email protected] "dont" | 385 | [email protected] ";" |
389 | [email protected] | 386 | [email protected] "\n " |
390 | [email protected] "(" | 387 | [email protected] |
391 | [email protected] ")" | 388 | [email protected] |
392 | [email protected] ";" | 389 | [email protected] |
393 | [email protected] "\n " | 390 | [email protected] |
394 | [email protected] | 391 | [email protected] |
395 | [email protected] | 392 | [email protected] "assert" |
396 | [email protected] | 393 | [email protected] "!" |
397 | [email protected] | 394 | [email protected] |
398 | [email protected] | 395 | [email protected] "(" |
399 | [email protected] "assert" | 396 | [email protected] |
400 | [email protected] "!" | 397 | [email protected] "(" |
401 | [email protected] | 398 | [email protected] "i" |
402 | [email protected] "(" | 399 | [email protected] "." |
403 | [email protected] | 400 | [email protected] "get" |
404 | [email protected] "(" | 401 | [email protected] |
405 | [email protected] "i" | 402 | [email protected] "(" |
406 | [email protected] "." | 403 | [email protected] ")" |
407 | [email protected] "get" | 404 | [email protected] ")" |
408 | [email protected] | 405 | [email protected] ")" |
409 | [email protected] "(" | 406 | [email protected] ";" |
410 | [email protected] ")" | 407 | [email protected] "\n" |
411 | [email protected] ")" | 408 | [email protected] "}" |
412 | [email protected] ")" | ||
413 | [email protected] ";" | ||
414 | [email protected] "\n" | ||
415 | [email protected] "}" | ||
416 | [email protected] "\n\n" | 409 | [email protected] "\n\n" |
417 | [email protected] | 410 | [email protected] |
418 | [email protected] "fn" | 411 | [email protected] "fn" |
@@ -424,170 +417,160 @@ [email protected] | |||
424 | [email protected] ")" | 417 | [email protected] ")" |
425 | [email protected] " " | 418 | [email protected] " " |
426 | [email protected] | 419 | [email protected] |
427 | [email protected] | 420 | [email protected] "{" |
428 | [email protected] "{" | 421 | [email protected] "\n " |
429 | [email protected] "\n " | 422 | [email protected] |
430 | [email protected] | 423 | [email protected] "loop" |
431 | [email protected] "loop" | 424 | [email protected] " " |
432 | [email protected] " " | 425 | [email protected] |
433 | [email protected] | 426 | [email protected] "{" |
434 | [email protected] | 427 | [email protected] "\n " |
435 | [email protected] "{" | 428 | [email protected] |
436 | [email protected] "\n " | 429 | [email protected] |
437 | [email protected] | 430 | [email protected] "while" |
438 | [email protected] | 431 | [email protected] " " |
439 | [email protected] "while" | 432 | [email protected] |
440 | [email protected] " " | 433 | [email protected] |
441 | [email protected] | 434 | [email protected] "(" |
442 | [email protected] | 435 | [email protected] |
443 | [email protected] "(" | 436 | [email protected] "return" |
444 | [email protected] | 437 | [email protected] ")" |
445 | [email protected] "return" | 438 | [email protected] " " |
446 | [email protected] ")" | 439 | [email protected] |
447 | [email protected] " " | 440 | [email protected] "{" |
448 | [email protected] | 441 | [email protected] "\n " |
449 | [email protected] | 442 | [email protected] |
450 | [email protected] "{" | 443 | [email protected] "if" |
451 | [email protected] "\n " | 444 | [email protected] " " |
452 | [email protected] | 445 | [email protected] |
453 | [email protected] "if" | 446 | [email protected] |
454 | [email protected] " " | 447 | [email protected] "(" |
455 | [email protected] | 448 | [email protected] |
456 | [email protected] | 449 | [email protected] "return" |
457 | [email protected] "(" | 450 | [email protected] ")" |
458 | [email protected] | 451 | [email protected] " " |
459 | [email protected] "return" | 452 | [email protected] |
460 | [email protected] ")" | 453 | [email protected] "{" |
461 | [email protected] " " | 454 | [email protected] "\n " |
462 | [email protected] | 455 | [email protected] |
463 | [email protected] | 456 | [email protected] |
464 | [email protected] "{" | 457 | [email protected] "match" |
465 | [email protected] "\n " | 458 | [email protected] " " |
466 | [email protected] | 459 | [email protected] |
467 | [email protected] | 460 | [email protected] "(" |
468 | [email protected] "match" | 461 | [email protected] |
469 | [email protected] " " | 462 | [email protected] "return" |
470 | [email protected] | 463 | [email protected] ")" |
471 | [email protected] "(" | 464 | [email protected] " " |
472 | [email protected] | 465 | [email protected] |
473 | [email protected] "return" | 466 | [email protected] "{" |
474 | [email protected] ")" | 467 | [email protected] "\n " |
475 | [email protected] " " | 468 | [email protected] |
476 | [email protected] | 469 | [email protected] |
477 | [email protected] "{" | 470 | [email protected] |
478 | [email protected] "\n " | 471 | [email protected] "1" |
479 | [email protected] | 472 | [email protected] " " |
480 | [email protected] | 473 | [email protected] "=>" |
481 | [email protected] | 474 | [email protected] " " |
482 | [email protected] "1" | 475 | [email protected] |
483 | [email protected] " " | 476 | [email protected] "{" |
484 | [email protected] "=>" | 477 | [email protected] "\n ..." |
485 | [email protected] " " | 478 | [email protected] |
486 | [email protected] | 479 | [email protected] "if" |
487 | [email protected] | 480 | [email protected] " " |
488 | [email protected] "{" | 481 | [email protected] |
489 | [email protected] "\n ..." | 482 | [email protected] |
490 | [email protected] | 483 | [email protected] "(" |
491 | [email protected] "if" | 484 | [email protected] |
492 | [email protected] " " | 485 | [email protected] "return" |
493 | [email protected] | 486 | [email protected] ")" |
494 | [email protected] | 487 | [email protected] " " |
495 | [email protected] "(" | 488 | [email protected] |
496 | [email protected] | 489 | [email protected] "{" |
497 | [email protected] "return" | 490 | [email protected] "\n ..." |
498 | [email protected] ")" | 491 | [email protected] |
499 | [email protected] " " | 492 | [email protected] "return" |
500 | [email protected] | 493 | [email protected] "\n ..." |
501 | [email protected] | 494 | [email protected] "}" |
502 | [email protected] "{" | 495 | [email protected] " " |
503 | [email protected] "\n ..." | 496 | [email protected] "else" |
504 | [email protected] | 497 | [email protected] " " |
505 | [email protected] "return" | 498 | [email protected] |
506 | [email protected] "\n ..." | 499 | [email protected] "{" |
507 | [email protected] "}" | 500 | [email protected] "\n ..." |
508 | [email protected] " " | 501 | [email protected] |
509 | [email protected] "else" | 502 | [email protected] "return" |
510 | [email protected] " " | 503 | [email protected] "\n ..." |
511 | [email protected] | 504 | [email protected] "}" |
512 | [email protected] | 505 | [email protected] "\n " |
513 | [email protected] "{" | 506 | [email protected] "}" |
514 | [email protected] "\n ..." | 507 | [email protected] "\n " |
515 | [email protected] | 508 | [email protected] |
516 | [email protected] "return" | 509 | [email protected] |
517 | [email protected] "\n ..." | 510 | [email protected] "_" |
518 | [email protected] "}" | 511 | [email protected] " " |
519 | [email protected] "\n " | 512 | [email protected] "=>" |
520 | [email protected] "}" | 513 | [email protected] " " |
521 | [email protected] "\n " | 514 | [email protected] |
522 | [email protected] | 515 | [email protected] "{" |
523 | [email protected] | 516 | [email protected] " " |
524 | [email protected] "_" | 517 | [email protected] |
525 | [email protected] " " | 518 | [email protected] "return" |
526 | [email protected] "=>" | 519 | [email protected] " " |
527 | [email protected] " " | 520 | [email protected] "}" |
528 | [email protected] | 521 | [email protected] "\n " |
529 | [email protected] | 522 | [email protected] "}" |
530 | [email protected] "{" | 523 | [email protected] ";" |
531 | [email protected] " " | 524 | [email protected] "\n " |
532 | [email protected] | 525 | [email protected] "}" |
533 | [email protected] "return" | 526 | [email protected] " " |
534 | [email protected] " " | 527 | [email protected] "else" |
535 | [email protected] "}" | 528 | [email protected] " " |
536 | [email protected] "\n " | 529 | [email protected] |
537 | [email protected] "}" | 530 | [email protected] "if" |
538 | [email protected] ";" | 531 | [email protected] " " |
539 | [email protected] "\n " | 532 | [email protected] |
540 | [email protected] "}" | 533 | [email protected] |
541 | [email protected] " " | 534 | [email protected] "(" |
542 | [email protected] "else" | 535 | [email protected] |
543 | [email protected] " " | 536 | [email protected] "return" |
544 | [email protected] | 537 | [email protected] ")" |
545 | [email protected] "if" | 538 | [email protected] " " |
546 | [email protected] " " | 539 | [email protected] |
547 | [email protected] | 540 | [email protected] "{" |
548 | [email protected] | 541 | [email protected] "\n " |
549 | [email protected] "(" | 542 | [email protected] |
550 | [email protected] | 543 | [email protected] |
551 | [email protected] "return" | 544 | [email protected] "return" |
552 | [email protected] ")" | 545 | [email protected] ";" |
553 | [email protected] " " | 546 | [email protected] "\n " |
554 | [email protected] | 547 | [email protected] "}" |
555 | [email protected] | 548 | [email protected] "\n " |
556 | [email protected] "{" | 549 | [email protected] "}" |
557 | [email protected] "\n " | 550 | [email protected] "\n " |
558 | [email protected] | 551 | [email protected] |
559 | [email protected] | 552 | [email protected] "if" |
560 | [email protected] "return" | 553 | [email protected] " " |
561 | [email protected] ";" | 554 | [email protected] |
562 | [email protected] "\n " | 555 | [email protected] |
563 | [email protected] "}" | 556 | [email protected] "(" |
564 | [email protected] "\n " | 557 | [email protected] |
565 | [email protected] "}" | 558 | [email protected] "return" |
566 | [email protected] "\n " | 559 | [email protected] ")" |
567 | [email protected] | 560 | [email protected] " " |
568 | [email protected] "if" | 561 | [email protected] |
569 | [email protected] " " | 562 | [email protected] "{" |
570 | [email protected] | 563 | [email protected] " " |
571 | [email protected] | 564 | [email protected] |
572 | [email protected] "(" | 565 | [email protected] |
573 | [email protected] | 566 | [email protected] "break" |
574 | [email protected] "return" | 567 | [email protected] ";" |
575 | [email protected] ")" | 568 | [email protected] " " |
576 | [email protected] " " | 569 | [email protected] "}" |
577 | [email protected] | 570 | [email protected] "\n " |
578 | [email protected] | 571 | [email protected] "}" |
579 | [email protected] "{" | 572 | [email protected] "\n" |
580 | [email protected] " " | 573 | [email protected] "}" |
581 | [email protected] | ||
582 | [email protected] | ||
583 | [email protected] "break" | ||
584 | [email protected] ";" | ||
585 | [email protected] " " | ||
586 | [email protected] "}" | ||
587 | [email protected] "\n " | ||
588 | [email protected] "}" | ||
589 | [email protected] "\n" | ||
590 | [email protected] "}" | ||
591 | [email protected] "\n\n" | 574 | [email protected] "\n\n" |
592 | [email protected] | 575 | [email protected] |
593 | [email protected] "fn" | 576 | [email protected] "fn" |
@@ -599,233 +582,232 @@ [email protected] | |||
599 | [email protected] ")" | 582 | [email protected] ")" |
600 | [email protected] " " | 583 | [email protected] " " |
601 | [email protected] | 584 | [email protected] |
602 | [email protected] | 585 | [email protected] "{" |
603 | [email protected] "{" | 586 | [email protected] "\n " |
604 | [email protected] "\n " | 587 | [email protected] |
605 | [email protected] | 588 | [email protected] "let" |
606 | [email protected] "let" | 589 | [email protected] " " |
607 | [email protected] " " | 590 | [email protected] |
608 | [email protected] | 591 | [email protected] "mut" |
609 | [email protected] "mut" | 592 | [email protected] " " |
610 | [email protected] " " | 593 | [email protected] |
611 | [email protected] | 594 | [email protected] "_x" |
612 | [email protected] "_x" | 595 | [email protected] ":" |
613 | [email protected] ":" | 596 | [email protected] " " |
614 | [email protected] " " | 597 | [email protected] |
615 | [email protected] | 598 | [email protected] |
616 | [email protected] | 599 | [email protected] |
617 | [email protected] | 600 | [email protected] |
618 | [email protected] | 601 | [email protected] "isize" |
619 | [email protected] "isize" | 602 | [email protected] ";" |
620 | [email protected] ";" | 603 | [email protected] "\n " |
621 | [email protected] "\n " | 604 | [email protected] |
622 | [email protected] | 605 | [email protected] "let" |
623 | [email protected] "let" | 606 | [email protected] " " |
624 | [email protected] " " | 607 | [email protected] |
625 | [email protected] | 608 | [email protected] "mut" |
626 | [email protected] "mut" | 609 | [email protected] " " |
627 | [email protected] " " | 610 | [email protected] |
628 | [email protected] | 611 | [email protected] "_y" |
629 | [email protected] "_y" | 612 | [email protected] " " |
630 | [email protected] " " | 613 | [email protected] "=" |
631 | [email protected] "=" | 614 | [email protected] " " |
632 | [email protected] " " | 615 | [email protected] |
633 | [email protected] | 616 | [email protected] |
634 | [email protected] | 617 | [email protected] "(" |
635 | [email protected] "(" | 618 | [email protected] |
636 | [email protected] | 619 | [email protected] |
637 | [email protected] | 620 | [email protected] |
638 | [email protected] | 621 | [email protected] |
639 | [email protected] | 622 | [email protected] |
640 | [email protected] | 623 | [email protected] "_x" |
641 | [email protected] "_x" | 624 | [email protected] " " |
642 | [email protected] " " | 625 | [email protected] "=" |
643 | [email protected] "=" | 626 | [email protected] " " |
644 | [email protected] " " | 627 | [email protected] |
645 | [email protected] | 628 | [email protected] "0" |
646 | [email protected] "0" | 629 | [email protected] ")" |
647 | [email protected] ")" | 630 | [email protected] " " |
648 | [email protected] " " | 631 | [email protected] "==" |
649 | [email protected] "==" | 632 | [email protected] " " |
650 | [email protected] " " | 633 | [email protected] |
651 | [email protected] | 634 | [email protected] "(" |
652 | [email protected] "(" | 635 | [email protected] |
653 | [email protected] | 636 | [email protected] |
654 | [email protected] | 637 | [email protected] |
655 | [email protected] | 638 | [email protected] |
656 | [email protected] | 639 | [email protected] |
657 | [email protected] | 640 | [email protected] "_x" |
658 | [email protected] "_x" | 641 | [email protected] " " |
659 | [email protected] " " | 642 | [email protected] "=" |
660 | [email protected] "=" | 643 | [email protected] " " |
661 | [email protected] " " | 644 | [email protected] |
662 | [email protected] | 645 | [email protected] "0" |
663 | [email protected] "0" | 646 | [email protected] ")" |
664 | [email protected] ")" | 647 | [email protected] ";" |
665 | [email protected] ";" | 648 | [email protected] "\n " |
666 | [email protected] "\n " | 649 | [email protected] |
667 | [email protected] | 650 | [email protected] "let" |
668 | [email protected] "let" | 651 | [email protected] " " |
669 | [email protected] " " | 652 | [email protected] |
670 | [email protected] | 653 | [email protected] "mut" |
671 | [email protected] "mut" | 654 | [email protected] " " |
672 | [email protected] " " | 655 | [email protected] |
673 | [email protected] | 656 | [email protected] "_z" |
674 | [email protected] "_z" | 657 | [email protected] " " |
675 | [email protected] " " | 658 | [email protected] "=" |
676 | [email protected] "=" | 659 | [email protected] " " |
677 | [email protected] " " | 660 | [email protected] |
678 | [email protected] | 661 | [email protected] |
679 | [email protected] | 662 | [email protected] "(" |
680 | [email protected] "(" | 663 | [email protected] |
681 | [email protected] | 664 | [email protected] |
682 | [email protected] | 665 | [email protected] |
683 | [email protected] | 666 | [email protected] |
684 | [email protected] | 667 | [email protected] |
685 | [email protected] | 668 | [email protected] "_x" |
686 | [email protected] "_x" | 669 | [email protected] " " |
687 | [email protected] " " | 670 | [email protected] "=" |
688 | [email protected] "=" | 671 | [email protected] " " |
689 | [email protected] " " | 672 | [email protected] |
690 | [email protected] | 673 | [email protected] "0" |
691 | [email protected] "0" | 674 | [email protected] ")" |
692 | [email protected] ")" | 675 | [email protected] " " |
693 | [email protected] " " | 676 | [email protected] "<" |
694 | [email protected] "<" | 677 | [email protected] " " |
695 | [email protected] " " | 678 | [email protected] |
696 | [email protected] | 679 | [email protected] "(" |
697 | [email protected] "(" | 680 | [email protected] |
698 | [email protected] | 681 | [email protected] |
699 | [email protected] | 682 | [email protected] |
700 | [email protected] | 683 | [email protected] |
701 | [email protected] | 684 | [email protected] |
702 | [email protected] | 685 | [email protected] "_x" |
703 | [email protected] "_x" | 686 | [email protected] " " |
704 | [email protected] " " | 687 | [email protected] "=" |
705 | [email protected] "=" | 688 | [email protected] " " |
706 | [email protected] " " | 689 | [email protected] |
707 | [email protected] | 690 | [email protected] "0" |
708 | [email protected] "0" | 691 | [email protected] ")" |
709 | [email protected] ")" | 692 | [email protected] ";" |
710 | [email protected] ";" | 693 | [email protected] "\n " |
711 | [email protected] "\n " | 694 | [email protected] |
712 | [email protected] | 695 | [email protected] "let" |
713 | [email protected] "let" | 696 | [email protected] " " |
714 | [email protected] " " | 697 | [email protected] |
715 | [email protected] | 698 | [email protected] |
716 | [email protected] | 699 | [email protected] "_a" |
717 | [email protected] "_a" | 700 | [email protected] " " |
718 | [email protected] " " | 701 | [email protected] "=" |
719 | [email protected] "=" | 702 | [email protected] " " |
720 | [email protected] " " | 703 | [email protected] |
721 | [email protected] | 704 | [email protected] |
722 | [email protected] | 705 | [email protected] "(" |
723 | [email protected] "(" | 706 | [email protected] |
724 | [email protected] | 707 | [email protected] |
725 | [email protected] | 708 | [email protected] |
726 | [email protected] | 709 | [email protected] |
727 | [email protected] | 710 | [email protected] |
728 | [email protected] | 711 | [email protected] "_x" |
729 | [email protected] "_x" | 712 | [email protected] " " |
730 | [email protected] " " | 713 | [email protected] "+=" |
731 | [email protected] "+=" | 714 | [email protected] " " |
732 | [email protected] " " | 715 | [email protected] |
733 | [email protected] | 716 | [email protected] "0" |
734 | [email protected] "0" | 717 | [email protected] ")" |
735 | [email protected] ")" | 718 | [email protected] " " |
736 | [email protected] " " | 719 | [email protected] "==" |
737 | [email protected] "==" | 720 | [email protected] " " |
738 | [email protected] " " | 721 | [email protected] |
739 | [email protected] | 722 | [email protected] "(" |
740 | [email protected] "(" | 723 | [email protected] |
741 | [email protected] | 724 | [email protected] |
742 | [email protected] | 725 | [email protected] |
743 | [email protected] | 726 | [email protected] |
744 | [email protected] | 727 | [email protected] |
745 | [email protected] | 728 | [email protected] "_x" |
746 | [email protected] "_x" | 729 | [email protected] " " |
747 | [email protected] " " | 730 | [email protected] "=" |
748 | [email protected] "=" | 731 | [email protected] " " |
749 | [email protected] " " | 732 | [email protected] |
750 | [email protected] | 733 | [email protected] "0" |
751 | [email protected] "0" | 734 | [email protected] ")" |
752 | [email protected] ")" | 735 | [email protected] ";" |
753 | [email protected] ";" | 736 | [email protected] "\n " |
754 | [email protected] "\n " | 737 | [email protected] |
755 | [email protected] | 738 | [email protected] "let" |
756 | [email protected] "let" | 739 | [email protected] " " |
757 | [email protected] " " | 740 | [email protected] |
758 | [email protected] | 741 | [email protected] |
759 | [email protected] | 742 | [email protected] "_b" |
760 | [email protected] "_b" | 743 | [email protected] " " |
761 | [email protected] " " | 744 | [email protected] "=" |
762 | [email protected] "=" | 745 | [email protected] " " |
763 | [email protected] " " | 746 | [email protected] |
764 | [email protected] | 747 | [email protected] |
765 | [email protected] | 748 | [email protected] |
766 | [email protected] | 749 | [email protected] |
767 | [email protected] | 750 | [email protected] |
768 | [email protected] | 751 | [email protected] |
769 | [email protected] | 752 | [email protected] "swap" |
770 | [email protected] "swap" | 753 | [email protected] |
771 | [email protected] | 754 | [email protected] "(" |
772 | [email protected] "(" | 755 | [email protected] |
773 | [email protected] | 756 | [email protected] "&" |
774 | [email protected] "&" | 757 | [email protected] "mut" |
775 | [email protected] "mut" | 758 | [email protected] " " |
776 | [email protected] " " | 759 | [email protected] |
777 | [email protected] | 760 | [email protected] |
778 | [email protected] | 761 | [email protected] |
779 | [email protected] | 762 | [email protected] |
780 | [email protected] | 763 | [email protected] "_y" |
781 | [email protected] "_y" | 764 | [email protected] "," |
782 | [email protected] "," | 765 | [email protected] " " |
783 | [email protected] " " | 766 | [email protected] |
784 | [email protected] | 767 | [email protected] "&" |
785 | [email protected] "&" | 768 | [email protected] "mut" |
786 | [email protected] "mut" | 769 | [email protected] " " |
787 | [email protected] " " | 770 | [email protected] |
788 | [email protected] | 771 | [email protected] |
789 | [email protected] | 772 | [email protected] |
790 | [email protected] | 773 | [email protected] |
791 | [email protected] | 774 | [email protected] "_z" |
792 | [email protected] "_z" | 775 | [email protected] ")" |
793 | [email protected] ")" | 776 | [email protected] " " |
794 | [email protected] " " | 777 | [email protected] "==" |
795 | [email protected] "==" | 778 | [email protected] " " |
796 | [email protected] " " | 779 | [email protected] |
797 | [email protected] | 780 | [email protected] |
798 | [email protected] | 781 | [email protected] |
799 | [email protected] | 782 | [email protected] |
800 | [email protected] | 783 | [email protected] |
801 | [email protected] | 784 | [email protected] "swap" |
802 | [email protected] "swap" | 785 | [email protected] |
803 | [email protected] | 786 | [email protected] "(" |
804 | [email protected] "(" | 787 | [email protected] |
805 | [email protected] | 788 | [email protected] "&" |
806 | [email protected] "&" | 789 | [email protected] "mut" |
807 | [email protected] "mut" | 790 | [email protected] " " |
808 | [email protected] " " | 791 | [email protected] |
809 | [email protected] | 792 | [email protected] |
810 | [email protected] | 793 | [email protected] |
811 | [email protected] | 794 | [email protected] |
812 | [email protected] | 795 | [email protected] "_y" |
813 | [email protected] "_y" | 796 | [email protected] "," |
814 | [email protected] "," | 797 | [email protected] " " |
815 | [email protected] " " | 798 | [email protected] |
816 | [email protected] | 799 | [email protected] "&" |
817 | [email protected] "&" | 800 | [email protected] "mut" |
818 | [email protected] "mut" | 801 | [email protected] " " |
819 | [email protected] " " | 802 | [email protected] |
820 | [email protected] | 803 | [email protected] |
821 | [email protected] | 804 | [email protected] |
822 | [email protected] | 805 | [email protected] |
823 | [email protected] | 806 | [email protected] "_z" |
824 | [email protected] "_z" | 807 | [email protected] ")" |
825 | [email protected] ")" | 808 | [email protected] ";" |
826 | [email protected] ";" | 809 | [email protected] "\n" |
827 | [email protected] "\n" | 810 | [email protected] "}" |
828 | [email protected] "}" | ||
829 | [email protected] "\n\n" | 811 | [email protected] "\n\n" |
830 | [email protected] | 812 | [email protected] |
831 | [email protected] "fn" | 813 | [email protected] "fn" |
@@ -846,167 +828,165 @@ [email protected] | |||
846 | [email protected] "usize" | 828 | [email protected] "usize" |
847 | [email protected] " " | 829 | [email protected] " " |
848 | [email protected] | 830 | [email protected] |
849 | [email protected] | 831 | [email protected] "{" |
850 | [email protected] "{" | 832 | [email protected] "\n " |
851 | [email protected] "\n " | 833 | [email protected] |
852 | [email protected] | 834 | [email protected] "fn" |
853 | [email protected] "fn" | 835 | [email protected] " " |
854 | [email protected] " " | 836 | [email protected] |
855 | [email protected] | 837 | [email protected] "p" |
856 | [email protected] "p" | 838 | [email protected] |
857 | [email protected] | 839 | [email protected] "(" |
858 | [email protected] "(" | 840 | [email protected] ")" |
859 | [email protected] ")" | 841 | [email protected] " " |
860 | [email protected] " " | 842 | [email protected] |
861 | [email protected] | 843 | [email protected] "->" |
862 | [email protected] "->" | 844 | [email protected] " " |
863 | [email protected] " " | 845 | [email protected] |
864 | [email protected] | 846 | [email protected] |
865 | [email protected] | 847 | [email protected] |
866 | [email protected] | 848 | [email protected] |
867 | [email protected] | 849 | [email protected] "bool" |
868 | [email protected] "bool" | 850 | [email protected] " " |
869 | [email protected] " " | 851 | [email protected] |
870 | [email protected] | 852 | [email protected] "{" |
871 | [email protected] | 853 | [email protected] " " |
872 | [email protected] "{" | 854 | [email protected] |
873 | [email protected] " " | 855 | [email protected] "true" |
874 | [email protected] | 856 | [email protected] " " |
875 | [email protected] "true" | 857 | [email protected] "}" |
876 | [email protected] " " | 858 | [email protected] "\n " |
877 | [email protected] "}" | 859 | [email protected] |
878 | [email protected] "\n " | 860 | [email protected] "let" |
879 | [email protected] | 861 | [email protected] " " |
880 | [email protected] "let" | 862 | [email protected] |
881 | [email protected] " " | 863 | [email protected] |
882 | [email protected] | 864 | [email protected] "_a" |
883 | [email protected] | 865 | [email protected] " " |
884 | [email protected] "_a" | 866 | [email protected] "=" |
885 | [email protected] " " | 867 | [email protected] " " |
886 | [email protected] "=" | 868 | [email protected] |
887 | [email protected] " " | 869 | [email protected] "(" |
888 | [email protected] | 870 | [email protected] |
889 | [email protected] "(" | 871 | [email protected] |
890 | [email protected] | 872 | [email protected] |
891 | [email protected] | 873 | [email protected] |
892 | [email protected] | 874 | [email protected] |
893 | [email protected] | 875 | [email protected] "assert" |
894 | [email protected] | 876 | [email protected] "!" |
895 | [email protected] "assert" | 877 | [email protected] |
896 | [email protected] "!" | 878 | [email protected] "(" |
897 | [email protected] | 879 | [email protected] |
898 | [email protected] "(" | 880 | [email protected] "(" |
899 | [email protected] | 881 | [email protected] "true" |
900 | [email protected] "(" | 882 | [email protected] ")" |
901 | [email protected] "true" | 883 | [email protected] ")" |
902 | [email protected] ")" | 884 | [email protected] " " |
903 | [email protected] ")" | 885 | [email protected] "==" |
904 | [email protected] " " | 886 | [email protected] " " |
905 | [email protected] "==" | 887 | [email protected] |
906 | [email protected] " " | 888 | [email protected] "(" |
907 | [email protected] | 889 | [email protected] |
908 | [email protected] "(" | 890 | [email protected] |
909 | [email protected] | 891 | [email protected] |
910 | [email protected] | 892 | [email protected] |
911 | [email protected] | 893 | [email protected] "assert" |
912 | [email protected] | 894 | [email protected] "!" |
913 | [email protected] "assert" | 895 | [email protected] |
914 | [email protected] "!" | 896 | [email protected] "(" |
915 | [email protected] | 897 | [email protected] "p" |
916 | [email protected] "(" | 898 | [email protected] |
917 | [email protected] "p" | 899 | [email protected] "(" |
918 | [email protected] | 900 | [email protected] ")" |
919 | [email protected] "(" | 901 | [email protected] ")" |
920 | [email protected] ")" | 902 | [email protected] ")" |
921 | [email protected] ")" | 903 | [email protected] ")" |
922 | [email protected] ")" | 904 | [email protected] ";" |
923 | [email protected] ")" | 905 | [email protected] "\n " |
924 | [email protected] ";" | 906 | [email protected] |
925 | [email protected] "\n " | 907 | [email protected] "let" |
926 | [email protected] | 908 | [email protected] " " |
927 | [email protected] "let" | 909 | [email protected] |
928 | [email protected] " " | 910 | [email protected] |
929 | [email protected] | 911 | [email protected] "_c" |
930 | [email protected] | 912 | [email protected] " " |
931 | [email protected] "_c" | 913 | [email protected] "=" |
932 | [email protected] " " | 914 | [email protected] " " |
933 | [email protected] "=" | 915 | [email protected] |
934 | [email protected] " " | 916 | [email protected] "(" |
935 | [email protected] | 917 | [email protected] |
936 | [email protected] "(" | 918 | [email protected] |
937 | [email protected] | 919 | [email protected] |
938 | [email protected] | 920 | [email protected] |
939 | [email protected] | 921 | [email protected] |
940 | [email protected] | 922 | [email protected] "assert" |
941 | [email protected] | 923 | [email protected] "!" |
942 | [email protected] "assert" | 924 | [email protected] |
943 | [email protected] "!" | 925 | [email protected] "(" |
944 | [email protected] | 926 | [email protected] |
945 | [email protected] "(" | 927 | [email protected] "(" |
946 | [email protected] | 928 | [email protected] "p" |
947 | [email protected] "(" | 929 | [email protected] |
948 | [email protected] "p" | 930 | [email protected] "(" |
949 | [email protected] | 931 | [email protected] ")" |
950 | [email protected] "(" | 932 | [email protected] ")" |
951 | [email protected] ")" | 933 | [email protected] ")" |
952 | [email protected] ")" | 934 | [email protected] " " |
953 | [email protected] ")" | 935 | [email protected] "==" |
954 | [email protected] " " | 936 | [email protected] " " |
955 | [email protected] "==" | 937 | [email protected] |
956 | [email protected] " " | 938 | [email protected] "(" |
957 | [email protected] | 939 | [email protected] ")" |
958 | [email protected] "(" | 940 | [email protected] ")" |
959 | [email protected] ")" | 941 | [email protected] ";" |
960 | [email protected] ")" | 942 | [email protected] "\n " |
961 | [email protected] ";" | 943 | [email protected] |
962 | [email protected] "\n " | 944 | [email protected] "let" |
963 | [email protected] | 945 | [email protected] " " |
964 | [email protected] "let" | 946 | [email protected] |
965 | [email protected] " " | 947 | [email protected] |
966 | [email protected] | 948 | [email protected] "_b" |
967 | [email protected] | 949 | [email protected] ":" |
968 | [email protected] "_b" | 950 | [email protected] " " |
969 | [email protected] ":" | 951 | [email protected] |
970 | [email protected] " " | 952 | [email protected] |
971 | [email protected] | 953 | [email protected] |
972 | [email protected] | 954 | [email protected] |
973 | [email protected] | 955 | [email protected] "bool" |
974 | [email protected] | 956 | [email protected] " " |
975 | [email protected] "bool" | 957 | [email protected] "=" |
976 | [email protected] " " | 958 | [email protected] " " |
977 | [email protected] "=" | 959 | [email protected] |
978 | [email protected] " " | 960 | [email protected] "(" |
979 | [email protected] | 961 | [email protected] |
980 | [email protected] "(" | 962 | [email protected] |
981 | [email protected] | 963 | [email protected] |
982 | [email protected] | 964 | [email protected] |
983 | [email protected] | 965 | [email protected] |
984 | [email protected] | 966 | [email protected] "println" |
985 | [email protected] | 967 | [email protected] "!" |
986 | [email protected] "println" | 968 | [email protected] |
987 | [email protected] "!" | 969 | [email protected] "(" |
988 | [email protected] | 970 | [email protected] "\"{}\"" |
989 | [email protected] "(" | 971 | [email protected] "," |
990 | [email protected] "\"{}\"" | 972 | [email protected] " " |
991 | [email protected] "," | 973 | [email protected] "0" |
992 | [email protected] " " | 974 | [email protected] ")" |
993 | [email protected] "0" | 975 | [email protected] " " |
994 | [email protected] ")" | 976 | [email protected] "==" |
995 | [email protected] " " | 977 | [email protected] " " |
996 | [email protected] "==" | 978 | [email protected] |
997 | [email protected] " " | 979 | [email protected] "(" |
998 | [email protected] | 980 | [email protected] |
999 | [email protected] "(" | 981 | [email protected] "return" |
1000 | [email protected] | 982 | [email protected] " " |
1001 | [email protected] "return" | 983 | [email protected] |
1002 | [email protected] " " | 984 | [email protected] "0" |
1003 | [email protected] | 985 | [email protected] ")" |
1004 | [email protected] "0" | 986 | [email protected] ")" |
1005 | [email protected] ")" | 987 | [email protected] ";" |
1006 | [email protected] ")" | 988 | [email protected] "\n" |
1007 | [email protected] ";" | 989 | [email protected] "}" |
1008 | [email protected] "\n" | ||
1009 | [email protected] "}" | ||
1010 | [email protected] "\n\n" | 990 | [email protected] "\n\n" |
1011 | [email protected] | 991 | [email protected] |
1012 | [email protected] "fn" | 992 | [email protected] "fn" |
@@ -1018,144 +998,138 @@ [email protected] | |||
1018 | [email protected] ")" | 998 | [email protected] ")" |
1019 | [email protected] " " | 999 | [email protected] " " |
1020 | [email protected] | 1000 | [email protected] |
1021 | [email protected] | 1001 | [email protected] "{" |
1022 | [email protected] "{" | 1002 | [email protected] "\n " |
1023 | [email protected] "\n " | 1003 | [email protected] |
1024 | [email protected] | 1004 | [email protected] |
1025 | [email protected] | 1005 | [email protected] "loop" |
1026 | [email protected] "loop" | 1006 | [email protected] " " |
1027 | [email protected] " " | 1007 | [email protected] |
1028 | [email protected] | 1008 | [email protected] "{" |
1029 | [email protected] | 1009 | [email protected] " " |
1030 | [email protected] "{" | 1010 | [email protected] |
1031 | [email protected] " " | 1011 | [email protected] "if" |
1032 | [email protected] | 1012 | [email protected] " " |
1033 | [email protected] "if" | 1013 | [email protected] |
1034 | [email protected] " " | 1014 | [email protected] |
1035 | [email protected] | 1015 | [email protected] "break" |
1036 | [email protected] | 1016 | [email protected] " " |
1037 | [email protected] "break" | 1017 | [email protected] |
1038 | [email protected] " " | 1018 | [email protected] "{" |
1039 | [email protected] | 1019 | [email protected] " " |
1040 | [email protected] | 1020 | [email protected] "}" |
1041 | [email protected] "{" | 1021 | [email protected] " " |
1042 | [email protected] " " | 1022 | [email protected] "}" |
1043 | [email protected] "}" | 1023 | [email protected] "\n " |
1044 | [email protected] " " | 1024 | [email protected] |
1045 | [email protected] "}" | 1025 | [email protected] "let" |
1046 | [email protected] "\n " | 1026 | [email protected] " " |
1047 | [email protected] | 1027 | [email protected] |
1048 | [email protected] "let" | 1028 | [email protected] "mut" |
1049 | [email protected] " " | 1029 | [email protected] " " |
1050 | [email protected] | 1030 | [email protected] |
1051 | [email protected] "mut" | 1031 | [email protected] "i" |
1052 | [email protected] " " | 1032 | [email protected] " " |
1053 | [email protected] | 1033 | [email protected] "=" |
1054 | [email protected] "i" | 1034 | [email protected] " " |
1055 | [email protected] " " | 1035 | [email protected] |
1056 | [email protected] "=" | 1036 | [email protected] "0" |
1057 | [email protected] " " | 1037 | [email protected] ";" |
1058 | [email protected] | 1038 | [email protected] "\n " |
1059 | [email protected] "0" | 1039 | [email protected] |
1060 | [email protected] ";" | 1040 | [email protected] "loop" |
1061 | [email protected] "\n " | 1041 | [email protected] " " |
1062 | [email protected] | 1042 | [email protected] |
1063 | [email protected] "loop" | 1043 | [email protected] "{" |
1064 | [email protected] " " | 1044 | [email protected] " " |
1065 | [email protected] | 1045 | [email protected] |
1066 | [email protected] | 1046 | [email protected] |
1067 | [email protected] "{" | 1047 | [email protected] |
1068 | [email protected] " " | 1048 | [email protected] |
1069 | [email protected] | 1049 | [email protected] |
1070 | [email protected] | 1050 | [email protected] |
1071 | [email protected] | 1051 | [email protected] "i" |
1072 | [email protected] | 1052 | [email protected] " " |
1073 | [email protected] | 1053 | [email protected] "+=" |
1074 | [email protected] | 1054 | [email protected] " " |
1075 | [email protected] "i" | 1055 | [email protected] |
1076 | [email protected] " " | 1056 | [email protected] "1" |
1077 | [email protected] "+=" | 1057 | [email protected] ";" |
1078 | [email protected] " " | 1058 | [email protected] " " |
1079 | [email protected] | 1059 | [email protected] |
1080 | [email protected] "1" | 1060 | [email protected] |
1081 | [email protected] ";" | 1061 | [email protected] "if" |
1082 | [email protected] " " | 1062 | [email protected] " " |
1083 | [email protected] | 1063 | [email protected] |
1084 | [email protected] | 1064 | [email protected] |
1085 | [email protected] "if" | 1065 | [email protected] |
1086 | [email protected] " " | 1066 | [email protected] |
1087 | [email protected] | 1067 | [email protected] |
1088 | [email protected] | 1068 | [email protected] |
1089 | [email protected] | 1069 | [email protected] "i" |
1090 | [email protected] | 1070 | [email protected] " " |
1091 | [email protected] | 1071 | [email protected] "==" |
1092 | [email protected] | 1072 | [email protected] " " |
1093 | [email protected] "i" | 1073 | [email protected] |
1094 | [email protected] " " | 1074 | [email protected] "1" |
1095 | [email protected] "==" | 1075 | [email protected] " " |
1096 | [email protected] " " | 1076 | [email protected] |
1097 | [email protected] | 1077 | [email protected] "{" |
1098 | [email protected] "1" | 1078 | [email protected] " " |
1099 | [email protected] " " | 1079 | [email protected] |
1100 | [email protected] | 1080 | [email protected] "match" |
1101 | [email protected] | 1081 | [email protected] " " |
1102 | [email protected] "{" | 1082 | [email protected] |
1103 | [email protected] " " | 1083 | [email protected] "(" |
1104 | [email protected] | 1084 | [email protected] |
1105 | [email protected] "match" | 1085 | [email protected] "continue" |
1106 | [email protected] " " | 1086 | [email protected] ")" |
1107 | [email protected] | 1087 | [email protected] " " |
1108 | [email protected] "(" | 1088 | [email protected] |
1109 | [email protected] | 1089 | [email protected] "{" |
1110 | [email protected] "continue" | 1090 | [email protected] " " |
1111 | [email protected] ")" | 1091 | [email protected] |
1112 | [email protected] " " | 1092 | [email protected] |
1113 | [email protected] | 1093 | [email protected] |
1114 | [email protected] "{" | 1094 | [email protected] "1" |
1115 | [email protected] " " | 1095 | [email protected] " " |
1116 | [email protected] | 1096 | [email protected] "=>" |
1117 | [email protected] | 1097 | [email protected] " " |
1118 | [email protected] | 1098 | [email protected] |
1119 | [email protected] "1" | 1099 | [email protected] "{" |
1120 | [email protected] " " | 1100 | [email protected] " " |
1121 | [email protected] "=>" | 1101 | [email protected] "}" |
1122 | [email protected] " " | 1102 | [email protected] "," |
1123 | [email protected] | 1103 | [email protected] " " |
1124 | [email protected] | 1104 | [email protected] |
1125 | [email protected] "{" | 1105 | [email protected] |
1126 | [email protected] " " | 1106 | [email protected] "_" |
1127 | [email protected] "}" | 1107 | [email protected] " " |
1128 | [email protected] "," | 1108 | [email protected] "=>" |
1129 | [email protected] " " | 1109 | [email protected] " " |
1130 | [email protected] | 1110 | [email protected] |
1131 | [email protected] | 1111 | [email protected] |
1132 | [email protected] "_" | 1112 | [email protected] |
1133 | [email protected] " " | 1113 | [email protected] |
1134 | [email protected] "=>" | 1114 | [email protected] "panic" |
1135 | [email protected] " " | 1115 | [email protected] "!" |
1136 | [email protected] | 1116 | [email protected] |
1137 | [email protected] | 1117 | [email protected] "(" |
1138 | [email protected] | 1118 | [email protected] "\"wat\"" |
1139 | [email protected] | 1119 | [email protected] ")" |
1140 | [email protected] "panic" | 1120 | [email protected] " " |
1141 | [email protected] "!" | 1121 | [email protected] "}" |
1142 | [email protected] | 1122 | [email protected] " " |
1143 | [email protected] "(" | 1123 | [email protected] "}" |
1144 | [email protected] "\"wat\"" | 1124 | [email protected] "\n " |
1145 | [email protected] ")" | 1125 | [email protected] |
1146 | [email protected] " " | 1126 | [email protected] |
1147 | [email protected] "}" | 1127 | [email protected] "break" |
1148 | [email protected] " " | 1128 | [email protected] ";" |
1149 | [email protected] "}" | 1129 | [email protected] " " |
1150 | [email protected] "\n " | 1130 | [email protected] "}" |
1151 | [email protected] | 1131 | [email protected] "\n" |
1152 | [email protected] | 1132 | [email protected] "}" |
1153 | [email protected] "break" | ||
1154 | [email protected] ";" | ||
1155 | [email protected] " " | ||
1156 | [email protected] "}" | ||
1157 | [email protected] "\n" | ||
1158 | [email protected] "}" | ||
1159 | [email protected] "\n\n" | 1133 | [email protected] "\n\n" |
1160 | [email protected] | 1134 | [email protected] |
1161 | [email protected] "fn" | 1135 | [email protected] "fn" |
@@ -1167,31 +1141,30 @@ [email protected] | |||
1167 | [email protected] ")" | 1141 | [email protected] ")" |
1168 | [email protected] " " | 1142 | [email protected] " " |
1169 | [email protected] | 1143 | [email protected] |
1170 | [email protected] | 1144 | [email protected] "{" |
1171 | [email protected] "{" | 1145 | [email protected] " " |
1172 | [email protected] " " | 1146 | [email protected] |
1173 | [email protected] | 1147 | [email protected] "let" |
1174 | [email protected] "let" | 1148 | [email protected] " " |
1175 | [email protected] " " | 1149 | [email protected] |
1176 | [email protected] | 1150 | [email protected] |
1177 | [email protected] | 1151 | [email protected] "_evil" |
1178 | [email protected] "_evil" | 1152 | [email protected] " " |
1179 | [email protected] " " | 1153 | [email protected] "=" |
1180 | [email protected] "=" | 1154 | [email protected] " " |
1181 | [email protected] " " | 1155 | [email protected] |
1182 | [email protected] | 1156 | [email protected] |
1183 | [email protected] | 1157 | [email protected] |
1184 | [email protected] | 1158 | [email protected] |
1185 | [email protected] | 1159 | [email protected] "println" |
1186 | [email protected] "println" | 1160 | [email protected] "!" |
1187 | [email protected] "!" | 1161 | [email protected] |
1188 | [email protected] | 1162 | [email protected] "(" |
1189 | [email protected] "(" | 1163 | [email protected] "\"lincoln\"" |
1190 | [email protected] "\"lincoln\"" | 1164 | [email protected] ")" |
1191 | [email protected] ")" | 1165 | [email protected] ";" |
1192 | [email protected] ";" | 1166 | [email protected] " " |
1193 | [email protected] " " | 1167 | [email protected] "}" |
1194 | [email protected] "}" | ||
1195 | [email protected] "\n\n" | 1168 | [email protected] "\n\n" |
1196 | [email protected] | 1169 | [email protected] |
1197 | [email protected] "fn" | 1170 | [email protected] "fn" |
@@ -1203,114 +1176,113 @@ [email protected] | |||
1203 | [email protected] ")" | 1176 | [email protected] ")" |
1204 | [email protected] " " | 1177 | [email protected] " " |
1205 | [email protected] | 1178 | [email protected] |
1206 | [email protected] | 1179 | [email protected] "{" |
1207 | [email protected] "{" | 1180 | [email protected] "\n " |
1208 | [email protected] "\n " | 1181 | [email protected] |
1209 | [email protected] | 1182 | [email protected] |
1210 | [email protected] | 1183 | [email protected] |
1211 | [email protected] | 1184 | [email protected] |
1212 | [email protected] | 1185 | [email protected] |
1213 | [email protected] | 1186 | [email protected] "assert_eq" |
1214 | [email protected] "assert_eq" | 1187 | [email protected] "!" |
1215 | [email protected] "!" | 1188 | [email protected] |
1216 | [email protected] | 1189 | [email protected] "(" |
1217 | [email protected] "(" | 1190 | [email protected] "String" |
1218 | [email protected] "String" | 1191 | [email protected] ":" |
1219 | [email protected] ":" | 1192 | [email protected] ":" |
1220 | [email protected] ":" | 1193 | [email protected] "from" |
1221 | [email protected] "from" | 1194 | [email protected] |
1222 | [email protected] | 1195 | [email protected] "(" |
1223 | [email protected] "(" | 1196 | [email protected] "\".................... ..." |
1224 | [email protected] "\".................... ..." | 1197 | [email protected] ")" |
1225 | [email protected] ")" | 1198 | [email protected] "," |
1226 | [email protected] "," | 1199 | [email protected] "\n " |
1227 | [email protected] "\n " | 1200 | [email protected] "format" |
1228 | [email protected] "format" | 1201 | [email protected] "!" |
1229 | [email protected] "!" | 1202 | [email protected] |
1230 | [email protected] | 1203 | [email protected] "(" |
1231 | [email protected] "(" | 1204 | [email protected] "\"{:?}\"" |
1232 | [email protected] "\"{:?}\"" | 1205 | [email protected] "," |
1233 | [email protected] "," | 1206 | [email protected] " " |
1234 | [email protected] " " | 1207 | [email protected] "." |
1235 | [email protected] "." | 1208 | [email protected] "." |
1236 | [email protected] "." | 1209 | [email protected] " " |
1237 | [email protected] " " | 1210 | [email protected] "." |
1238 | [email protected] "." | 1211 | [email protected] "." |
1239 | [email protected] "." | 1212 | [email protected] " " |
1240 | [email protected] " " | 1213 | [email protected] "." |
1241 | [email protected] "." | 1214 | [email protected] "." |
1242 | [email protected] "." | 1215 | [email protected] " " |
1243 | [email protected] " " | 1216 | [email protected] "." |
1244 | [email protected] "." | 1217 | [email protected] "." |
1245 | [email protected] "." | 1218 | [email protected] " " |
1246 | [email protected] " " | 1219 | [email protected] "." |
1247 | [email protected] "." | 1220 | [email protected] "." |
1248 | [email protected] "." | 1221 | [email protected] " " |
1249 | [email protected] " " | 1222 | [email protected] "." |
1250 | [email protected] "." | 1223 | [email protected] "." |
1251 | [email protected] "." | 1224 | [email protected] " " |
1252 | [email protected] " " | 1225 | [email protected] "." |
1253 | [email protected] "." | 1226 | [email protected] "." |
1254 | [email protected] "." | 1227 | [email protected] " " |
1255 | [email protected] " " | 1228 | [email protected] "." |
1256 | [email protected] "." | 1229 | [email protected] "." |
1257 | [email protected] "." | 1230 | [email protected] " " |
1258 | [email protected] " " | 1231 | [email protected] "." |
1259 | [email protected] "." | 1232 | [email protected] "." |
1260 | [email protected] "." | 1233 | [email protected] " " |
1261 | [email protected] " " | 1234 | [email protected] "." |
1262 | [email protected] "." | 1235 | [email protected] "." |
1263 | [email protected] "." | 1236 | [email protected] " " |
1264 | [email protected] " " | 1237 | [email protected] "." |
1265 | [email protected] "." | 1238 | [email protected] "." |
1266 | [email protected] "." | 1239 | [email protected] " " |
1267 | [email protected] " " | 1240 | [email protected] "." |
1268 | [email protected] "." | 1241 | [email protected] "." |
1269 | [email protected] "." | 1242 | [email protected] " " |
1270 | [email protected] " " | 1243 | [email protected] "." |
1271 | [email protected] "." | 1244 | [email protected] "." |
1272 | [email protected] "." | 1245 | [email protected] "\n ..." |
1273 | [email protected] "\n ..." | 1246 | [email protected] "." |
1274 | [email protected] "." | 1247 | [email protected] "." |
1275 | [email protected] "." | 1248 | [email protected] " " |
1276 | [email protected] " " | 1249 | [email protected] "." |
1277 | [email protected] "." | 1250 | [email protected] "." |
1278 | [email protected] "." | 1251 | [email protected] " " |
1279 | [email protected] " " | 1252 | [email protected] "." |
1280 | [email protected] "." | 1253 | [email protected] "." |
1281 | [email protected] "." | 1254 | [email protected] " " |
1282 | [email protected] " " | 1255 | [email protected] "." |
1283 | [email protected] "." | 1256 | [email protected] "." |
1284 | [email protected] "." | 1257 | [email protected] " " |
1285 | [email protected] " " | 1258 | [email protected] "." |
1286 | [email protected] "." | 1259 | [email protected] "." |
1287 | [email protected] "." | 1260 | [email protected] " " |
1288 | [email protected] " " | 1261 | [email protected] "." |
1289 | [email protected] "." | 1262 | [email protected] "." |
1290 | [email protected] "." | 1263 | [email protected] " " |
1291 | [email protected] " " | 1264 | [email protected] "." |
1292 | [email protected] "." | 1265 | [email protected] "." |
1293 | [email protected] "." | 1266 | [email protected] " " |
1294 | [email protected] " " | 1267 | [email protected] "." |
1295 | [email protected] "." | 1268 | [email protected] "." |
1296 | [email protected] "." | 1269 | [email protected] " " |
1297 | [email protected] " " | 1270 | [email protected] "." |
1298 | [email protected] "." | 1271 | [email protected] "." |
1299 | [email protected] "." | 1272 | [email protected] " " |
1300 | [email protected] " " | 1273 | [email protected] "." |
1301 | [email protected] "." | 1274 | [email protected] "." |
1302 | [email protected] "." | 1275 | [email protected] " " |
1303 | [email protected] " " | 1276 | [email protected] "." |
1304 | [email protected] "." | 1277 | [email protected] "." |
1305 | [email protected] "." | 1278 | [email protected] " " |
1306 | [email protected] " " | 1279 | [email protected] "." |
1307 | [email protected] "." | 1280 | [email protected] "." |
1308 | [email protected] "." | 1281 | [email protected] ")" |
1309 | [email protected] ")" | 1282 | [email protected] ")" |
1310 | [email protected] ")" | 1283 | [email protected] ";" |
1311 | [email protected] ";" | 1284 | [email protected] "\n" |
1312 | [email protected] "\n" | 1285 | [email protected] "}" |
1313 | [email protected] "}" | ||
1314 | [email protected] "\n\n" | 1286 | [email protected] "\n\n" |
1315 | [email protected] | 1287 | [email protected] |
1316 | [email protected] "fn" | 1288 | [email protected] "fn" |
@@ -1333,170 +1305,168 @@ [email protected] | |||
1333 | [email protected] ")" | 1305 | [email protected] ")" |
1334 | [email protected] " " | 1306 | [email protected] " " |
1335 | [email protected] | 1307 | [email protected] |
1336 | [email protected] | 1308 | [email protected] "{" |
1337 | [email protected] "{" | 1309 | [email protected] "\n " |
1338 | [email protected] "\n " | 1310 | [email protected] |
1339 | [email protected] | 1311 | [email protected] "if" |
1340 | [email protected] "if" | 1312 | [email protected] " " |
1341 | [email protected] " " | 1313 | [email protected] |
1342 | [email protected] | 1314 | [email protected] |
1343 | [email protected] | 1315 | [email protected] |
1344 | [email protected] | 1316 | [email protected] |
1345 | [email protected] | 1317 | [email protected] |
1346 | [email protected] | 1318 | [email protected] |
1347 | [email protected] | 1319 | [email protected] "u8" |
1348 | [email protected] "u8" | 1320 | [email protected] " " |
1349 | [email protected] " " | 1321 | [email protected] "!=" |
1350 | [email protected] "!=" | 1322 | [email protected] " " |
1351 | [email protected] " " | 1323 | [email protected] |
1352 | [email protected] | 1324 | [email protected] "0u8" |
1353 | [email protected] "0u8" | 1325 | [email protected] " " |
1354 | [email protected] " " | 1326 | [email protected] |
1355 | [email protected] | 1327 | [email protected] "{" |
1356 | [email protected] | 1328 | [email protected] "\n " |
1357 | [email protected] "{" | 1329 | [email protected] |
1358 | [email protected] "\n " | 1330 | [email protected] |
1359 | [email protected] | 1331 | [email protected] |
1360 | [email protected] | 1332 | [email protected] |
1361 | [email protected] | 1333 | [email protected] |
1362 | [email protected] | 1334 | [email protected] "assert_eq" |
1363 | [email protected] | 1335 | [email protected] "!" |
1364 | [email protected] "assert_eq" | 1336 | [email protected] |
1365 | [email protected] "!" | 1337 | [email protected] "(" |
1366 | [email protected] | 1338 | [email protected] "8u8" |
1367 | [email protected] "(" | 1339 | [email protected] "," |
1368 | [email protected] "8u8" | 1340 | [email protected] " " |
1369 | [email protected] "," | 1341 | [email protected] |
1370 | [email protected] " " | 1342 | [email protected] "{" |
1371 | [email protected] | 1343 | [email protected] "\n " |
1372 | [email protected] "{" | 1344 | [email protected] "macro_rules" |
1373 | [email protected] "\n " | 1345 | [email protected] "!" |
1374 | [email protected] "macro_rules" | 1346 | [email protected] " " |
1375 | [email protected] "!" | 1347 | [email protected] "u8" |
1376 | [email protected] " " | 1348 | [email protected] " " |
1377 | [email protected] "u8" | 1349 | [email protected] |
1378 | [email protected] " " | 1350 | [email protected] "{" |
1379 | [email protected] | 1351 | [email protected] "\n " |
1380 | [email protected] "{" | 1352 | [email protected] |
1381 | [email protected] "\n " | 1353 | [email protected] "(" |
1382 | [email protected] | 1354 | [email protected] "u8" |
1383 | [email protected] "(" | 1355 | [email protected] ")" |
1384 | [email protected] "u8" | 1356 | [email protected] " " |
1385 | [email protected] ")" | 1357 | [email protected] "=" |
1386 | [email protected] " " | 1358 | [email protected] ">" |
1387 | [email protected] "=" | 1359 | [email protected] " " |
1388 | [email protected] ">" | 1360 | [email protected] |
1389 | [email protected] " " | 1361 | [email protected] "{" |
1390 | [email protected] | 1362 | [email protected] "\n " |
1391 | [email protected] "{" | 1363 | [email protected] "mod" |
1392 | [email protected] "\n " | 1364 | [email protected] " " |
1393 | [email protected] "mod" | 1365 | [email protected] "u8" |
1394 | [email protected] " " | 1366 | [email protected] " " |
1395 | [email protected] "u8" | 1367 | [email protected] |
1396 | [email protected] " " | 1368 | [email protected] "{" |
1397 | [email protected] | 1369 | [email protected] "\n ..." |
1398 | [email protected] "{" | 1370 | [email protected] "pub" |
1399 | [email protected] "\n ..." | 1371 | [email protected] " " |
1400 | [email protected] "pub" | 1372 | [email protected] "fn" |
1401 | [email protected] " " | 1373 | [email protected] " " |
1402 | [email protected] "fn" | 1374 | [email protected] "u8" |
1403 | [email protected] " " | 1375 | [email protected] "<" |
1404 | [email protected] "u8" | 1376 | [email protected] "\'u8" |
1405 | [email protected] "<" | 1377 | [email protected] ":" |
1406 | [email protected] "\'u8" | 1378 | [email protected] " " |
1407 | [email protected] ":" | 1379 | [email protected] "\'u8" |
1408 | [email protected] " " | 1380 | [email protected] " " |
1409 | [email protected] "\'u8" | 1381 | [email protected] "+" |
1410 | [email protected] " " | 1382 | [email protected] " " |
1411 | [email protected] "+" | 1383 | [email protected] "\'u8" |
1412 | [email protected] " " | 1384 | [email protected] ">" |
1413 | [email protected] "\'u8" | 1385 | [email protected] |
1414 | [email protected] ">" | 1386 | [email protected] "(" |
1415 | [email protected] | 1387 | [email protected] "u8" |
1416 | [email protected] "(" | 1388 | [email protected] ":" |
1417 | [email protected] "u8" | 1389 | [email protected] " " |
1418 | [email protected] ":" | 1390 | [email protected] "&" |
1419 | [email protected] " " | 1391 | [email protected] "\'u8" |
1420 | [email protected] "&" | 1392 | [email protected] " " |
1421 | [email protected] "\'u8" | 1393 | [email protected] "u8" |
1422 | [email protected] " " | 1394 | [email protected] ")" |
1423 | [email protected] "u8" | 1395 | [email protected] " " |
1424 | [email protected] ")" | 1396 | [email protected] "-" |
1425 | [email protected] " " | 1397 | [email protected] ">" |
1426 | [email protected] "-" | 1398 | [email protected] " " |
1427 | [email protected] ">" | 1399 | [email protected] "&" |
1428 | [email protected] " " | 1400 | [email protected] "\'u8" |
1429 | [email protected] "&" | 1401 | [email protected] " " |
1430 | [email protected] "\'u8" | 1402 | [email protected] "u8" |
1431 | [email protected] " " | 1403 | [email protected] " " |
1432 | [email protected] "u8" | 1404 | [email protected] |
1433 | [email protected] " " | 1405 | [email protected] "{" |
1434 | [email protected] | 1406 | [email protected] "\n ..." |
1435 | [email protected] "{" | 1407 | [email protected] "\"u8\"" |
1436 | [email protected] "\n ..." | 1408 | [email protected] ";" |
1437 | [email protected] "\"u8\"" | 1409 | [email protected] "\n ..." |
1438 | [email protected] ";" | 1410 | [email protected] "u8" |
1439 | [email protected] "\n ..." | 1411 | [email protected] "\n ..." |
1440 | [email protected] "u8" | 1412 | [email protected] "}" |
1441 | [email protected] "\n ..." | 1413 | [email protected] "\n " |
1442 | [email protected] "}" | 1414 | [email protected] "}" |
1443 | [email protected] "\n " | 1415 | [email protected] "\n " |
1444 | [email protected] "}" | 1416 | [email protected] "}" |
1445 | [email protected] "\n " | 1417 | [email protected] ";" |
1446 | [email protected] "}" | 1418 | [email protected] "\n " |
1447 | [email protected] ";" | 1419 | [email protected] "}" |
1448 | [email protected] "\n " | 1420 | [email protected] "\n\n " |
1449 | [email protected] "}" | 1421 | [email protected] "u8" |
1450 | [email protected] "\n\n " | 1422 | [email protected] "!" |
1451 | [email protected] "u8" | 1423 | [email protected] |
1452 | [email protected] "!" | 1424 | [email protected] "(" |
1453 | [email protected] | 1425 | [email protected] "u8" |
1454 | [email protected] "(" | 1426 | [email protected] ")" |
1455 | [email protected] "u8" | 1427 | [email protected] ";" |
1456 | [email protected] ")" | 1428 | [email protected] "\n " |
1457 | [email protected] ";" | 1429 | [email protected] "let" |
1458 | [email protected] "\n " | 1430 | [email protected] " " |
1459 | [email protected] "let" | 1431 | [email protected] "&" |
1460 | [email protected] " " | 1432 | [email protected] "u8" |
1461 | [email protected] "&" | 1433 | [email protected] ":" |
1462 | [email protected] "u8" | 1434 | [email protected] " " |
1463 | [email protected] ":" | 1435 | [email protected] "&" |
1464 | [email protected] " " | 1436 | [email protected] "u8" |
1465 | [email protected] "&" | 1437 | [email protected] " " |
1466 | [email protected] "u8" | 1438 | [email protected] "=" |
1467 | [email protected] " " | 1439 | [email protected] " " |
1468 | [email protected] "=" | 1440 | [email protected] "u8" |
1469 | [email protected] " " | 1441 | [email protected] ":" |
1470 | [email protected] "u8" | 1442 | [email protected] ":" |
1471 | [email protected] ":" | 1443 | [email protected] "u8" |
1472 | [email protected] ":" | 1444 | [email protected] |
1473 | [email protected] "u8" | 1445 | [email protected] "(" |
1474 | [email protected] | 1446 | [email protected] "&" |
1475 | [email protected] "(" | 1447 | [email protected] "8u8" |
1476 | [email protected] "&" | 1448 | [email protected] ")" |
1477 | [email protected] "8u8" | 1449 | [email protected] ";" |
1478 | [email protected] ")" | 1450 | [email protected] "\n " |
1479 | [email protected] ";" | 1451 | [email protected] "crate" |
1480 | [email protected] "\n " | 1452 | [email protected] ":" |
1481 | [email protected] "crate" | 1453 | [email protected] ":" |
1482 | [email protected] ":" | 1454 | [email protected] "u8" |
1483 | [email protected] ":" | 1455 | [email protected] |
1484 | [email protected] "u8" | 1456 | [email protected] "(" |
1485 | [email protected] | 1457 | [email protected] "0u8" |
1486 | [email protected] "(" | 1458 | [email protected] ")" |
1487 | [email protected] "0u8" | 1459 | [email protected] ";" |
1488 | [email protected] ")" | 1460 | [email protected] "\n " |
1489 | [email protected] ";" | 1461 | [email protected] "u8" |
1490 | [email protected] "\n " | 1462 | [email protected] "\n " |
1491 | [email protected] "u8" | 1463 | [email protected] "}" |
1492 | [email protected] "\n " | 1464 | [email protected] ")" |
1493 | [email protected] "}" | 1465 | [email protected] ";" |
1494 | [email protected] ")" | 1466 | [email protected] "\n " |
1495 | [email protected] ";" | 1467 | [email protected] "}" |
1496 | [email protected] "\n " | 1468 | [email protected] "\n" |
1497 | [email protected] "}" | 1469 | [email protected] "}" |
1498 | [email protected] "\n" | ||
1499 | [email protected] "}" | ||
1500 | [email protected] "\n\n" | 1470 | [email protected] "\n\n" |
1501 | [email protected] | 1471 | [email protected] |
1502 | [email protected] "fn" | 1472 | [email protected] "fn" |
@@ -1508,76 +1478,75 @@ [email protected] | |||
1508 | [email protected] ")" | 1478 | [email protected] ")" |
1509 | [email protected] " " | 1479 | [email protected] " " |
1510 | [email protected] | 1480 | [email protected] |
1511 | [email protected] | 1481 | [email protected] "{" |
1512 | [email protected] "{" | 1482 | [email protected] "\n " |
1513 | [email protected] "\n " | 1483 | [email protected] |
1514 | [email protected] | 1484 | [email protected] |
1515 | [email protected] | 1485 | [email protected] |
1516 | [email protected] | 1486 | [email protected] |
1517 | [email protected] | 1487 | [email protected] |
1518 | [email protected] | 1488 | [email protected] "assert_eq" |
1519 | [email protected] "assert_eq" | 1489 | [email protected] "!" |
1520 | [email protected] "!" | 1490 | [email protected] |
1521 | [email protected] | 1491 | [email protected] "(" |
1522 | [email protected] "(" | 1492 | [email protected] "String" |
1523 | [email protected] "String" | 1493 | [email protected] ":" |
1524 | [email protected] ":" | 1494 | [email protected] ":" |
1525 | [email protected] ":" | 1495 | [email protected] "from" |
1526 | [email protected] "from" | 1496 | [email protected] |
1527 | [email protected] | 1497 | [email protected] "(" |
1528 | [email protected] "(" | 1498 | [email protected] "\"><>\"" |
1529 | [email protected] "\"><>\"" | 1499 | [email protected] ")" |
1530 | [email protected] ")" | 1500 | [email protected] "," |
1531 | [email protected] "," | 1501 | [email protected] "\n " |
1532 | [email protected] "\n " | 1502 | [email protected] "String" |
1533 | [email protected] "String" | 1503 | [email protected] ":" |
1534 | [email protected] ":" | 1504 | [email protected] ":" |
1535 | [email protected] ":" | 1505 | [email protected] "<" |
1536 | [email protected] "<" | 1506 | [email protected] ">" |
1537 | [email protected] ">" | 1507 | [email protected] ":" |
1538 | [email protected] ":" | 1508 | [email protected] ":" |
1539 | [email protected] ":" | 1509 | [email protected] "from" |
1540 | [email protected] "from" | 1510 | [email protected] ":" |
1541 | [email protected] ":" | 1511 | [email protected] ":" |
1542 | [email protected] ":" | 1512 | [email protected] "<" |
1543 | [email protected] "<" | 1513 | [email protected] ">" |
1544 | [email protected] ">" | 1514 | [email protected] |
1545 | [email protected] | 1515 | [email protected] "(" |
1546 | [email protected] "(" | 1516 | [email protected] "\"><>\"" |
1547 | [email protected] "\"><>\"" | 1517 | [email protected] ")" |
1548 | [email protected] ")" | 1518 | [email protected] "." |
1549 | [email protected] "." | 1519 | [email protected] "chars" |
1550 | [email protected] "chars" | 1520 | [email protected] ":" |
1551 | [email protected] ":" | 1521 | [email protected] ":" |
1552 | [email protected] ":" | 1522 | [email protected] "<" |
1553 | [email protected] "<" | 1523 | [email protected] ">" |
1554 | [email protected] ">" | 1524 | [email protected] |
1555 | [email protected] | 1525 | [email protected] "(" |
1556 | [email protected] "(" | 1526 | [email protected] ")" |
1557 | [email protected] ")" | 1527 | [email protected] "." |
1558 | [email protected] "." | 1528 | [email protected] "rev" |
1559 | [email protected] "rev" | 1529 | [email protected] ":" |
1560 | [email protected] ":" | 1530 | [email protected] ":" |
1561 | [email protected] ":" | 1531 | [email protected] "<" |
1562 | [email protected] "<" | 1532 | [email protected] ">" |
1563 | [email protected] ">" | 1533 | [email protected] |
1564 | [email protected] | 1534 | [email protected] "(" |
1565 | [email protected] "(" | 1535 | [email protected] ")" |
1566 | [email protected] ")" | 1536 | [email protected] "." |
1567 | [email protected] "." | 1537 | [email protected] "collect" |
1568 | [email protected] "collect" | 1538 | [email protected] ":" |
1569 | [email protected] ":" | 1539 | [email protected] ":" |
1570 | [email protected] ":" | 1540 | [email protected] "<" |
1571 | [email protected] "<" | 1541 | [email protected] "String" |
1572 | [email protected] "String" | 1542 | [email protected] ">" |
1573 | [email protected] ">" | 1543 | [email protected] |
1574 | [email protected] | 1544 | [email protected] "(" |
1575 | [email protected] "(" | 1545 | [email protected] ")" |
1576 | [email protected] ")" | 1546 | [email protected] ")" |
1577 | [email protected] ")" | 1547 | [email protected] ";" |
1578 | [email protected] ";" | 1548 | [email protected] "\n" |
1579 | [email protected] "\n" | 1549 | [email protected] "}" |
1580 | [email protected] "}" | ||
1581 | [email protected] "\n\n" | 1550 | [email protected] "\n\n" |
1582 | [email protected] | 1551 | [email protected] |
1583 | [email protected] "fn" | 1552 | [email protected] "fn" |
@@ -1589,47 +1558,46 @@ [email protected] | |||
1589 | [email protected] ")" | 1558 | [email protected] ")" |
1590 | [email protected] " " | 1559 | [email protected] " " |
1591 | [email protected] | 1560 | [email protected] |
1592 | [email protected] | 1561 | [email protected] "{" |
1593 | [email protected] "{" | 1562 | [email protected] "\n " |
1594 | [email protected] "\n " | 1563 | [email protected] |
1595 | [email protected] | 1564 | [email protected] "union" |
1596 | [email protected] "union" | 1565 | [email protected] " " |
1597 | [email protected] " " | 1566 | [email protected] |
1598 | [email protected] | 1567 | [email protected] "union" |
1599 | [email protected] "union" | 1568 | [email protected] |
1600 | [email protected] | 1569 | [email protected] "<" |
1601 | [email protected] "<" | 1570 | [email protected] |
1602 | [email protected] | 1571 | [email protected] "\'union" |
1603 | [email protected] "\'union" | 1572 | [email protected] ">" |
1604 | [email protected] ">" | 1573 | [email protected] " " |
1605 | [email protected] " " | 1574 | [email protected] |
1606 | [email protected] | 1575 | [email protected] "{" |
1607 | [email protected] "{" | 1576 | [email protected] " " |
1608 | [email protected] " " | 1577 | [email protected] |
1609 | [email protected] | 1578 | [email protected] |
1610 | [email protected] | 1579 | [email protected] "union" |
1611 | [email protected] "union" | 1580 | [email protected] ":" |
1612 | [email protected] ":" | 1581 | [email protected] " " |
1613 | [email protected] " " | 1582 | [email protected] |
1614 | [email protected] | 1583 | [email protected] "&" |
1615 | [email protected] "&" | 1584 | [email protected] "\'union" |
1616 | [email protected] "\'union" | 1585 | [email protected] " " |
1617 | [email protected] " " | 1586 | [email protected] |
1618 | [email protected] | 1587 | [email protected] |
1619 | [email protected] | 1588 | [email protected] |
1620 | [email protected] | 1589 | [email protected] |
1621 | [email protected] | 1590 | [email protected] "union" |
1622 | [email protected] "union" | 1591 | [email protected] |
1623 | [email protected] | 1592 | [email protected] "<" |
1624 | [email protected] "<" | 1593 | [email protected] |
1625 | [email protected] | 1594 | [email protected] "\'union" |
1626 | [email protected] "\'union" | 1595 | [email protected] ">" |
1627 | [email protected] ">" | 1596 | [email protected] "," |
1628 | [email protected] "," | 1597 | [email protected] " " |
1629 | [email protected] " " | 1598 | [email protected] "}" |
1630 | [email protected] "}" | 1599 | [email protected] "\n" |
1631 | [email protected] "\n" | 1600 | [email protected] "}" |
1632 | [email protected] "}" | ||
1633 | [email protected] "\n\n" | 1601 | [email protected] "\n\n" |
1634 | [email protected] | 1602 | [email protected] |
1635 | [email protected] "fn" | 1603 | [email protected] "fn" |
@@ -1641,121 +1609,118 @@ [email protected] | |||
1641 | [email protected] ")" | 1609 | [email protected] ")" |
1642 | [email protected] " " | 1610 | [email protected] " " |
1643 | [email protected] | 1611 | [email protected] |
1644 | [email protected] | 1612 | [email protected] "{" |
1645 | [email protected] "{" | 1613 | [email protected] "\n " |
1646 | [email protected] "\n " | 1614 | [email protected] |
1647 | [email protected] | 1615 | [email protected] "let" |
1648 | [email protected] "let" | 1616 | [email protected] " " |
1649 | [email protected] " " | 1617 | [email protected] |
1650 | [email protected] | 1618 | [email protected] |
1651 | [email protected] | 1619 | [email protected] "val" |
1652 | [email protected] "val" | 1620 | [email protected] " " |
1653 | [email protected] " " | 1621 | [email protected] "=" |
1654 | [email protected] "=" | 1622 | [email protected] " " |
1655 | [email protected] " " | 1623 | [email protected] |
1656 | [email protected] | 1624 | [email protected] "!" |
1657 | [email protected] "!" | 1625 | [email protected] |
1658 | [email protected] | 1626 | [email protected] "(" |
1659 | [email protected] "(" | 1627 | [email protected] |
1660 | [email protected] | 1628 | [email protected] |
1661 | [email protected] | 1629 | [email protected] |
1662 | [email protected] | 1630 | [email protected] "(" |
1663 | [email protected] "(" | 1631 | [email protected] |
1664 | [email protected] | 1632 | [email protected] |
1665 | [email protected] | 1633 | [email protected] "|" |
1666 | [email protected] "|" | 1634 | [email protected] |
1667 | [email protected] | 1635 | [email protected] |
1668 | [email protected] | 1636 | [email protected] "(" |
1669 | [email protected] "(" | 1637 | [email protected] |
1670 | [email protected] | 1638 | [email protected] ".." |
1671 | [email protected] ".." | 1639 | [email protected] ")" |
1672 | [email protected] ")" | 1640 | [email protected] ":" |
1673 | [email protected] ":" | 1641 | [email protected] |
1674 | [email protected] | 1642 | [email protected] "(" |
1675 | [email protected] "(" | 1643 | [email protected] |
1676 | [email protected] | 1644 | [email protected] "_" |
1677 | [email protected] "_" | 1645 | [email protected] "," |
1678 | [email protected] "," | 1646 | [email protected] |
1679 | [email protected] | 1647 | [email protected] "_" |
1680 | [email protected] "_" | 1648 | [email protected] ")" |
1681 | [email protected] ")" | 1649 | [email protected] "," |
1682 | [email protected] "," | 1650 | [email protected] |
1683 | [email protected] | 1651 | [email protected] |
1684 | [email protected] | 1652 | [email protected] |
1685 | [email protected] | 1653 | [email protected] "__" |
1686 | [email protected] "__" | 1654 | [email protected] "@" |
1687 | [email protected] "@" | 1655 | [email protected] |
1688 | [email protected] | 1656 | [email protected] "_" |
1689 | [email protected] "_" | 1657 | [email protected] "|" |
1690 | [email protected] "|" | 1658 | [email protected] |
1691 | [email protected] | 1659 | [email protected] |
1692 | [email protected] | 1660 | [email protected] |
1693 | [email protected] | 1661 | [email protected] |
1694 | [email protected] | 1662 | [email protected] "__" |
1695 | [email protected] "__" | 1663 | [email protected] ")" |
1696 | [email protected] ")" | 1664 | [email protected] |
1697 | [email protected] | 1665 | [email protected] "(" |
1698 | [email protected] "(" | 1666 | [email protected] |
1699 | [email protected] | 1667 | [email protected] "(" |
1700 | [email protected] "(" | 1668 | [email protected] |
1701 | [email protected] | 1669 | [email protected] "&" |
1702 | [email protected] "&" | 1670 | [email protected] |
1703 | [email protected] | 1671 | [email protected] "*" |
1704 | [email protected] "*" | 1672 | [email protected] |
1705 | [email protected] | 1673 | [email protected] "\"\\\\\"" |
1706 | [email protected] "\"\\\\\"" | 1674 | [email protected] "," |
1707 | [email protected] "," | 1675 | [email protected] |
1708 | [email protected] | 1676 | [email protected] "\'🤔\'" |
1709 | [email protected] "\'🤔\'" | 1677 | [email protected] ")" |
1710 | [email protected] ")" | 1678 | [email protected] "/**/" |
1711 | [email protected] "/**/" | 1679 | [email protected] "," |
1712 | [email protected] "," | 1680 | [email protected] |
1713 | [email protected] | 1681 | [email protected] "{" |
1714 | [email protected] | 1682 | [email protected] "}" |
1715 | [email protected] "{" | 1683 | [email protected] ")" |
1716 | [email protected] "}" | 1684 | [email protected] "==" |
1717 | [email protected] ")" | 1685 | [email protected] |
1718 | [email protected] "==" | 1686 | [email protected] "{" |
1719 | [email protected] | 1687 | [email protected] |
1720 | [email protected] | 1688 | [email protected] |
1721 | [email protected] "{" | 1689 | [email protected] "&" |
1722 | [email protected] | 1690 | [email protected] |
1723 | [email protected] | 1691 | [email protected] |
1724 | [email protected] "&" | 1692 | [email protected] "[" |
1725 | [email protected] | 1693 | [email protected] |
1726 | [email protected] | 1694 | [email protected] "..=" |
1727 | [email protected] "[" | 1695 | [email protected] |
1728 | [email protected] | 1696 | [email protected] ".." |
1729 | [email protected] "..=" | 1697 | [email protected] "]" |
1730 | [email protected] | 1698 | [email protected] "[" |
1731 | [email protected] ".." | 1699 | [email protected] |
1732 | [email protected] "]" | 1700 | [email protected] ".." |
1733 | [email protected] "[" | 1701 | [email protected] "]" |
1734 | [email protected] | 1702 | [email protected] ";" |
1735 | [email protected] ".." | 1703 | [email protected] "}" |
1736 | [email protected] "]" | 1704 | [email protected] ")" |
1737 | [email protected] ";" | 1705 | [email protected] "//" |
1738 | [email protected] "}" | 1706 | [email protected] "\n " |
1739 | [email protected] ")" | 1707 | [email protected] ";" |
1740 | [email protected] "//" | 1708 | [email protected] "\n " |
1741 | [email protected] "\n " | 1709 | [email protected] |
1742 | [email protected] ";" | 1710 | [email protected] |
1743 | [email protected] "\n " | 1711 | [email protected] |
1744 | [email protected] | 1712 | [email protected] |
1745 | [email protected] | 1713 | [email protected] |
1746 | [email protected] | 1714 | [email protected] "assert" |
1747 | [email protected] | 1715 | [email protected] "!" |
1748 | [email protected] | 1716 | [email protected] |
1749 | [email protected] "assert" | 1717 | [email protected] "(" |
1750 | [email protected] "!" | 1718 | [email protected] "!" |
1751 | [email protected] | 1719 | [email protected] "val" |
1752 | [email protected] "(" | 1720 | [email protected] ")" |
1753 | [email protected] "!" | 1721 | [email protected] ";" |
1754 | [email protected] "val" | 1722 | [email protected] "\n" |
1755 | [email protected] ")" | 1723 | [email protected] "}" |
1756 | [email protected] ";" | ||
1757 | [email protected] "\n" | ||
1758 | [email protected] "}" | ||
1759 | [email protected] "\n\n" | 1724 | [email protected] "\n\n" |
1760 | [email protected] | 1725 | [email protected] |
1761 | [email protected] "fn" | 1726 | [email protected] "fn" |
@@ -1791,306 +1756,305 @@ [email protected] | |||
1791 | [email protected] "Debug" | 1756 | [email protected] "Debug" |
1792 | [email protected] " " | 1757 | [email protected] " " |
1793 | [email protected] | 1758 | [email protected] |
1794 | [email protected] | 1759 | [email protected] "{" |
1795 | [email protected] "{" | 1760 | [email protected] "\n " |
1796 | [email protected] "\n " | 1761 | [email protected] |
1797 | [email protected] | 1762 | [email protected] "..=" |
1798 | [email protected] "..=" | 1763 | [email protected] |
1799 | [email protected] | 1764 | [email protected] "..=" |
1800 | [email protected] "..=" | 1765 | [email protected] |
1801 | [email protected] | 1766 | [email protected] ".." |
1802 | [email protected] ".." | 1767 | [email protected] " " |
1803 | [email protected] " " | 1768 | [email protected] |
1804 | [email protected] | 1769 | [email protected] ".." |
1805 | [email protected] ".." | 1770 | [email protected] " " |
1806 | [email protected] " " | 1771 | [email protected] |
1807 | [email protected] | 1772 | [email protected] ".." |
1808 | [email protected] ".." | 1773 | [email protected] " " |
1809 | [email protected] " " | 1774 | [email protected] |
1810 | [email protected] | 1775 | [email protected] ".." |
1811 | [email protected] ".." | 1776 | [email protected] " " |
1812 | [email protected] " " | 1777 | [email protected] |
1813 | [email protected] | 1778 | [email protected] ".." |
1814 | [email protected] ".." | 1779 | [email protected] " " |
1815 | [email protected] " " | 1780 | [email protected] |
1816 | [email protected] | 1781 | [email protected] ".." |
1817 | [email protected] ".." | 1782 | [email protected] " " |
1818 | [email protected] " " | 1783 | [email protected] |
1819 | [email protected] | 1784 | [email protected] ".." |
1820 | [email protected] ".." | 1785 | [email protected] " " |
1821 | [email protected] " " | 1786 | [email protected] |
1822 | [email protected] | 1787 | [email protected] ".." |
1823 | [email protected] ".." | 1788 | [email protected] " " |
1824 | [email protected] " " | 1789 | [email protected] |
1825 | [email protected] | 1790 | [email protected] ".." |
1826 | [email protected] ".." | 1791 | [email protected] " " |
1827 | [email protected] " " | 1792 | [email protected] |
1828 | [email protected] | 1793 | [email protected] ".." |
1829 | [email protected] ".." | 1794 | [email protected] " " |
1830 | [email protected] " " | 1795 | [email protected] |
1831 | [email protected] | 1796 | [email protected] ".." |
1832 | [email protected] ".." | 1797 | [email protected] " " |
1833 | [email protected] " " | 1798 | [email protected] |
1834 | [email protected] | 1799 | [email protected] "..=" |
1835 | [email protected] "..=" | 1800 | [email protected] |
1836 | [email protected] | 1801 | [email protected] ".." |
1837 | [email protected] ".." | 1802 | [email protected] " " |
1838 | [email protected] " " | 1803 | [email protected] |
1839 | [email protected] | 1804 | [email protected] ".." |
1840 | [email protected] ".." | 1805 | [email protected] "\n " |
1841 | [email protected] "\n " | 1806 | [email protected] |
1842 | [email protected] | 1807 | [email protected] "..=" |
1843 | [email protected] "..=" | 1808 | [email protected] |
1844 | [email protected] | 1809 | [email protected] ".." |
1845 | [email protected] ".." | 1810 | [email protected] " " |
1846 | [email protected] " " | 1811 | [email protected] |
1847 | [email protected] | 1812 | [email protected] "..=" |
1848 | [email protected] "..=" | 1813 | [email protected] |
1849 | [email protected] | 1814 | [email protected] ".." |
1850 | [email protected] ".." | 1815 | [email protected] " " |
1851 | [email protected] " " | 1816 | [email protected] |
1852 | [email protected] | 1817 | [email protected] ".." |
1853 | [email protected] ".." | 1818 | [email protected] " " |
1854 | [email protected] " " | 1819 | [email protected] |
1855 | [email protected] | 1820 | [email protected] ".." |
1856 | [email protected] ".." | 1821 | [email protected] " " |
1857 | [email protected] " " | 1822 | [email protected] |
1858 | [email protected] | 1823 | [email protected] ".." |
1859 | [email protected] ".." | 1824 | [email protected] " " |
1860 | [email protected] " " | 1825 | [email protected] |
1861 | [email protected] | 1826 | [email protected] ".." |
1862 | [email protected] ".." | 1827 | [email protected] " " |
1863 | [email protected] " " | 1828 | [email protected] |
1864 | [email protected] | 1829 | [email protected] ".." |
1865 | [email protected] ".." | 1830 | [email protected] " " |
1866 | [email protected] " " | 1831 | [email protected] |
1867 | [email protected] | 1832 | [email protected] ".." |
1868 | [email protected] ".." | 1833 | [email protected] " " |
1869 | [email protected] " " | 1834 | [email protected] |
1870 | [email protected] | 1835 | [email protected] ".." |
1871 | [email protected] ".." | 1836 | [email protected] " " |
1872 | [email protected] " " | 1837 | [email protected] |
1873 | [email protected] | 1838 | [email protected] ".." |
1874 | [email protected] ".." | 1839 | [email protected] " " |
1875 | [email protected] " " | 1840 | [email protected] |
1876 | [email protected] | 1841 | [email protected] "..=" |
1877 | [email protected] "..=" | 1842 | [email protected] |
1878 | [email protected] | 1843 | [email protected] "..=" |
1879 | [email protected] "..=" | 1844 | [email protected] |
1880 | [email protected] | 1845 | [email protected] "..=" |
1881 | [email protected] "..=" | 1846 | [email protected] |
1882 | [email protected] | 1847 | [email protected] ".." |
1883 | [email protected] ".." | 1848 | [email protected] "\n " |
1884 | [email protected] "\n " | 1849 | [email protected] |
1885 | [email protected] | 1850 | [email protected] "..=" |
1886 | [email protected] "..=" | 1851 | [email protected] |
1887 | [email protected] | 1852 | [email protected] ".." |
1888 | [email protected] ".." | 1853 | [email protected] " " |
1889 | [email protected] " " | 1854 | [email protected] |
1890 | [email protected] | 1855 | [email protected] "..=" |
1891 | [email protected] "..=" | 1856 | [email protected] |
1892 | [email protected] | 1857 | [email protected] ".." |
1893 | [email protected] ".." | 1858 | [email protected] " " |
1894 | [email protected] " " | 1859 | [email protected] |
1895 | [email protected] | 1860 | [email protected] "..=" |
1896 | [email protected] "..=" | 1861 | [email protected] |
1897 | [email protected] | 1862 | [email protected] ".." |
1898 | [email protected] ".." | 1863 | [email protected] " " |
1899 | [email protected] " " | 1864 | [email protected] |
1900 | [email protected] | 1865 | [email protected] "..=" |
1901 | [email protected] "..=" | 1866 | [email protected] |
1902 | [email protected] | 1867 | [email protected] ".." |
1903 | [email protected] ".." | 1868 | [email protected] " " |
1904 | [email protected] " " | 1869 | [email protected] |
1905 | [email protected] | 1870 | [email protected] ".." |
1906 | [email protected] ".." | 1871 | [email protected] " " |
1907 | [email protected] " " | 1872 | [email protected] |
1908 | [email protected] | 1873 | [email protected] "..=" |
1909 | [email protected] "..=" | 1874 | [email protected] |
1910 | [email protected] | 1875 | [email protected] "..=" |
1911 | [email protected] "..=" | 1876 | [email protected] |
1912 | [email protected] | 1877 | [email protected] ".." |
1913 | [email protected] ".." | 1878 | [email protected] " " |
1914 | [email protected] " " | 1879 | [email protected] |
1915 | [email protected] | 1880 | [email protected] ".." |
1916 | [email protected] ".." | 1881 | [email protected] " " |
1917 | [email protected] " " | 1882 | [email protected] |
1918 | [email protected] | 1883 | [email protected] "..=" |
1919 | [email protected] "..=" | 1884 | [email protected] |
1920 | [email protected] | 1885 | [email protected] ".." |
1921 | [email protected] ".." | 1886 | [email protected] " " |
1922 | [email protected] " " | 1887 | [email protected] |
1923 | [email protected] | 1888 | [email protected] ".." |
1924 | [email protected] ".." | 1889 | [email protected] "\n " |
1925 | [email protected] "\n " | 1890 | [email protected] |
1926 | [email protected] | 1891 | [email protected] "..=" |
1927 | [email protected] "..=" | 1892 | [email protected] |
1928 | [email protected] | 1893 | [email protected] "..=" |
1929 | [email protected] "..=" | 1894 | [email protected] |
1930 | [email protected] | 1895 | [email protected] ".." |
1931 | [email protected] ".." | 1896 | [email protected] " " |
1932 | [email protected] " " | 1897 | [email protected] |
1933 | [email protected] | 1898 | [email protected] ".." |
1934 | [email protected] ".." | 1899 | [email protected] " " |
1935 | [email protected] " " | 1900 | [email protected] |
1936 | [email protected] | 1901 | [email protected] "..=" |
1937 | [email protected] "..=" | 1902 | [email protected] |
1938 | [email protected] | 1903 | [email protected] ".." |
1939 | [email protected] ".." | 1904 | [email protected] " " |
1940 | [email protected] " " | 1905 | [email protected] |
1941 | [email protected] | 1906 | [email protected] "..=" |
1942 | [email protected] "..=" | 1907 | [email protected] |
1943 | [email protected] | 1908 | [email protected] ".." |
1944 | [email protected] ".." | 1909 | [email protected] " " |
1945 | [email protected] " " | 1910 | [email protected] |
1946 | [email protected] | 1911 | [email protected] "..=" |
1947 | [email protected] "..=" | 1912 | [email protected] |
1948 | [email protected] | 1913 | [email protected] ".." |
1949 | [email protected] ".." | 1914 | [email protected] " " |
1950 | [email protected] " " | 1915 | [email protected] |
1951 | [email protected] | 1916 | [email protected] ".." |
1952 | [email protected] ".." | 1917 | [email protected] " " |
1953 | [email protected] " " | 1918 | [email protected] |
1954 | [email protected] | 1919 | [email protected] ".." |
1955 | [email protected] ".." | 1920 | [email protected] " " |
1956 | [email protected] " " | 1921 | [email protected] |
1957 | [email protected] | 1922 | [email protected] ".." |
1958 | [email protected] ".." | 1923 | [email protected] " " |
1959 | [email protected] " " | 1924 | [email protected] |
1960 | [email protected] | 1925 | [email protected] "..=" |
1961 | [email protected] "..=" | 1926 | [email protected] |
1962 | [email protected] | 1927 | [email protected] ".." |
1963 | [email protected] ".." | 1928 | [email protected] " " |
1964 | [email protected] " " | 1929 | [email protected] |
1965 | [email protected] | 1930 | [email protected] ".." |
1966 | [email protected] ".." | 1931 | [email protected] "\n " |
1967 | [email protected] "\n " | 1932 | [email protected] |
1968 | [email protected] | 1933 | [email protected] "..=" |
1969 | [email protected] "..=" | 1934 | [email protected] |
1970 | [email protected] | 1935 | [email protected] ".." |
1971 | [email protected] ".." | 1936 | [email protected] " " |
1972 | [email protected] " " | 1937 | [email protected] |
1973 | [email protected] | 1938 | [email protected] "..=" |
1974 | [email protected] "..=" | 1939 | [email protected] |
1975 | [email protected] | 1940 | [email protected] ".." |
1976 | [email protected] ".." | 1941 | [email protected] " " |
1977 | [email protected] " " | 1942 | [email protected] |
1978 | [email protected] | 1943 | [email protected] "..=" |
1979 | [email protected] "..=" | 1944 | [email protected] |
1980 | [email protected] | 1945 | [email protected] ".." |
1981 | [email protected] ".." | 1946 | [email protected] " " |
1982 | [email protected] " " | 1947 | [email protected] |
1983 | [email protected] | 1948 | [email protected] "..=" |
1984 | [email protected] "..=" | 1949 | [email protected] |
1985 | [email protected] | 1950 | [email protected] ".." |
1986 | [email protected] ".." | 1951 | [email protected] " " |
1987 | [email protected] " " | 1952 | [email protected] |
1988 | [email protected] | 1953 | [email protected] ".." |
1989 | [email protected] ".." | 1954 | [email protected] " " |
1990 | [email protected] " " | 1955 | [email protected] |
1991 | [email protected] | 1956 | [email protected] "..=" |
1992 | [email protected] "..=" | 1957 | [email protected] |
1993 | [email protected] | 1958 | [email protected] ".." |
1994 | [email protected] ".." | 1959 | [email protected] " " |
1995 | [email protected] " " | 1960 | [email protected] |
1996 | [email protected] | 1961 | [email protected] ".." |
1997 | [email protected] ".." | 1962 | [email protected] " " |
1998 | [email protected] " " | 1963 | [email protected] |
1999 | [email protected] | 1964 | [email protected] ".." |
2000 | [email protected] ".." | 1965 | [email protected] " " |
2001 | [email protected] " " | 1966 | [email protected] |
2002 | [email protected] | 1967 | [email protected] "..=" |
2003 | [email protected] "..=" | 1968 | [email protected] |
2004 | [email protected] | 1969 | [email protected] ".." |
2005 | [email protected] ".." | 1970 | [email protected] " " |
2006 | [email protected] " " | 1971 | [email protected] |
2007 | [email protected] | 1972 | [email protected] ".." |
2008 | [email protected] ".." | 1973 | [email protected] "\n " |
2009 | [email protected] "\n " | 1974 | [email protected] |
2010 | [email protected] | 1975 | [email protected] "..=" |
2011 | [email protected] "..=" | 1976 | [email protected] |
2012 | [email protected] | 1977 | [email protected] ".." |
2013 | [email protected] ".." | 1978 | [email protected] " " |
2014 | [email protected] " " | 1979 | [email protected] |
2015 | [email protected] | 1980 | [email protected] "..=" |
2016 | [email protected] "..=" | 1981 | [email protected] |
2017 | [email protected] | 1982 | [email protected] ".." |
2018 | [email protected] ".." | 1983 | [email protected] " " |
2019 | [email protected] " " | 1984 | [email protected] |
2020 | [email protected] | 1985 | [email protected] "..=" |
2021 | [email protected] "..=" | 1986 | [email protected] |
2022 | [email protected] | 1987 | [email protected] ".." |
2023 | [email protected] ".." | 1988 | [email protected] " " |
2024 | [email protected] " " | 1989 | [email protected] |
2025 | [email protected] | 1990 | [email protected] "..=" |
2026 | [email protected] "..=" | 1991 | [email protected] |
2027 | [email protected] | 1992 | [email protected] ".." |
2028 | [email protected] ".." | 1993 | [email protected] " " |
2029 | [email protected] " " | 1994 | [email protected] |
2030 | [email protected] | 1995 | [email protected] ".." |
2031 | [email protected] ".." | 1996 | [email protected] " " |
2032 | [email protected] " " | 1997 | [email protected] |
2033 | [email protected] | 1998 | [email protected] ".." |
2034 | [email protected] ".." | 1999 | [email protected] " " |
2035 | [email protected] " " | 2000 | [email protected] |
2036 | [email protected] | 2001 | [email protected] "..=" |
2037 | [email protected] "..=" | 2002 | [email protected] |
2038 | [email protected] | 2003 | [email protected] ".." |
2039 | [email protected] ".." | 2004 | [email protected] " " |
2040 | [email protected] " " | 2005 | [email protected] |
2041 | [email protected] | 2006 | [email protected] ".." |
2042 | [email protected] ".." | 2007 | [email protected] " " |
2043 | [email protected] " " | 2008 | [email protected] |
2044 | [email protected] | 2009 | [email protected] "..=" |
2045 | [email protected] "..=" | 2010 | [email protected] |
2046 | [email protected] | 2011 | [email protected] ".." |
2047 | [email protected] ".." | 2012 | [email protected] " " |
2048 | [email protected] " " | 2013 | [email protected] |
2049 | [email protected] | 2014 | [email protected] ".." |
2050 | [email protected] ".." | 2015 | [email protected] "\n " |
2051 | [email protected] "\n " | 2016 | [email protected] |
2052 | [email protected] | 2017 | [email protected] "..=" |
2053 | [email protected] "..=" | 2018 | [email protected] |
2054 | [email protected] | 2019 | [email protected] ".." |
2055 | [email protected] ".." | 2020 | [email protected] " " |
2056 | [email protected] " " | 2021 | [email protected] |
2057 | [email protected] | 2022 | [email protected] "..=" |
2058 | [email protected] "..=" | 2023 | [email protected] |
2059 | [email protected] | 2024 | [email protected] ".." |
2060 | [email protected] ".." | 2025 | [email protected] " " |
2061 | [email protected] " " | 2026 | [email protected] |
2062 | [email protected] | 2027 | [email protected] ".." |
2063 | [email protected] ".." | 2028 | [email protected] " " |
2064 | [email protected] " " | 2029 | [email protected] |
2065 | [email protected] | 2030 | [email protected] "..=" |
2066 | [email protected] "..=" | 2031 | [email protected] |
2067 | [email protected] | 2032 | [email protected] "..=" |
2068 | [email protected] "..=" | 2033 | [email protected] |
2069 | [email protected] | 2034 | [email protected] ".." |
2070 | [email protected] ".." | 2035 | [email protected] " " |
2071 | [email protected] " " | 2036 | [email protected] |
2072 | [email protected] | 2037 | [email protected] "..=" |
2073 | [email protected] "..=" | 2038 | [email protected] |
2074 | [email protected] | 2039 | [email protected] "..=" |
2075 | [email protected] "..=" | 2040 | [email protected] |
2076 | [email protected] | 2041 | [email protected] ".." |
2077 | [email protected] ".." | 2042 | [email protected] " " |
2078 | [email protected] " " | 2043 | [email protected] |
2079 | [email protected] | 2044 | [email protected] ".." |
2080 | [email protected] ".." | 2045 | [email protected] " " |
2081 | [email protected] " " | 2046 | [email protected] |
2082 | [email protected] | 2047 | [email protected] ".." |
2083 | [email protected] ".." | 2048 | [email protected] " " |
2084 | [email protected] " " | 2049 | [email protected] |
2085 | [email protected] | 2050 | [email protected] "..=" |
2086 | [email protected] "..=" | 2051 | [email protected] |
2087 | [email protected] | 2052 | [email protected] ".." |
2088 | [email protected] ".." | 2053 | [email protected] " " |
2089 | [email protected] " " | 2054 | [email protected] |
2090 | [email protected] | 2055 | [email protected] ".." |
2091 | [email protected] ".." | 2056 | [email protected] "\n" |
2092 | [email protected] "\n" | 2057 | [email protected] "}" |
2093 | [email protected] "}" | ||
2094 | [email protected] "\n\n" | 2058 | [email protected] "\n\n" |
2095 | [email protected] | 2059 | [email protected] |
2096 | [email protected] "fn" | 2060 | [email protected] "fn" |
@@ -2102,30 +2066,29 @@ [email protected] | |||
2102 | [email protected] ")" | 2066 | [email protected] ")" |
2103 | [email protected] " " | 2067 | [email protected] " " |
2104 | [email protected] | 2068 | [email protected] |
2105 | [email protected] | 2069 | [email protected] "{" |
2106 | [email protected] "{" | 2070 | [email protected] "\n " |
2107 | [email protected] "\n " | 2071 | [email protected] ";" |
2108 | [email protected] ";" | 2072 | [email protected] ";" |
2109 | [email protected] ";" | 2073 | [email protected] ";" |
2110 | [email protected] ";" | 2074 | [email protected] |
2111 | [email protected] | 2075 | [email protected] |
2112 | [email protected] | 2076 | [email protected] "(" |
2113 | [email protected] "(" | 2077 | [email protected] ")" |
2114 | [email protected] ")" | 2078 | [email protected] ";" |
2115 | [email protected] ";" | 2079 | [email protected] ";" |
2116 | [email protected] ";" | 2080 | [email protected] ";" |
2117 | [email protected] ";" | 2081 | [email protected] ";" |
2118 | [email protected] ";" | 2082 | [email protected] ";" |
2119 | [email protected] ";" | 2083 | [email protected] ";" |
2120 | [email protected] ";" | 2084 | [email protected] ";" |
2121 | [email protected] ";" | 2085 | [email protected] ";" |
2122 | [email protected] ";" | 2086 | [email protected] ";" |
2123 | [email protected] ";" | 2087 | [email protected] |
2124 | [email protected] | 2088 | [email protected] "(" |
2125 | [email protected] "(" | 2089 | [email protected] ")" |
2126 | [email protected] ")" | 2090 | [email protected] "\n" |
2127 | [email protected] "\n" | 2091 | [email protected] "}" |
2128 | [email protected] "}" | ||
2129 | [email protected] "\n\n" | 2092 | [email protected] "\n\n" |
2130 | [email protected] | 2093 | [email protected] |
2131 | [email protected] | 2094 | [email protected] |
@@ -2140,190 +2103,189 @@ [email protected] | |||
2140 | [email protected] ")" | 2103 | [email protected] ")" |
2141 | [email protected] " " | 2104 | [email protected] " " |
2142 | [email protected] | 2105 | [email protected] |
2143 | [email protected] | 2106 | [email protected] "{" |
2144 | [email protected] "{" | 2107 | [email protected] "\n " |
2145 | [email protected] "\n " | 2108 | [email protected] |
2146 | [email protected] | 2109 | [email protected] |
2147 | [email protected] | 2110 | [email protected] |
2148 | [email protected] | 2111 | [email protected] |
2149 | [email protected] | 2112 | [email protected] |
2150 | [email protected] | 2113 | [email protected] |
2151 | [email protected] | 2114 | [email protected] "strange" |
2152 | [email protected] "strange" | 2115 | [email protected] |
2153 | [email protected] | 2116 | [email protected] "(" |
2154 | [email protected] "(" | 2117 | [email protected] ")" |
2155 | [email protected] ")" | 2118 | [email protected] ";" |
2156 | [email protected] ";" | 2119 | [email protected] "\n " |
2157 | [email protected] "\n " | 2120 | [email protected] |
2158 | [email protected] | 2121 | [email protected] |
2159 | [email protected] | 2122 | [email protected] |
2160 | [email protected] | 2123 | [email protected] |
2161 | [email protected] | 2124 | [email protected] |
2162 | [email protected] | 2125 | [email protected] |
2163 | [email protected] | 2126 | [email protected] "funny" |
2164 | [email protected] "funny" | 2127 | [email protected] |
2165 | [email protected] | 2128 | [email protected] "(" |
2166 | [email protected] "(" | 2129 | [email protected] ")" |
2167 | [email protected] ")" | 2130 | [email protected] ";" |
2168 | [email protected] ";" | 2131 | [email protected] "\n " |
2169 | [email protected] "\n " | 2132 | [email protected] |
2170 | [email protected] | 2133 | [email protected] |
2171 | [email protected] | 2134 | [email protected] |
2172 | [email protected] | 2135 | [email protected] |
2173 | [email protected] | 2136 | [email protected] |
2174 | [email protected] | 2137 | [email protected] |
2175 | [email protected] | 2138 | [email protected] "what" |
2176 | [email protected] "what" | 2139 | [email protected] |
2177 | [email protected] | 2140 | [email protected] "(" |
2178 | [email protected] "(" | 2141 | [email protected] ")" |
2179 | [email protected] ")" | 2142 | [email protected] ";" |
2180 | [email protected] ";" | 2143 | [email protected] "\n " |
2181 | [email protected] "\n " | 2144 | [email protected] |
2182 | [email protected] | 2145 | [email protected] |
2183 | [email protected] | 2146 | [email protected] |
2184 | [email protected] | 2147 | [email protected] |
2185 | [email protected] | 2148 | [email protected] |
2186 | [email protected] | 2149 | [email protected] |
2187 | [email protected] | 2150 | [email protected] "zombiejesus" |
2188 | [email protected] "zombiejesus" | 2151 | [email protected] |
2189 | [email protected] | 2152 | [email protected] "(" |
2190 | [email protected] "(" | 2153 | [email protected] ")" |
2191 | [email protected] ")" | 2154 | [email protected] ";" |
2192 | [email protected] ";" | 2155 | [email protected] "\n " |
2193 | [email protected] "\n " | 2156 | [email protected] |
2194 | [email protected] | 2157 | [email protected] |
2195 | [email protected] | 2158 | [email protected] |
2196 | [email protected] | 2159 | [email protected] |
2197 | [email protected] | 2160 | [email protected] |
2198 | [email protected] | 2161 | [email protected] |
2199 | [email protected] | 2162 | [email protected] "notsure" |
2200 | [email protected] "notsure" | 2163 | [email protected] |
2201 | [email protected] | 2164 | [email protected] "(" |
2202 | [email protected] "(" | 2165 | [email protected] ")" |
2203 | [email protected] ")" | 2166 | [email protected] ";" |
2204 | [email protected] ";" | 2167 | [email protected] "\n " |
2205 | [email protected] "\n " | 2168 | [email protected] |
2206 | [email protected] | 2169 | [email protected] |
2207 | [email protected] | 2170 | [email protected] |
2208 | [email protected] | 2171 | [email protected] |
2209 | [email protected] | 2172 | [email protected] |
2210 | [email protected] | 2173 | [email protected] |
2211 | [email protected] | 2174 | [email protected] "canttouchthis" |
2212 | [email protected] "canttouchthis" | 2175 | [email protected] |
2213 | [email protected] | 2176 | [email protected] "(" |
2214 | [email protected] "(" | 2177 | [email protected] ")" |
2215 | [email protected] ")" | 2178 | [email protected] ";" |
2216 | [email protected] ";" | 2179 | [email protected] "\n " |
2217 | [email protected] "\n " | 2180 | [email protected] |
2218 | [email protected] | 2181 | [email protected] |
2219 | [email protected] | 2182 | [email protected] |
2220 | [email protected] | 2183 | [email protected] |
2221 | [email protected] | 2184 | [email protected] |
2222 | [email protected] | 2185 | [email protected] |
2223 | [email protected] | 2186 | [email protected] "angrydome" |
2224 | [email protected] "angrydome" | 2187 | [email protected] |
2225 | [email protected] | 2188 | [email protected] "(" |
2226 | [email protected] "(" | 2189 | [email protected] ")" |
2227 | [email protected] ")" | 2190 | [email protected] ";" |
2228 | [email protected] ";" | 2191 | [email protected] "\n " |
2229 | [email protected] "\n " | 2192 | [email protected] |
2230 | [email protected] | 2193 | [email protected] |
2231 | [email protected] | 2194 | [email protected] |
2232 | [email protected] | 2195 | [email protected] |
2233 | [email protected] | 2196 | [email protected] |
2234 | [email protected] | 2197 | [email protected] |
2235 | [email protected] | 2198 | [email protected] "evil_lincoln" |
2236 | [email protected] "evil_lincoln" | 2199 | [email protected] |
2237 | [email protected] | 2200 | [email protected] "(" |
2238 | [email protected] "(" | 2201 | [email protected] ")" |
2239 | [email protected] ")" | 2202 | [email protected] ";" |
2240 | [email protected] ";" | 2203 | [email protected] "\n " |
2241 | [email protected] "\n " | 2204 | [email protected] |
2242 | [email protected] | 2205 | [email protected] |
2243 | [email protected] | 2206 | [email protected] |
2244 | [email protected] | 2207 | [email protected] |
2245 | [email protected] | 2208 | [email protected] |
2246 | [email protected] | 2209 | [email protected] |
2247 | [email protected] | 2210 | [email protected] "dots" |
2248 | [email protected] "dots" | 2211 | [email protected] |
2249 | [email protected] | 2212 | [email protected] "(" |
2250 | [email protected] "(" | 2213 | [email protected] ")" |
2251 | [email protected] ")" | 2214 | [email protected] ";" |
2252 | [email protected] ";" | 2215 | [email protected] "\n " |
2253 | [email protected] "\n " | 2216 | [email protected] |
2254 | [email protected] | 2217 | [email protected] |
2255 | [email protected] | 2218 | [email protected] |
2256 | [email protected] | 2219 | [email protected] |
2257 | [email protected] | 2220 | [email protected] |
2258 | [email protected] | 2221 | [email protected] |
2259 | [email protected] | 2222 | [email protected] "u8" |
2260 | [email protected] "u8" | 2223 | [email protected] |
2261 | [email protected] | 2224 | [email protected] "(" |
2262 | [email protected] "(" | 2225 | [email protected] |
2263 | [email protected] | 2226 | [email protected] "8u8" |
2264 | [email protected] "8u8" | 2227 | [email protected] ")" |
2265 | [email protected] ")" | 2228 | [email protected] ";" |
2266 | [email protected] ";" | 2229 | [email protected] "\n " |
2267 | [email protected] "\n " | 2230 | [email protected] |
2268 | [email protected] | 2231 | [email protected] |
2269 | [email protected] | 2232 | [email protected] |
2270 | [email protected] | 2233 | [email protected] |
2271 | [email protected] | 2234 | [email protected] |
2272 | [email protected] | 2235 | [email protected] |
2273 | [email protected] | 2236 | [email protected] "fishy" |
2274 | [email protected] "fishy" | 2237 | [email protected] |
2275 | [email protected] | 2238 | [email protected] "(" |
2276 | [email protected] "(" | 2239 | [email protected] ")" |
2277 | [email protected] ")" | 2240 | [email protected] ";" |
2278 | [email protected] ";" | 2241 | [email protected] "\n " |
2279 | [email protected] "\n " | 2242 | [email protected] |
2280 | [email protected] | 2243 | [email protected] |
2281 | [email protected] | 2244 | [email protected] |
2282 | [email protected] | 2245 | [email protected] |
2283 | [email protected] | 2246 | [email protected] |
2284 | [email protected] | 2247 | [email protected] |
2285 | [email protected] | 2248 | [email protected] "union" |
2286 | [email protected] "union" | 2249 | [email protected] |
2287 | [email protected] | 2250 | [email protected] "(" |
2288 | [email protected] "(" | 2251 | [email protected] ")" |
2289 | [email protected] ")" | 2252 | [email protected] ";" |
2290 | [email protected] ";" | 2253 | [email protected] "\n " |
2291 | [email protected] "\n " | 2254 | [email protected] |
2292 | [email protected] | 2255 | [email protected] |
2293 | [email protected] | 2256 | [email protected] |
2294 | [email protected] | 2257 | [email protected] |
2295 | [email protected] | 2258 | [email protected] |
2296 | [email protected] | 2259 | [email protected] |
2297 | [email protected] | 2260 | [email protected] "special_characters" |
2298 | [email protected] "special_characters" | 2261 | [email protected] |
2299 | [email protected] | 2262 | [email protected] "(" |
2300 | [email protected] "(" | 2263 | [email protected] ")" |
2301 | [email protected] ")" | 2264 | [email protected] ";" |
2302 | [email protected] ";" | 2265 | [email protected] "\n " |
2303 | [email protected] "\n " | 2266 | [email protected] |
2304 | [email protected] | 2267 | [email protected] |
2305 | [email protected] | 2268 | [email protected] |
2306 | [email protected] | 2269 | [email protected] |
2307 | [email protected] | 2270 | [email protected] |
2308 | [email protected] | 2271 | [email protected] |
2309 | [email protected] | 2272 | [email protected] "punch_card" |
2310 | [email protected] "punch_card" | 2273 | [email protected] |
2311 | [email protected] | 2274 | [email protected] "(" |
2312 | [email protected] "(" | 2275 | [email protected] ")" |
2313 | [email protected] ")" | 2276 | [email protected] ";" |
2314 | [email protected] ";" | 2277 | [email protected] "\n " |
2315 | [email protected] "\n " | 2278 | [email protected] |
2316 | [email protected] | 2279 | [email protected] |
2317 | [email protected] | 2280 | [email protected] |
2318 | [email protected] | 2281 | [email protected] |
2319 | [email protected] | 2282 | [email protected] |
2320 | [email protected] | 2283 | [email protected] |
2321 | [email protected] | 2284 | [email protected] "ktulhu" |
2322 | [email protected] "ktulhu" | 2285 | [email protected] |
2323 | [email protected] | 2286 | [email protected] "(" |
2324 | [email protected] "(" | 2287 | [email protected] ")" |
2325 | [email protected] ")" | 2288 | [email protected] ";" |
2326 | [email protected] ";" | 2289 | [email protected] "\n" |
2327 | [email protected] "\n" | 2290 | [email protected] "}" |
2328 | [email protected] "}" | ||
2329 | [email protected] "\n" | 2291 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast b/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast index 8f616623b..a64a82e94 100644 --- a/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast +++ b/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast | |||
@@ -76,18 +76,17 @@ [email protected] | |||
76 | [email protected] "," | 76 | [email protected] "," |
77 | [email protected] "\n" | 77 | [email protected] "\n" |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "{" |
80 | [email protected] "{" | 80 | [email protected] "\n " |
81 | [email protected] "\n " | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "\"\"" |
84 | [email protected] "\"\"" | 84 | [email protected] "." |
85 | [email protected] "." | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] "to_owned" |
87 | [email protected] "to_owned" | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] "(" |
89 | [email protected] "(" | 89 | [email protected] ")" |
90 | [email protected] ")" | 90 | [email protected] "\n" |
91 | [email protected] "\n" | 91 | [email protected] "}" |
92 | [email protected] "}" | ||
93 | [email protected] "\n" | 92 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast b/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast index 14d82feb0..7fd414090 100644 --- a/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast +++ b/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast | |||
@@ -38,6 +38,5 @@ [email protected] | |||
38 | [email protected] "Foo" | 38 | [email protected] "Foo" |
39 | [email protected] " " | 39 | [email protected] " " |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "{" |
42 | [email protected] "{" | 42 | [email protected] "}" |
43 | [email protected] "}" | ||
diff --git a/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast b/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast index d38a60665..17be2c238 100644 --- a/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast +++ b/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast | |||
@@ -9,8 +9,7 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n" |
14 | [email protected] "\n" | 14 | [email protected] "}" |
15 | [email protected] "}" | ||
16 | [email protected] "\n" | 15 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast b/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast index db25bc2b8..acf32a852 100644 --- a/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast +++ b/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast | |||
@@ -9,42 +9,41 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "r#struct" |
20 | [email protected] "r#struct" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "=" |
22 | [email protected] "=" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "92" |
25 | [email protected] "92" | 25 | [email protected] ";" |
26 | [email protected] ";" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "let" |
29 | [email protected] "let" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "r#trait" |
33 | [email protected] "r#trait" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] "=" |
35 | [email protected] "=" | 35 | [email protected] " " |
36 | [email protected] " " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "r#struct" |
42 | [email protected] "r#struct" | 42 | [email protected] " " |
43 | [email protected] " " | 43 | [email protected] "*" |
44 | [email protected] "*" | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] "2" |
47 | [email protected] "2" | 47 | [email protected] ";" |
48 | [email protected] ";" | 48 | [email protected] " " |
49 | [email protected] " " | 49 | [email protected] "}" |
50 | [email protected] "}" | ||
diff --git a/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast b/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast index 9704bea95..468982b74 100644 --- a/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast +++ b/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast | |||
@@ -39,20 +39,19 @@ [email protected] | |||
39 | [email protected] "bool" | 39 | [email protected] "bool" |
40 | [email protected] " " | 40 | [email protected] " " |
41 | [email protected] | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "{" |
43 | [email protected] "{" | 43 | [email protected] "\n " |
44 | [email protected] "\n " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "unimplemented" |
49 | [email protected] "unimplemented" | 49 | [email protected] "!" |
50 | [email protected] "!" | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "(" |
52 | [email protected] "(" | 52 | [email protected] ")" |
53 | [email protected] ")" | 53 | [email protected] "\n " |
54 | [email protected] "\n " | 54 | [email protected] "}" |
55 | [email protected] "}" | ||
56 | [email protected] "\n" | 55 | [email protected] "\n" |
57 | [email protected] "}" | 56 | [email protected] "}" |
58 | [email protected] "\n\n" | 57 | [email protected] "\n\n" |
@@ -76,9 +75,8 @@ [email protected] | |||
76 | [email protected] ")" | 75 | [email protected] ")" |
77 | [email protected] " " | 76 | [email protected] " " |
78 | [email protected] | 77 | [email protected] |
79 | [email protected] | 78 | [email protected] "{" |
80 | [email protected] "{" | 79 | [email protected] "}" |
81 | [email protected] "}" | ||
82 | [email protected] "\n\n" | 80 | [email protected] "\n\n" |
83 | [email protected] | 81 | [email protected] |
84 | [email protected] "fn" | 82 | [email protected] "fn" |
@@ -90,37 +88,36 @@ [email protected] | |||
90 | [email protected] ")" | 88 | [email protected] ")" |
91 | [email protected] " " | 89 | [email protected] " " |
92 | [email protected] | 90 | [email protected] |
93 | [email protected] | 91 | [email protected] "{" |
94 | [email protected] "{" | 92 | [email protected] "\n " |
95 | [email protected] "\n " | 93 | [email protected] |
96 | [email protected] | 94 | [email protected] |
97 | [email protected] | 95 | [email protected] |
98 | [email protected] | 96 | [email protected] |
99 | [email protected] | 97 | [email protected] |
100 | [email protected] | 98 | [email protected] "baz" |
101 | [email protected] "baz" | 99 | [email protected] |
102 | [email protected] | 100 | [email protected] "(" |
103 | [email protected] "(" | 101 | [email protected] |
104 | [email protected] | 102 | [email protected] |
105 | [email protected] | 103 | [email protected] |
106 | [email protected] | 104 | [email protected] |
107 | [email protected] | 105 | [email protected] |
108 | [email protected] | 106 | [email protected] "<" |
109 | [email protected] "<" | 107 | [email protected] |
110 | [email protected] | 108 | [email protected] |
111 | [email protected] | 109 | [email protected] |
112 | [email protected] | 110 | [email protected] |
113 | [email protected] | 111 | [email protected] "Foo" |
114 | [email protected] "Foo" | 112 | [email protected] ">" |
115 | [email protected] ">" | 113 | [email protected] "::" |
116 | [email protected] "::" | 114 | [email protected] |
117 | [email protected] | 115 | [email protected] |
118 | [email protected] | 116 | [email protected] "bar" |
119 | [email protected] "bar" | 117 | [email protected] |
120 | [email protected] | 118 | [email protected] "(" |
121 | [email protected] "(" | 119 | [email protected] ")" |
122 | [email protected] ")" | 120 | [email protected] ")" |
123 | [email protected] ")" | 121 | [email protected] "\n" |
124 | [email protected] "\n" | 122 | [email protected] "}" |
125 | [email protected] "}" | ||
126 | [email protected] "\n" | 123 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast b/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast index 6e5b25748..900eeb445 100644 --- a/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast +++ b/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast | |||
@@ -40,71 +40,70 @@ [email protected] | |||
40 | [email protected] ")" | 40 | [email protected] ")" |
41 | [email protected] " " | 41 | [email protected] " " |
42 | [email protected] | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "{" |
44 | [email protected] "{" | 44 | [email protected] "\n " |
45 | [email protected] "\n " | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "Repr" |
54 | [email protected] "Repr" | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] "{" |
57 | [email protected] "{" | 57 | [email protected] " " |
58 | [email protected] " " | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] "raw" |
61 | [email protected] "raw" | 61 | [email protected] ":" |
62 | [email protected] ":" | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "[" |
65 | [email protected] "[" | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] "0" |
67 | [email protected] "0" | 67 | [email protected] "]" |
68 | [email protected] "]" | 68 | [email protected] " " |
69 | [email protected] " " | 69 | [email protected] "}" |
70 | [email protected] "}" | 70 | [email protected] "." |
71 | [email protected] "." | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] "raw" |
73 | [email protected] "raw" | 73 | [email protected] "[" |
74 | [email protected] "[" | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] "0" |
76 | [email protected] "0" | 76 | [email protected] "]" |
77 | [email protected] "]" | 77 | [email protected] " " |
78 | [email protected] " " | 78 | [email protected] "=" |
79 | [email protected] "=" | 79 | [email protected] " " |
80 | [email protected] " " | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] "0" |
82 | [email protected] "0" | 82 | [email protected] ";" |
83 | [email protected] ";" | 83 | [email protected] "\n " |
84 | [email protected] "\n " | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] |
90 | [email protected] | 90 | [email protected] "Repr" |
91 | [email protected] "Repr" | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] "{" |
93 | [email protected] "{" | 93 | [email protected] |
94 | [email protected] | 94 | [email protected] |
95 | [email protected] | 95 | [email protected] "raw" |
96 | [email protected] "raw" | 96 | [email protected] ":" |
97 | [email protected] ":" | 97 | [email protected] |
98 | [email protected] | 98 | [email protected] "[" |
99 | [email protected] "[" | 99 | [email protected] |
100 | [email protected] | 100 | [email protected] "0" |
101 | [email protected] "0" | 101 | [email protected] "]" |
102 | [email protected] "]" | 102 | [email protected] "}" |
103 | [email protected] "}" | 103 | [email protected] |
104 | [email protected] | 104 | [email protected] "(" |
105 | [email protected] "(" | 105 | [email protected] ")" |
106 | [email protected] ")" | 106 | [email protected] ";" |
107 | [email protected] ";" | 107 | [email protected] "\n" |
108 | [email protected] "\n" | 108 | [email protected] "}" |
109 | [email protected] "}" | ||
110 | [email protected] "\n" | 109 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast index f1eef3be0..6d941487b 100644 --- a/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast +++ b/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast | |||
@@ -11,66 +11,65 @@ [email protected] | |||
11 | [email protected] ")" | 11 | [email protected] ")" |
12 | [email protected] " " | 12 | [email protected] " " |
13 | [email protected] | 13 | [email protected] |
14 | [email protected] | 14 | [email protected] "{" |
15 | [email protected] "{" | 15 | [email protected] "\n " |
16 | [email protected] "\n " | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "#" |
19 | [email protected] "#" | 19 | [email protected] "[" |
20 | [email protected] "[" | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "cfg" |
24 | [email protected] "cfg" | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "(" |
26 | [email protected] "(" | 26 | [email protected] "feature" |
27 | [email protected] "feature" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] "=" |
29 | [email protected] "=" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] "\"backtrace\"" |
31 | [email protected] "\"backtrace\"" | 31 | [email protected] ")" |
32 | [email protected] ")" | 32 | [email protected] "]" |
33 | [email protected] "]" | 33 | [email protected] "\n " |
34 | [email protected] "\n " | 34 | [email protected] "let" |
35 | [email protected] "let" | 35 | [email protected] " " |
36 | [email protected] " " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "exit_code" |
39 | [email protected] "exit_code" | 39 | [email protected] " " |
40 | [email protected] " " | 40 | [email protected] "=" |
41 | [email protected] "=" | 41 | [email protected] " " |
42 | [email protected] " " | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "panic" |
49 | [email protected] "panic" | 49 | [email protected] "::" |
50 | [email protected] "::" | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "catch_unwind" |
53 | [email protected] "catch_unwind" | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "(" |
55 | [email protected] "(" | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] "move" |
57 | [email protected] "move" | 57 | [email protected] " " |
58 | [email protected] " " | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "|" |
60 | [email protected] "|" | 60 | [email protected] "|" |
61 | [email protected] "|" | 61 | [email protected] " " |
62 | [email protected] " " | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] "main" |
68 | [email protected] "main" | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] "(" |
70 | [email protected] "(" | 70 | [email protected] ")" |
71 | [email protected] ")" | 71 | [email protected] ")" |
72 | [email protected] ")" | 72 | [email protected] ";" |
73 | [email protected] ";" | 73 | [email protected] "\n" |
74 | [email protected] "\n" | 74 | [email protected] "}" |
75 | [email protected] "}" | ||
76 | [email protected] "\n" | 75 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast index f79feec19..e8b095251 100644 --- a/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast +++ b/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast | |||
@@ -9,86 +9,83 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "#" |
16 | [email protected] "#" | 16 | [email protected] "!" |
17 | [email protected] "!" | 17 | [email protected] "[" |
18 | [email protected] "[" | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "doc" |
22 | [email protected] "doc" | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "(" |
24 | [email protected] "(" | 24 | [email protected] "\"Inner attributes all ..." |
25 | [email protected] "\"Inner attributes all ..." | 25 | [email protected] ")" |
26 | [email protected] ")" | 26 | [email protected] "]" |
27 | [email protected] "]" | 27 | [email protected] "\n " |
28 | [email protected] "\n " | 28 | [email protected] "//! As are ModuleDoc ..." |
29 | [email protected] "//! As are ModuleDoc ..." | 29 | [email protected] "\n " |
30 | [email protected] "\n " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "{" |
33 | [email protected] | 33 | [email protected] "\n " |
34 | [email protected] "{" | 34 | [email protected] |
35 | [email protected] "\n " | 35 | [email protected] "#" |
36 | [email protected] | 36 | [email protected] "!" |
37 | [email protected] "#" | 37 | [email protected] "[" |
38 | [email protected] "!" | 38 | [email protected] |
39 | [email protected] "[" | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "doc" |
42 | [email protected] | 42 | [email protected] |
43 | [email protected] "doc" | 43 | [email protected] "(" |
44 | [email protected] | 44 | [email protected] "\"Inner attributes are ..." |
45 | [email protected] "(" | 45 | [email protected] ")" |
46 | [email protected] "\"Inner attributes are ..." | 46 | [email protected] "]" |
47 | [email protected] ")" | 47 | [email protected] "\n " |
48 | [email protected] "]" | 48 | [email protected] |
49 | [email protected] "\n " | 49 | [email protected] "#" |
50 | [email protected] | 50 | [email protected] "!" |
51 | [email protected] "#" | 51 | [email protected] "[" |
52 | [email protected] "!" | 52 | [email protected] |
53 | [email protected] "[" | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "doc" |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] "doc" | 57 | [email protected] "(" |
58 | [email protected] | 58 | [email protected] "\"Being validated is n ..." |
59 | [email protected] "(" | 59 | [email protected] ")" |
60 | [email protected] "\"Being validated is n ..." | 60 | [email protected] "]" |
61 | [email protected] ")" | 61 | [email protected] "\n " |
62 | [email protected] "]" | 62 | [email protected] "//! As are ModuleDoc ..." |
63 | [email protected] "\n " | 63 | [email protected] "\n " |
64 | [email protected] "//! As are ModuleDoc ..." | 64 | [email protected] "}" |
65 | [email protected] "\n " | 65 | [email protected] ";" |
66 | [email protected] "}" | 66 | [email protected] "\n " |
67 | [email protected] ";" | 67 | [email protected] |
68 | [email protected] "\n " | 68 | [email protected] "{" |
69 | [email protected] | 69 | [email protected] "\n " |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] "{" | 71 | [email protected] "#" |
72 | [email protected] "\n " | 72 | [email protected] "!" |
73 | [email protected] | 73 | [email protected] "[" |
74 | [email protected] "#" | 74 | [email protected] |
75 | [email protected] "!" | 75 | [email protected] |
76 | [email protected] "[" | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] "doc" |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "(" |
80 | [email protected] "doc" | 80 | [email protected] "\"Inner attributes are ..." |
81 | [email protected] | 81 | [email protected] ")" |
82 | [email protected] "(" | 82 | [email protected] "]" |
83 | [email protected] "\"Inner attributes are ..." | 83 | [email protected] "\n " |
84 | [email protected] ")" | 84 | [email protected] "//! As are ModuleDoc ..." |
85 | [email protected] "]" | 85 | [email protected] "\n " |
86 | [email protected] "\n " | 86 | [email protected] "}" |
87 | [email protected] "//! As are ModuleDoc ..." | 87 | [email protected] "\n" |
88 | [email protected] "\n " | 88 | [email protected] "}" |
89 | [email protected] "}" | ||
90 | [email protected] "\n" | ||
91 | [email protected] "}" | ||
92 | [email protected] "\n\n" | 89 | [email protected] "\n\n" |
93 | [email protected] "// https://github.com ..." | 90 | [email protected] "// https://github.com ..." |
94 | [email protected] "\n" | 91 | [email protected] "\n" |
@@ -156,26 +153,25 @@ [email protected] | |||
156 | [email protected] ")" | 153 | [email protected] ")" |
157 | [email protected] " " | 154 | [email protected] " " |
158 | [email protected] | 155 | [email protected] |
159 | [email protected] | 156 | [email protected] "{" |
160 | [email protected] "{" | 157 | [email protected] "\n " |
161 | [email protected] "\n " | 158 | [email protected] |
162 | [email protected] | 159 | [email protected] "#" |
163 | [email protected] "#" | 160 | [email protected] "!" |
164 | [email protected] "!" | 161 | [email protected] "[" |
165 | [email protected] "[" | 162 | [email protected] |
166 | [email protected] | 163 | [email protected] |
167 | [email protected] | 164 | [email protected] |
168 | [email protected] | 165 | [email protected] "allow" |
169 | [email protected] "allow" | 166 | [email protected] |
170 | [email protected] | 167 | [email protected] "(" |
171 | [email protected] "(" | 168 | [email protected] "unused_variables" |
172 | [email protected] "unused_variables" | 169 | [email protected] ")" |
173 | [email protected] ")" | 170 | [email protected] "]" |
174 | [email protected] "]" | 171 | [email protected] " " |
175 | [email protected] " " | 172 | [email protected] "// this is `inner_at ..." |
176 | [email protected] "// this is `inner_at ..." | 173 | [email protected] "\n " |
177 | [email protected] "\n " | 174 | [email protected] "}" |
178 | [email protected] "}" | ||
179 | [email protected] "\n" | 175 | [email protected] "\n" |
180 | [email protected] "}" | 176 | [email protected] "}" |
181 | [email protected] "\n" | 177 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast b/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast index 1cf12d670..38e44e48a 100644 --- a/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast +++ b/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast | |||
@@ -11,252 +11,250 @@ [email protected] | |||
11 | [email protected] ")" | 11 | [email protected] ")" |
12 | [email protected] " " | 12 | [email protected] " " |
13 | [email protected] | 13 | [email protected] |
14 | [email protected] | 14 | [email protected] "{" |
15 | [email protected] "{" | 15 | [email protected] "\n " |
16 | [email protected] "\n " | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "match" |
19 | [email protected] "match" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "Some" |
26 | [email protected] "Some" | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "(" |
28 | [email protected] "(" | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "-" |
30 | [email protected] "-" | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "1" |
32 | [email protected] "1" | 32 | [email protected] ")" |
33 | [email protected] ")" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "{" |
36 | [email protected] "{" | 36 | [email protected] "\n " |
37 | [email protected] "\n " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "Some" |
43 | [email protected] "Some" | 43 | [email protected] "(" |
44 | [email protected] "(" | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "-" |
46 | [email protected] "-" | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "1" |
48 | [email protected] "1" | 48 | [email protected] ")" |
49 | [email protected] ")" | 49 | [email protected] " " |
50 | [email protected] " " | 50 | [email protected] "=>" |
51 | [email protected] "=>" | 51 | [email protected] " " |
52 | [email protected] " " | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "(" |
54 | [email protected] "(" | 54 | [email protected] ")" |
55 | [email protected] ")" | 55 | [email protected] "," |
56 | [email protected] "," | 56 | [email protected] "\n " |
57 | [email protected] "\n " | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] "_" |
60 | [email protected] "_" | 60 | [email protected] " " |
61 | [email protected] " " | 61 | [email protected] "=>" |
62 | [email protected] "=>" | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "(" |
65 | [email protected] "(" | 65 | [email protected] ")" |
66 | [email protected] ")" | 66 | [email protected] "," |
67 | [email protected] "," | 67 | [email protected] "\n " |
68 | [email protected] "\n " | 68 | [email protected] "}" |
69 | [email protected] "}" | 69 | [email protected] "\n\n " |
70 | [email protected] "\n\n " | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] "match" |
73 | [email protected] "match" | 73 | [email protected] " " |
74 | [email protected] " " | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "Some" |
80 | [email protected] "Some" | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] "(" |
82 | [email protected] "(" | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "(" |
84 | [email protected] "(" | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] "-" |
86 | [email protected] "-" | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] "1" |
88 | [email protected] "1" | 88 | [email protected] "," |
89 | [email protected] "," | 89 | [email protected] " " |
90 | [email protected] " " | 90 | [email protected] |
91 | [email protected] | 91 | [email protected] "-" |
92 | [email protected] "-" | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] "1" |
94 | [email protected] "1" | 94 | [email protected] ")" |
95 | [email protected] ")" | 95 | [email protected] ")" |
96 | [email protected] ")" | 96 | [email protected] " " |
97 | [email protected] " " | 97 | [email protected] |
98 | [email protected] | 98 | [email protected] "{" |
99 | [email protected] "{" | 99 | [email protected] "\n " |
100 | [email protected] "\n " | 100 | [email protected] |
101 | [email protected] | 101 | [email protected] |
102 | [email protected] | 102 | [email protected] |
103 | [email protected] | 103 | [email protected] |
104 | [email protected] | 104 | [email protected] |
105 | [email protected] | 105 | [email protected] "Some" |
106 | [email protected] "Some" | 106 | [email protected] "(" |
107 | [email protected] "(" | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] "(" |
109 | [email protected] "(" | 109 | [email protected] |
110 | [email protected] | 110 | [email protected] "-" |
111 | [email protected] "-" | 111 | [email protected] |
112 | [email protected] | 112 | [email protected] "1" |
113 | [email protected] "1" | 113 | [email protected] "," |
114 | [email protected] "," | 114 | [email protected] " " |
115 | [email protected] " " | 115 | [email protected] |
116 | [email protected] | 116 | [email protected] "-" |
117 | [email protected] "-" | 117 | [email protected] |
118 | [email protected] | 118 | [email protected] "1" |
119 | [email protected] "1" | 119 | [email protected] ")" |
120 | [email protected] ")" | 120 | [email protected] ")" |
121 | [email protected] ")" | 121 | [email protected] " " |
122 | [email protected] " " | 122 | [email protected] "=>" |
123 | [email protected] "=>" | 123 | [email protected] " " |
124 | [email protected] " " | 124 | [email protected] |
125 | [email protected] | 125 | [email protected] "(" |
126 | [email protected] "(" | 126 | [email protected] ")" |
127 | [email protected] ")" | 127 | [email protected] "," |
128 | [email protected] "," | 128 | [email protected] "\n " |
129 | [email protected] "\n " | 129 | [email protected] |
130 | [email protected] | 130 | [email protected] |
131 | [email protected] | 131 | [email protected] "_" |
132 | [email protected] "_" | 132 | [email protected] " " |
133 | [email protected] " " | 133 | [email protected] "=>" |
134 | [email protected] "=>" | 134 | [email protected] " " |
135 | [email protected] " " | 135 | [email protected] |
136 | [email protected] | 136 | [email protected] "(" |
137 | [email protected] "(" | 137 | [email protected] ")" |
138 | [email protected] ")" | 138 | [email protected] "," |
139 | [email protected] "," | 139 | [email protected] "\n " |
140 | [email protected] "\n " | 140 | [email protected] "}" |
141 | [email protected] "}" | 141 | [email protected] "\n\n " |
142 | [email protected] "\n\n " | 142 | [email protected] |
143 | [email protected] | 143 | [email protected] |
144 | [email protected] | 144 | [email protected] "match" |
145 | [email protected] "match" | 145 | [email protected] " " |
146 | [email protected] " " | 146 | [email protected] |
147 | [email protected] | 147 | [email protected] |
148 | [email protected] | 148 | [email protected] |
149 | [email protected] | 149 | [email protected] |
150 | [email protected] | 150 | [email protected] |
151 | [email protected] | 151 | [email protected] |
152 | [email protected] | 152 | [email protected] "A" |
153 | [email protected] "A" | 153 | [email protected] "::" |
154 | [email protected] "::" | 154 | [email protected] |
155 | [email protected] | 155 | [email protected] |
156 | [email protected] | 156 | [email protected] "B" |
157 | [email protected] "B" | 157 | [email protected] |
158 | [email protected] | 158 | [email protected] "(" |
159 | [email protected] "(" | 159 | [email protected] |
160 | [email protected] | 160 | [email protected] "-" |
161 | [email protected] "-" | 161 | [email protected] |
162 | [email protected] | 162 | [email protected] "1" |
163 | [email protected] "1" | 163 | [email protected] "," |
164 | [email protected] "," | 164 | [email protected] " " |
165 | [email protected] " " | 165 | [email protected] |
166 | [email protected] | 166 | [email protected] "-" |
167 | [email protected] "-" | 167 | [email protected] |
168 | [email protected] | 168 | [email protected] "1" |
169 | [email protected] "1" | 169 | [email protected] ")" |
170 | [email protected] ")" | 170 | [email protected] " " |
171 | [email protected] " " | 171 | [email protected] |
172 | [email protected] | 172 | [email protected] "{" |
173 | [email protected] "{" | 173 | [email protected] "\n " |
174 | [email protected] "\n " | 174 | [email protected] |
175 | [email protected] | 175 | [email protected] |
176 | [email protected] | 176 | [email protected] |
177 | [email protected] | 177 | [email protected] |
178 | [email protected] | 178 | [email protected] |
179 | [email protected] | 179 | [email protected] |
180 | [email protected] | 180 | [email protected] "A" |
181 | [email protected] "A" | 181 | [email protected] "::" |
182 | [email protected] "::" | 182 | [email protected] |
183 | [email protected] | 183 | [email protected] |
184 | [email protected] | 184 | [email protected] "B" |
185 | [email protected] "B" | 185 | [email protected] "(" |
186 | [email protected] "(" | 186 | [email protected] |
187 | [email protected] | 187 | [email protected] "-" |
188 | [email protected] "-" | 188 | [email protected] |
189 | [email protected] | 189 | [email protected] "1" |
190 | [email protected] "1" | 190 | [email protected] "," |
191 | [email protected] "," | 191 | [email protected] " " |
192 | [email protected] " " | 192 | [email protected] |
193 | [email protected] | 193 | [email protected] "-" |
194 | [email protected] "-" | 194 | [email protected] |
195 | [email protected] | 195 | [email protected] "1" |
196 | [email protected] "1" | 196 | [email protected] ")" |
197 | [email protected] ")" | 197 | [email protected] " " |
198 | [email protected] " " | 198 | [email protected] "=>" |
199 | [email protected] "=>" | 199 | [email protected] " " |
200 | [email protected] " " | 200 | [email protected] |
201 | [email protected] | 201 | [email protected] "(" |
202 | [email protected] "(" | 202 | [email protected] ")" |
203 | [email protected] ")" | 203 | [email protected] "," |
204 | [email protected] "," | 204 | [email protected] "\n " |
205 | [email protected] "\n " | 205 | [email protected] |
206 | [email protected] | 206 | [email protected] |
207 | [email protected] | 207 | [email protected] "_" |
208 | [email protected] "_" | 208 | [email protected] " " |
209 | [email protected] " " | 209 | [email protected] "=>" |
210 | [email protected] "=>" | 210 | [email protected] " " |
211 | [email protected] " " | 211 | [email protected] |
212 | [email protected] | 212 | [email protected] "(" |
213 | [email protected] "(" | 213 | [email protected] ")" |
214 | [email protected] ")" | 214 | [email protected] "," |
215 | [email protected] "," | 215 | [email protected] "\n " |
216 | [email protected] "\n " | 216 | [email protected] "}" |
217 | [email protected] "}" | 217 | [email protected] "\n\n " |
218 | [email protected] "\n\n " | 218 | [email protected] |
219 | [email protected] | 219 | [email protected] "if" |
220 | [email protected] "if" | 220 | [email protected] " " |
221 | [email protected] " " | 221 | [email protected] |
222 | [email protected] | 222 | [email protected] "let" |
223 | [email protected] "let" | 223 | [email protected] " " |
224 | [email protected] " " | 224 | [email protected] |
225 | [email protected] | 225 | [email protected] |
226 | [email protected] | 226 | [email protected] |
227 | [email protected] | 227 | [email protected] |
228 | [email protected] | 228 | [email protected] "Some" |
229 | [email protected] "Some" | 229 | [email protected] "(" |
230 | [email protected] "(" | 230 | [email protected] |
231 | [email protected] | 231 | [email protected] "-" |
232 | [email protected] "-" | 232 | [email protected] |
233 | [email protected] | 233 | [email protected] "1" |
234 | [email protected] "1" | 234 | [email protected] ")" |
235 | [email protected] ")" | 235 | [email protected] " " |
236 | [email protected] " " | 236 | [email protected] "=" |
237 | [email protected] "=" | 237 | [email protected] " " |
238 | [email protected] " " | 238 | [email protected] |
239 | [email protected] | 239 | [email protected] |
240 | [email protected] | 240 | [email protected] |
241 | [email protected] | 241 | [email protected] |
242 | [email protected] | 242 | [email protected] |
243 | [email protected] | 243 | [email protected] "Some" |
244 | [email protected] "Some" | 244 | [email protected] |
245 | [email protected] | 245 | [email protected] "(" |
246 | [email protected] "(" | 246 | [email protected] |
247 | [email protected] | 247 | [email protected] "-" |
248 | [email protected] "-" | 248 | [email protected] |
249 | [email protected] | 249 | [email protected] "1" |
250 | [email protected] "1" | 250 | [email protected] ")" |
251 | [email protected] ")" | 251 | [email protected] " " |
252 | [email protected] " " | 252 | [email protected] |
253 | [email protected] | 253 | [email protected] "{" |
254 | [email protected] | 254 | [email protected] "\n " |
255 | [email protected] "{" | 255 | [email protected] "}" |
256 | [email protected] "\n " | 256 | [email protected] "\n" |
257 | [email protected] "}" | 257 | [email protected] "}" |
258 | [email protected] "\n" | ||
259 | [email protected] "}" | ||
260 | [email protected] "\n\n" | 258 | [email protected] "\n\n" |
261 | [email protected] | 259 | [email protected] |
262 | [email protected] "enum" | 260 | [email protected] "enum" |
@@ -317,7 +315,6 @@ [email protected] | |||
317 | [email protected] ")" | 315 | [email protected] ")" |
318 | [email protected] " " | 316 | [email protected] " " |
319 | [email protected] | 317 | [email protected] |
320 | [email protected] | 318 | [email protected] "{" |
321 | [email protected] "{" | 319 | [email protected] "}" |
322 | [email protected] "}" | ||
323 | [email protected] "\n" | 320 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast b/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast index 9c2701bf7..28233c5d0 100644 --- a/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast +++ b/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast | |||
@@ -11,191 +11,190 @@ [email protected] | |||
11 | [email protected] ")" | 11 | [email protected] ")" |
12 | [email protected] " " | 12 | [email protected] " " |
13 | [email protected] | 13 | [email protected] |
14 | [email protected] | 14 | [email protected] "{" |
15 | [email protected] "{" | 15 | [email protected] "\n " |
16 | [email protected] "\n " | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] "let" |
18 | [email protected] "let" | 18 | [email protected] " " |
19 | [email protected] " " | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "mut" |
21 | [email protected] "mut" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "a" |
24 | [email protected] "a" | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] "=" |
26 | [email protected] "=" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "0" |
29 | [email protected] "0" | 29 | [email protected] ";" |
30 | [email protected] ";" | 30 | [email protected] "\n " |
31 | [email protected] "\n " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "a" |
38 | [email protected] "a" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] "+=" |
40 | [email protected] "+=" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "1" |
43 | [email protected] "1" | 43 | [email protected] ";" |
44 | [email protected] ";" | 44 | [email protected] "\n " |
45 | [email protected] "\n " | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "a" |
52 | [email protected] "a" | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] "-=" |
54 | [email protected] "-=" | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] "2" |
57 | [email protected] "2" | 57 | [email protected] ";" |
58 | [email protected] ";" | 58 | [email protected] "\n " |
59 | [email protected] "\n " | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] |
62 | [email protected] | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] "a" |
66 | [email protected] "a" | 66 | [email protected] " " |
67 | [email protected] " " | 67 | [email protected] "*=" |
68 | [email protected] "*=" | 68 | [email protected] " " |
69 | [email protected] " " | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] "3" |
71 | [email protected] "3" | 71 | [email protected] ";" |
72 | [email protected] ";" | 72 | [email protected] "\n " |
73 | [email protected] "\n " | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "a" |
80 | [email protected] "a" | 80 | [email protected] " " |
81 | [email protected] " " | 81 | [email protected] "%=" |
82 | [email protected] "%=" | 82 | [email protected] " " |
83 | [email protected] " " | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] "4" |
85 | [email protected] "4" | 85 | [email protected] ";" |
86 | [email protected] ";" | 86 | [email protected] "\n " |
87 | [email protected] "\n " | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] |
90 | [email protected] | 90 | [email protected] |
91 | [email protected] | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] "a" |
94 | [email protected] "a" | 94 | [email protected] " " |
95 | [email protected] " " | 95 | [email protected] "/=" |
96 | [email protected] "/=" | 96 | [email protected] " " |
97 | [email protected] " " | 97 | [email protected] |
98 | [email protected] | 98 | [email protected] "5" |
99 | [email protected] "5" | 99 | [email protected] ";" |
100 | [email protected] ";" | 100 | [email protected] "\n " |
101 | [email protected] "\n " | 101 | [email protected] |
102 | [email protected] | 102 | [email protected] |
103 | [email protected] | 103 | [email protected] |
104 | [email protected] | 104 | [email protected] |
105 | [email protected] | 105 | [email protected] |
106 | [email protected] | 106 | [email protected] |
107 | [email protected] | 107 | [email protected] "a" |
108 | [email protected] "a" | 108 | [email protected] " " |
109 | [email protected] " " | 109 | [email protected] "|=" |
110 | [email protected] "|=" | 110 | [email protected] " " |
111 | [email protected] " " | 111 | [email protected] |
112 | [email protected] | 112 | [email protected] "6" |
113 | [email protected] "6" | 113 | [email protected] ";" |
114 | [email protected] ";" | 114 | [email protected] "\n " |
115 | [email protected] "\n " | 115 | [email protected] |
116 | [email protected] | 116 | [email protected] |
117 | [email protected] | 117 | [email protected] |
118 | [email protected] | 118 | [email protected] |
119 | [email protected] | 119 | [email protected] |
120 | [email protected] | 120 | [email protected] |
121 | [email protected] | 121 | [email protected] "a" |
122 | [email protected] "a" | 122 | [email protected] " " |
123 | [email protected] " " | 123 | [email protected] "&=" |
124 | [email protected] "&=" | 124 | [email protected] " " |
125 | [email protected] " " | 125 | [email protected] |
126 | [email protected] | 126 | [email protected] "7" |
127 | [email protected] "7" | 127 | [email protected] ";" |
128 | [email protected] ";" | 128 | [email protected] "\n " |
129 | [email protected] "\n " | 129 | [email protected] |
130 | [email protected] | 130 | [email protected] |
131 | [email protected] | 131 | [email protected] |
132 | [email protected] | 132 | [email protected] |
133 | [email protected] | 133 | [email protected] |
134 | [email protected] | 134 | [email protected] |
135 | [email protected] | 135 | [email protected] "a" |
136 | [email protected] "a" | 136 | [email protected] " " |
137 | [email protected] " " | 137 | [email protected] "^=" |
138 | [email protected] "^=" | 138 | [email protected] " " |
139 | [email protected] " " | 139 | [email protected] |
140 | [email protected] | 140 | [email protected] "8" |
141 | [email protected] "8" | 141 | [email protected] ";" |
142 | [email protected] ";" | 142 | [email protected] "\n " |
143 | [email protected] "\n " | 143 | [email protected] |
144 | [email protected] | 144 | [email protected] |
145 | [email protected] | 145 | [email protected] |
146 | [email protected] | 146 | [email protected] |
147 | [email protected] | 147 | [email protected] |
148 | [email protected] | 148 | [email protected] |
149 | [email protected] | 149 | [email protected] "a" |
150 | [email protected] "a" | 150 | [email protected] " " |
151 | [email protected] " " | 151 | [email protected] "<=" |
152 | [email protected] "<=" | 152 | [email protected] " " |
153 | [email protected] " " | 153 | [email protected] |
154 | [email protected] | 154 | [email protected] "9" |
155 | [email protected] "9" | 155 | [email protected] ";" |
156 | [email protected] ";" | 156 | [email protected] "\n " |
157 | [email protected] "\n " | 157 | [email protected] |
158 | [email protected] | 158 | [email protected] |
159 | [email protected] | 159 | [email protected] |
160 | [email protected] | 160 | [email protected] |
161 | [email protected] | 161 | [email protected] |
162 | [email protected] | 162 | [email protected] |
163 | [email protected] | 163 | [email protected] "a" |
164 | [email protected] "a" | 164 | [email protected] " " |
165 | [email protected] " " | 165 | [email protected] ">=" |
166 | [email protected] ">=" | 166 | [email protected] " " |
167 | [email protected] " " | 167 | [email protected] |
168 | [email protected] | 168 | [email protected] "10" |
169 | [email protected] "10" | 169 | [email protected] ";" |
170 | [email protected] ";" | 170 | [email protected] "\n " |
171 | [email protected] "\n " | 171 | [email protected] |
172 | [email protected] | 172 | [email protected] |
173 | [email protected] | 173 | [email protected] |
174 | [email protected] | 174 | [email protected] |
175 | [email protected] | 175 | [email protected] |
176 | [email protected] | 176 | [email protected] |
177 | [email protected] | 177 | [email protected] "a" |
178 | [email protected] "a" | 178 | [email protected] " " |
179 | [email protected] " " | 179 | [email protected] ">>=" |
180 | [email protected] ">>=" | 180 | [email protected] " " |
181 | [email protected] " " | 181 | [email protected] |
182 | [email protected] | 182 | [email protected] "11" |
183 | [email protected] "11" | 183 | [email protected] ";" |
184 | [email protected] ";" | 184 | [email protected] "\n " |
185 | [email protected] "\n " | 185 | [email protected] |
186 | [email protected] | 186 | [email protected] |
187 | [email protected] | 187 | [email protected] |
188 | [email protected] | 188 | [email protected] |
189 | [email protected] | 189 | [email protected] |
190 | [email protected] | 190 | [email protected] |
191 | [email protected] | 191 | [email protected] "a" |
192 | [email protected] "a" | 192 | [email protected] " " |
193 | [email protected] " " | 193 | [email protected] "<<=" |
194 | [email protected] "<<=" | 194 | [email protected] " " |
195 | [email protected] " " | 195 | [email protected] |
196 | [email protected] | 196 | [email protected] "12" |
197 | [email protected] "12" | 197 | [email protected] ";" |
198 | [email protected] ";" | 198 | [email protected] "\n" |
199 | [email protected] "\n" | 199 | [email protected] "}" |
200 | [email protected] "}" | ||
201 | [email protected] "\n" | 200 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast b/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast index 750527bb9..0569488f8 100644 --- a/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast +++ b/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast | |||
@@ -9,28 +9,27 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "async" |
17 | [email protected] "async" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "{" |
20 | [email protected] "{" | 20 | [email protected] "}" |
21 | [email protected] "}" | 21 | [email protected] ";" |
22 | [email protected] ";" | 22 | [email protected] "\n " |
23 | [email protected] "\n " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "async" |
26 | [email protected] "async" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] "move" |
28 | [email protected] "move" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "{" |
31 | [email protected] "{" | 31 | [email protected] "}" |
32 | [email protected] "}" | 32 | [email protected] ";" |
33 | [email protected] ";" | 33 | [email protected] "\n" |
34 | [email protected] "\n" | 34 | [email protected] "}" |
35 | [email protected] "}" | ||
36 | [email protected] "\n\n" | 35 | [email protected] "\n\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast b/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast index b5577e933..7847da085 100644 --- a/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast +++ b/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast | |||
@@ -49,9 +49,8 @@ [email protected] | |||
49 | [email protected] ")" | 49 | [email protected] ")" |
50 | [email protected] " " | 50 | [email protected] " " |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "{" |
53 | [email protected] "{" | 53 | [email protected] "}" |
54 | [email protected] "}" | ||
55 | [email protected] "\n\n" | 54 | [email protected] "\n\n" |
56 | [email protected] | 55 | [email protected] |
57 | [email protected] "fn" | 56 | [email protected] "fn" |
@@ -63,30 +62,29 @@ [email protected] | |||
63 | [email protected] ")" | 62 | [email protected] ")" |
64 | [email protected] " " | 63 | [email protected] " " |
65 | [email protected] | 64 | [email protected] |
66 | [email protected] | 65 | [email protected] "{" |
67 | [email protected] "{" | 66 | [email protected] "\n " |
68 | [email protected] "\n " | 67 | [email protected] |
69 | [email protected] | 68 | [email protected] |
70 | [email protected] | 69 | [email protected] |
71 | [email protected] | 70 | [email protected] |
72 | [email protected] | 71 | [email protected] |
73 | [email protected] | 72 | [email protected] "foo" |
74 | [email protected] "foo" | 73 | [email protected] |
75 | [email protected] | 74 | [email protected] "(" |
76 | [email protected] "(" | 75 | [email protected] |
77 | [email protected] | 76 | [email protected] "async" |
78 | [email protected] "async" | 77 | [email protected] " " |
79 | [email protected] " " | 78 | [email protected] "move" |
80 | [email protected] "move" | 79 | [email protected] " " |
81 | [email protected] " " | 80 | [email protected] |
82 | [email protected] | 81 | [email protected] "{" |
83 | [email protected] "{" | 82 | [email protected] " " |
84 | [email protected] " " | 83 | [email protected] |
85 | [email protected] | 84 | [email protected] "12" |
86 | [email protected] "12" | 85 | [email protected] " " |
87 | [email protected] " " | 86 | [email protected] "}" |
88 | [email protected] "}" | 87 | [email protected] ")" |
89 | [email protected] ")" | 88 | [email protected] "\n" |
90 | [email protected] "\n" | 89 | [email protected] "}" |
91 | [email protected] "}" | ||
92 | [email protected] "\n" | 90 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast index 6aacc2141..816740a7c 100644 --- a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast +++ b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast | |||
@@ -38,9 +38,8 @@ [email protected] | |||
38 | [email protected] ")" | 38 | [email protected] ")" |
39 | [email protected] " " | 39 | [email protected] " " |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "{" |
42 | [email protected] "{" | 42 | [email protected] "}" |
43 | [email protected] "}" | ||
44 | [email protected] "\n" | 43 | [email protected] "\n" |
45 | [email protected] | 44 | [email protected] |
46 | [email protected] "fn" | 45 | [email protected] "fn" |
@@ -72,9 +71,8 @@ [email protected] | |||
72 | [email protected] ")" | 71 | [email protected] ")" |
73 | [email protected] " " | 72 | [email protected] " " |
74 | [email protected] | 73 | [email protected] |
75 | [email protected] | 74 | [email protected] "{" |
76 | [email protected] "{" | 75 | [email protected] "}" |
77 | [email protected] "}" | ||
78 | [email protected] "\n\n" | 76 | [email protected] "\n\n" |
79 | [email protected] | 77 | [email protected] |
80 | [email protected] | 78 | [email protected] |
@@ -185,9 +183,8 @@ [email protected] | |||
185 | [email protected] "(" | 183 | [email protected] "(" |
186 | [email protected] ")" | 184 | [email protected] ")" |
187 | [email protected] | 185 | [email protected] |
188 | [email protected] | 186 | [email protected] "{" |
189 | [email protected] "{" | 187 | [email protected] "}" |
190 | [email protected] "}" | ||
191 | [email protected] "\n\n" | 188 | [email protected] "\n\n" |
192 | [email protected] | 189 | [email protected] |
193 | [email protected] "trait" | 190 | [email protected] "trait" |
@@ -287,9 +284,8 @@ [email protected] | |||
287 | [email protected] ")" | 284 | [email protected] ")" |
288 | [email protected] " " | 285 | [email protected] " " |
289 | [email protected] | 286 | [email protected] |
290 | [email protected] | 287 | [email protected] "{" |
291 | [email protected] "{" | 288 | [email protected] "}" |
292 | [email protected] "}" | ||
293 | [email protected] "\n " | 289 | [email protected] "\n " |
294 | [email protected] | 290 | [email protected] |
295 | [email protected] "fn" | 291 | [email protected] "fn" |
@@ -312,9 +308,8 @@ [email protected] | |||
312 | [email protected] ")" | 308 | [email protected] ")" |
313 | [email protected] " " | 309 | [email protected] " " |
314 | [email protected] | 310 | [email protected] |
315 | [email protected] | 311 | [email protected] "{" |
316 | [email protected] "{" | 312 | [email protected] "}" |
317 | [email protected] "}" | ||
318 | [email protected] "\n " | 313 | [email protected] "\n " |
319 | [email protected] | 314 | [email protected] |
320 | [email protected] "fn" | 315 | [email protected] "fn" |
@@ -338,9 +333,8 @@ [email protected] | |||
338 | [email protected] ")" | 333 | [email protected] ")" |
339 | [email protected] " " | 334 | [email protected] " " |
340 | [email protected] | 335 | [email protected] |
341 | [email protected] | 336 | [email protected] "{" |
342 | [email protected] "{" | 337 | [email protected] "}" |
343 | [email protected] "}" | ||
344 | [email protected] "\n " | 338 | [email protected] "\n " |
345 | [email protected] | 339 | [email protected] |
346 | [email protected] "fn" | 340 | [email protected] "fn" |
@@ -371,9 +365,8 @@ [email protected] | |||
371 | [email protected] ")" | 365 | [email protected] ")" |
372 | [email protected] " " | 366 | [email protected] " " |
373 | [email protected] | 367 | [email protected] |
374 | [email protected] | 368 | [email protected] "{" |
375 | [email protected] "{" | 369 | [email protected] "}" |
376 | [email protected] "}" | ||
377 | [email protected] "\n " | 370 | [email protected] "\n " |
378 | [email protected] | 371 | [email protected] |
379 | [email protected] "fn" | 372 | [email protected] "fn" |
@@ -404,9 +397,8 @@ [email protected] | |||
404 | [email protected] ")" | 397 | [email protected] ")" |
405 | [email protected] " " | 398 | [email protected] " " |
406 | [email protected] | 399 | [email protected] |
407 | [email protected] | 400 | [email protected] "{" |
408 | [email protected] "{" | 401 | [email protected] "}" |
409 | [email protected] "}" | ||
410 | [email protected] "\n " | 402 | [email protected] "\n " |
411 | [email protected] | 403 | [email protected] |
412 | [email protected] "fn" | 404 | [email protected] "fn" |
@@ -439,9 +431,8 @@ [email protected] | |||
439 | [email protected] ")" | 431 | [email protected] ")" |
440 | [email protected] " " | 432 | [email protected] " " |
441 | [email protected] | 433 | [email protected] |
442 | [email protected] | 434 | [email protected] "{" |
443 | [email protected] "{" | 435 | [email protected] "}" |
444 | [email protected] "}" | ||
445 | [email protected] "\n " | 436 | [email protected] "\n " |
446 | [email protected] | 437 | [email protected] |
447 | [email protected] "fn" | 438 | [email protected] "fn" |
@@ -471,9 +462,8 @@ [email protected] | |||
471 | [email protected] ")" | 462 | [email protected] ")" |
472 | [email protected] " " | 463 | [email protected] " " |
473 | [email protected] | 464 | [email protected] |
474 | [email protected] | 465 | [email protected] "{" |
475 | [email protected] "{" | 466 | [email protected] "}" |
476 | [email protected] "}" | ||
477 | [email protected] "\n " | 467 | [email protected] "\n " |
478 | [email protected] | 468 | [email protected] |
479 | [email protected] "fn" | 469 | [email protected] "fn" |
@@ -512,8 +502,7 @@ [email protected] | |||
512 | [email protected] ")" | 502 | [email protected] ")" |
513 | [email protected] " " | 503 | [email protected] " " |
514 | [email protected] | 504 | [email protected] |
515 | [email protected] | 505 | [email protected] "{" |
516 | [email protected] "{" | 506 | [email protected] "}" |
517 | [email protected] "}" | ||
518 | [email protected] "\n" | 507 | [email protected] "\n" |
519 | [email protected] "}" | 508 | [email protected] "}" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast b/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast index f376f86a7..65cfa7bc5 100644 --- a/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast +++ b/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast | |||
@@ -9,73 +9,70 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "for" |
16 | [email protected] "for" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "_x" |
20 | [email protected] "_x" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "in" |
22 | [email protected] "in" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "0" |
26 | [email protected] "0" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] ".." |
28 | [email protected] ".." | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "(" |
32 | [email protected] "(" | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "0" |
35 | [email protected] "0" | 35 | [email protected] " " |
36 | [email protected] " " | 36 | [email protected] ".." |
37 | [email protected] ".." | 37 | [email protected] " " |
38 | [email protected] " " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "{" |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] "{" | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "1" |
43 | [email protected] | 43 | [email protected] " " |
44 | [email protected] "1" | 44 | [email protected] "+" |
45 | [email protected] " " | 45 | [email protected] " " |
46 | [email protected] "+" | 46 | [email protected] |
47 | [email protected] " " | 47 | [email protected] "2" |
48 | [email protected] | 48 | [email protected] "}" |
49 | [email protected] "2" | 49 | [email protected] ")" |
50 | [email protected] "}" | 50 | [email protected] "." |
51 | [email protected] ")" | 51 | [email protected] |
52 | [email protected] "." | 52 | [email protected] "sum" |
53 | [email protected] | 53 | [email protected] |
54 | [email protected] "sum" | 54 | [email protected] "::" |
55 | [email protected] | 55 | [email protected] "<" |
56 | [email protected] "::" | 56 | [email protected] |
57 | [email protected] "<" | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "u32" |
62 | [email protected] | 62 | [email protected] ">" |
63 | [email protected] "u32" | 63 | [email protected] |
64 | [email protected] ">" | 64 | [email protected] "(" |
65 | [email protected] | 65 | [email protected] ")" |
66 | [email protected] "(" | 66 | [email protected] " " |
67 | [email protected] ")" | 67 | [email protected] |
68 | [email protected] " " | 68 | [email protected] "{" |
69 | [email protected] | 69 | [email protected] "\n " |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] "{" | 71 | [email protected] |
72 | [email protected] "\n " | 72 | [email protected] "break" |
73 | [email protected] | 73 | [email protected] ";" |
74 | [email protected] | 74 | [email protected] "\n " |
75 | [email protected] "break" | 75 | [email protected] "}" |
76 | [email protected] ";" | 76 | [email protected] "\n" |
77 | [email protected] "\n " | 77 | [email protected] "}" |
78 | [email protected] "}" | ||
79 | [email protected] "\n" | ||
80 | [email protected] "}" | ||
81 | [email protected] "\n" | 78 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast b/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast index f20819bd2..d6aec7ab9 100644 --- a/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast +++ b/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast | |||
@@ -32,9 +32,8 @@ [email protected] | |||
32 | [email protected] ">" | 32 | [email protected] ">" |
33 | [email protected] " " | 33 | [email protected] " " |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "{" |
36 | [email protected] "{" | 36 | [email protected] "}" |
37 | [email protected] "}" | ||
38 | [email protected] "\n\n" | 37 | [email protected] "\n\n" |
39 | [email protected] | 38 | [email protected] |
40 | [email protected] "fn" | 39 | [email protected] "fn" |
@@ -75,9 +74,8 @@ [email protected] | |||
75 | [email protected] ")" | 74 | [email protected] ")" |
76 | [email protected] " " | 75 | [email protected] " " |
77 | [email protected] | 76 | [email protected] |
78 | [email protected] | 77 | [email protected] "{" |
79 | [email protected] "{" | 78 | [email protected] "}" |
80 | [email protected] "}" | ||
81 | [email protected] "\n\n" | 79 | [email protected] "\n\n" |
82 | [email protected] | 80 | [email protected] |
83 | [email protected] "fn" | 81 | [email protected] "fn" |
@@ -120,7 +118,6 @@ [email protected] | |||
120 | [email protected] ")" | 118 | [email protected] ")" |
121 | [email protected] " " | 119 | [email protected] " " |
122 | [email protected] | 120 | [email protected] |
123 | [email protected] | 121 | [email protected] "{" |
124 | [email protected] "{" | 122 | [email protected] "}" |
125 | [email protected] "}" | ||
126 | [email protected] "\n" | 123 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast b/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast index dcdb3cc6d..9e0cec35f 100644 --- a/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast +++ b/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast | |||
@@ -22,29 +22,28 @@ [email protected] | |||
22 | [email protected] ")" | 22 | [email protected] ")" |
23 | [email protected] " " | 23 | [email protected] " " |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "{" |
26 | [email protected] "{" | 26 | [email protected] "\n " |
27 | [email protected] "\n " | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "let" |
29 | [email protected] "let" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "(" |
32 | [email protected] "(" | 32 | [email protected] ")" |
33 | [email protected] ")" | 33 | [email protected] ":" |
34 | [email protected] ":" | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "::" |
38 | [email protected] "::" | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "X" |
40 | [email protected] "X" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] "=" |
42 | [email protected] "=" | 42 | [email protected] " " |
43 | [email protected] " " | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "(" |
45 | [email protected] "(" | 45 | [email protected] ")" |
46 | [email protected] ")" | 46 | [email protected] ";" |
47 | [email protected] ";" | 47 | [email protected] "\n" |
48 | [email protected] "\n" | 48 | [email protected] "}" |
49 | [email protected] "}" | ||
50 | [email protected] "\n" | 49 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast b/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast index 6176a9620..7fa3033ac 100644 --- a/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast +++ b/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast | |||
@@ -9,58 +9,56 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "if" |
16 | [email protected] "if" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "1.0f32" |
23 | [email protected] "1.0f32" | 23 | [email protected] "." |
24 | [email protected] "." | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "floor" |
26 | [email protected] "floor" | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "(" |
28 | [email protected] "(" | 28 | [email protected] ")" |
29 | [email protected] ")" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] "as" |
31 | [email protected] "as" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "i64" |
37 | [email protected] "i64" | 37 | [email protected] " " |
38 | [email protected] " " | 38 | [email protected] "!=" |
39 | [email protected] "!=" | 39 | [email protected] " " |
40 | [email protected] " " | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "1.0f32" |
44 | [email protected] "1.0f32" | 44 | [email protected] "." |
45 | [email protected] "." | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] "floor" |
47 | [email protected] "floor" | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "(" |
49 | [email protected] "(" | 49 | [email protected] ")" |
50 | [email protected] ")" | 50 | [email protected] " " |
51 | [email protected] " " | 51 | [email protected] "as" |
52 | [email protected] "as" | 52 | [email protected] " " |
53 | [email protected] " " | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] "i64" |
58 | [email protected] "i64" | 58 | [email protected] " " |
59 | [email protected] " " | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] "{" |
61 | [email protected] | 61 | [email protected] "}" |
62 | [email protected] "{" | 62 | [email protected] "\n" |
63 | [email protected] "}" | 63 | [email protected] "}" |
64 | [email protected] "\n" | ||
65 | [email protected] "}" | ||
66 | [email protected] "\n" | 64 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast b/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast index 342fe23f5..d93968016 100644 --- a/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast +++ b/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast | |||
@@ -20,9 +20,8 @@ [email protected] | |||
20 | [email protected] ")" | 20 | [email protected] ")" |
21 | [email protected] " " | 21 | [email protected] " " |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] "{" | 24 | [email protected] "}" |
25 | [email protected] "}" | ||
26 | [email protected] "\n\n" | 25 | [email protected] "\n\n" |
27 | [email protected] | 26 | [email protected] |
28 | [email protected] "fn" | 27 | [email protected] "fn" |
@@ -34,26 +33,24 @@ [email protected] | |||
34 | [email protected] ")" | 33 | [email protected] ")" |
35 | [email protected] " " | 34 | [email protected] " " |
36 | [email protected] | 35 | [email protected] |
37 | [email protected] | 36 | [email protected] "{" |
38 | [email protected] "{" | 37 | [email protected] "\n " |
39 | [email protected] "\n " | 38 | [email protected] |
40 | [email protected] | 39 | [email protected] |
41 | [email protected] | 40 | [email protected] |
42 | [email protected] | 41 | [email protected] |
43 | [email protected] | 42 | [email protected] |
44 | [email protected] | 43 | [email protected] |
45 | [email protected] | 44 | [email protected] "foo" |
46 | [email protected] "foo" | 45 | [email protected] |
47 | [email protected] | 46 | [email protected] "(" |
48 | [email protected] "(" | 47 | [email protected] |
49 | [email protected] | 48 | [email protected] "loop" |
50 | [email protected] "loop" | 49 | [email protected] " " |
51 | [email protected] " " | 50 | [email protected] |
52 | [email protected] | 51 | [email protected] "{" |
53 | [email protected] | 52 | [email protected] "}" |
54 | [email protected] "{" | 53 | [email protected] ")" |
55 | [email protected] "}" | 54 | [email protected] ";" |
56 | [email protected] ")" | 55 | [email protected] "\n" |
57 | [email protected] ";" | 56 | [email protected] "}" |
58 | [email protected] "\n" | ||
59 | [email protected] "}" | ||
diff --git a/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast b/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast index 360b6e044..b5c72ee36 100644 --- a/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast +++ b/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast | |||
@@ -9,89 +9,88 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "1" |
19 | [email protected] "1" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "+" |
21 | [email protected] "+" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "*" |
24 | [email protected] "*" | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "&" |
26 | [email protected] "&" | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "2" |
28 | [email protected] "2" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] "+" |
30 | [email protected] "+" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "3" |
33 | [email protected] "3" | 33 | [email protected] ";" |
34 | [email protected] ";" | 34 | [email protected] "\n " |
35 | [email protected] "\n " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "*" |
39 | [email protected] "*" | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "&" |
41 | [email protected] "&" | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "1" |
43 | [email protected] "1" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] "as" |
45 | [email protected] "as" | 45 | [email protected] " " |
46 | [email protected] " " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] "u64" |
51 | [email protected] "u64" | 51 | [email protected] ";" |
52 | [email protected] ";" | 52 | [email protected] "\n " |
53 | [email protected] "\n " | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "*" |
56 | [email protected] "*" | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] |
59 | [email protected] | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "x" |
62 | [email protected] "x" | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "(" |
64 | [email protected] "(" | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] "1" |
66 | [email protected] "1" | 66 | [email protected] ")" |
67 | [email protected] ")" | 67 | [email protected] ";" |
68 | [email protected] ";" | 68 | [email protected] "\n " |
69 | [email protected] "\n " | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "&" |
72 | [email protected] "&" | 72 | [email protected] |
73 | [email protected] | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] "x" |
78 | [email protected] "x" | 78 | [email protected] "[" |
79 | [email protected] "[" | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] "1" |
81 | [email protected] "1" | 81 | [email protected] "]" |
82 | [email protected] "]" | 82 | [email protected] ";" |
83 | [email protected] ";" | 83 | [email protected] "\n " |
84 | [email protected] "\n " | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] "-" |
88 | [email protected] "-" | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] "1" |
90 | [email protected] "1" | 90 | [email protected] ".." |
91 | [email protected] ".." | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] "2" |
93 | [email protected] "2" | 93 | [email protected] ";" |
94 | [email protected] ";" | 94 | [email protected] "\n" |
95 | [email protected] "\n" | 95 | [email protected] "}" |
96 | [email protected] "}" | ||
97 | [email protected] "\n" | 96 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast b/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast index 225b1d0b6..ddcb139c1 100644 --- a/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast +++ b/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast | |||
@@ -9,93 +9,89 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "Some" |
21 | [email protected] "Some" | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "(" |
23 | [email protected] "(" | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "for" |
25 | [email protected] "for" | 25 | [email protected] " " |
26 | [email protected] " " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "_" |
28 | [email protected] "_" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] "in" |
30 | [email protected] "in" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "[" |
34 | [email protected] "[" | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "1" |
36 | [email protected] "1" | 36 | [email protected] "]" |
37 | [email protected] "]" | 37 | [email protected] "." |
38 | [email protected] "." | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "into_iter" |
40 | [email protected] "into_iter" | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "(" |
42 | [email protected] "(" | 42 | [email protected] ")" |
43 | [email protected] ")" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "{" |
46 | [email protected] | 46 | [email protected] "}" |
47 | [email protected] "{" | 47 | [email protected] ")" |
48 | [email protected] "}" | 48 | [email protected] ";" |
49 | [email protected] ")" | 49 | [email protected] "\n " |
50 | [email protected] ";" | 50 | [email protected] |
51 | [email protected] "\n " | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] "Some" |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] "Some" | 58 | [email protected] "(" |
59 | [email protected] | 59 | [email protected] |
60 | [email protected] "(" | 60 | [email protected] "loop" |
61 | [email protected] | 61 | [email protected] " " |
62 | [email protected] "loop" | 62 | [email protected] |
63 | [email protected] " " | 63 | [email protected] "{" |
64 | [email protected] | 64 | [email protected] " " |
65 | [email protected] | 65 | [email protected] |
66 | [email protected] "{" | 66 | [email protected] |
67 | [email protected] " " | 67 | [email protected] "break" |
68 | [email protected] | 68 | [email protected] ";" |
69 | [email protected] | 69 | [email protected] " " |
70 | [email protected] "break" | 70 | [email protected] "}" |
71 | [email protected] ";" | 71 | [email protected] ")" |
72 | [email protected] " " | 72 | [email protected] ";" |
73 | [email protected] "}" | 73 | [email protected] "\n " |
74 | [email protected] ")" | 74 | [email protected] |
75 | [email protected] ";" | 75 | [email protected] |
76 | [email protected] "\n " | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] "Some" |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] "(" |
83 | [email protected] "Some" | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] "while" |
85 | [email protected] "(" | 85 | [email protected] " " |
86 | [email protected] | 86 | [email protected] |
87 | [email protected] "while" | 87 | [email protected] |
88 | [email protected] " " | 88 | [email protected] "true" |
89 | [email protected] | 89 | [email protected] " " |
90 | [email protected] | 90 | [email protected] |
91 | [email protected] "true" | 91 | [email protected] "{" |
92 | [email protected] " " | 92 | [email protected] "}" |
93 | [email protected] | 93 | [email protected] ")" |
94 | [email protected] | 94 | [email protected] ";" |
95 | [email protected] "{" | 95 | [email protected] "\n" |
96 | [email protected] "}" | 96 | [email protected] "}" |
97 | [email protected] ")" | ||
98 | [email protected] ";" | ||
99 | [email protected] "\n" | ||
100 | [email protected] "}" | ||
101 | [email protected] "\n" | 97 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast b/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast index a52a08ed0..098152fc3 100644 --- a/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast +++ b/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast | |||
@@ -9,48 +9,47 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "0" |
19 | [email protected] "0" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "as" |
21 | [email protected] "as" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "usize" |
27 | [email protected] "usize" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] ".." |
29 | [email protected] ".." | 29 | [email protected] ";" |
30 | [email protected] ";" | 30 | [email protected] "\n " |
31 | [email protected] "\n " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "1" |
36 | [email protected] "1" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] "+" |
38 | [email protected] "+" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] |
41 | [email protected] | 41 | [email protected] "2" |
42 | [email protected] "2" | 42 | [email protected] " " |
43 | [email protected] " " | 43 | [email protected] "as" |
44 | [email protected] "as" | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "usize" |
50 | [email protected] "usize" | 50 | [email protected] " " |
51 | [email protected] " " | 51 | [email protected] ".." |
52 | [email protected] ".." | 52 | [email protected] ";" |
53 | [email protected] ";" | 53 | [email protected] "\n" |
54 | [email protected] "\n" | 54 | [email protected] "}" |
55 | [email protected] "}" | ||
56 | [email protected] "\n" | 55 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast b/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast index b8974c942..c6e982976 100644 --- a/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast +++ b/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast | |||
@@ -9,19 +9,18 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "match" |
16 | [email protected] "match" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] ".." |
19 | [email protected] ".." | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "{" |
22 | [email protected] "{" | 22 | [email protected] "\n " |
23 | [email protected] "\n " | 23 | [email protected] "}" |
24 | [email protected] "}" | 24 | [email protected] "\n" |
25 | [email protected] "\n" | 25 | [email protected] "}" |
26 | [email protected] "}" | ||
27 | [email protected] "\n" | 26 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast b/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast index 46f370eec..bf791ee2b 100644 --- a/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast +++ b/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast | |||
@@ -70,107 +70,106 @@ [email protected] | |||
70 | [email protected] ")" | 70 | [email protected] ")" |
71 | [email protected] " " | 71 | [email protected] " " |
72 | [email protected] | 72 | [email protected] |
73 | [email protected] | 73 | [email protected] "{" |
74 | [email protected] "{" | 74 | [email protected] "\n " |
75 | [email protected] "\n " | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "macro" |
77 | [email protected] "macro" | 77 | [email protected] " " |
78 | [email protected] " " | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "test_merge" |
80 | [email protected] "test_merge" | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] "(" |
83 | [email protected] "(" | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] "[" |
85 | [email protected] "[" | 85 | [email protected] "$" |
86 | [email protected] "$" | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] "(" |
88 | [email protected] "(" | 88 | [email protected] "$" |
89 | [email protected] "$" | 89 | [email protected] "input" |
90 | [email protected] "input" | 90 | [email protected] ":" |
91 | [email protected] ":" | 91 | [email protected] "expr" |
92 | [email protected] "expr" | 92 | [email protected] ")" |
93 | [email protected] ")" | 93 | [email protected] "," |
94 | [email protected] "," | 94 | [email protected] "*" |
95 | [email protected] "*" | 95 | [email protected] " " |
96 | [email protected] " " | 96 | [email protected] "$" |
97 | [email protected] "$" | 97 | [email protected] |
98 | [email protected] | 98 | [email protected] "(" |
99 | [email protected] "(" | 99 | [email protected] "," |
100 | [email protected] "," | 100 | [email protected] ")" |
101 | [email protected] ")" | 101 | [email protected] "*" |
102 | [email protected] "*" | 102 | [email protected] "]" |
103 | [email protected] "]" | 103 | [email protected] "," |
104 | [email protected] "," | 104 | [email protected] " " |
105 | [email protected] " " | 105 | [email protected] |
106 | [email protected] | 106 | [email protected] "[" |
107 | [email protected] "[" | 107 | [email protected] "$" |
108 | [email protected] "$" | 108 | [email protected] |
109 | [email protected] | 109 | [email protected] "(" |
110 | [email protected] "(" | 110 | [email protected] "$" |
111 | [email protected] "$" | 111 | [email protected] "output" |
112 | [email protected] "output" | 112 | [email protected] ":" |
113 | [email protected] ":" | 113 | [email protected] "expr" |
114 | [email protected] "expr" | 114 | [email protected] ")" |
115 | [email protected] ")" | 115 | [email protected] "," |
116 | [email protected] "," | 116 | [email protected] "*" |
117 | [email protected] "*" | 117 | [email protected] " " |
118 | [email protected] " " | 118 | [email protected] "$" |
119 | [email protected] "$" | 119 | [email protected] |
120 | [email protected] | 120 | [email protected] "(" |
121 | [email protected] "(" | 121 | [email protected] "," |
122 | [email protected] "," | 122 | [email protected] ")" |
123 | [email protected] ")" | 123 | [email protected] "*" |
124 | [email protected] "*" | 124 | [email protected] "]" |
125 | [email protected] "]" | 125 | [email protected] ")" |
126 | [email protected] ")" | 126 | [email protected] " " |
127 | [email protected] " " | 127 | [email protected] |
128 | [email protected] | 128 | [email protected] "{" |
129 | [email protected] "{" | 129 | [email protected] "\n " |
130 | [email protected] "\n " | 130 | [email protected] "assert_eq" |
131 | [email protected] "assert_eq" | 131 | [email protected] "!" |
132 | [email protected] "!" | 132 | [email protected] |
133 | [email protected] | 133 | [email protected] "(" |
134 | [email protected] "(" | 134 | [email protected] "\n " |
135 | [email protected] "\n " | 135 | [email protected] "merge_use_trees" |
136 | [email protected] "merge_use_trees" | 136 | [email protected] |
137 | [email protected] | 137 | [email protected] "(" |
138 | [email protected] "(" | 138 | [email protected] "parse_use_trees" |
139 | [email protected] "parse_use_trees" | 139 | [email protected] "!" |
140 | [email protected] "!" | 140 | [email protected] |
141 | [email protected] | 141 | [email protected] "(" |
142 | [email protected] "(" | 142 | [email protected] "$" |
143 | [email protected] "$" | 143 | [email protected] |
144 | [email protected] | 144 | [email protected] "(" |
145 | [email protected] "(" | 145 | [email protected] "$" |
146 | [email protected] "$" | 146 | [email protected] "input" |
147 | [email protected] "input" | 147 | [email protected] "," |
148 | [email protected] "," | 148 | [email protected] ")" |
149 | [email protected] ")" | 149 | [email protected] "*" |
150 | [email protected] "*" | 150 | [email protected] ")" |
151 | [email protected] ")" | 151 | [email protected] ")" |
152 | [email protected] ")" | 152 | [email protected] "," |
153 | [email protected] "," | 153 | [email protected] "\n " |
154 | [email protected] "\n " | 154 | [email protected] "parse_use_trees" |
155 | [email protected] "parse_use_trees" | 155 | [email protected] "!" |
156 | [email protected] "!" | 156 | [email protected] |
157 | [email protected] | 157 | [email protected] "(" |
158 | [email protected] "(" | 158 | [email protected] "$" |
159 | [email protected] "$" | 159 | [email protected] |
160 | [email protected] | 160 | [email protected] "(" |
161 | [email protected] "(" | 161 | [email protected] "$" |
162 | [email protected] "$" | 162 | [email protected] "output" |
163 | [email protected] "output" | 163 | [email protected] "," |
164 | [email protected] "," | 164 | [email protected] ")" |
165 | [email protected] ")" | 165 | [email protected] "*" |
166 | [email protected] "*" | 166 | [email protected] ")" |
167 | [email protected] ")" | 167 | [email protected] "," |
168 | [email protected] "," | 168 | [email protected] "\n " |
169 | [email protected] "\n " | 169 | [email protected] ")" |
170 | [email protected] ")" | 170 | [email protected] ";" |
171 | [email protected] ";" | 171 | [email protected] "\n " |
172 | [email protected] "\n " | 172 | [email protected] "}" |
173 | [email protected] "}" | 173 | [email protected] "\n" |
174 | [email protected] "\n" | 174 | [email protected] "}" |
175 | [email protected] "}" | ||
176 | [email protected] "\n" | 175 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast b/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast index 1cd77aa14..886b211d0 100644 --- a/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast +++ b/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast | |||
@@ -47,9 +47,8 @@ [email protected] | |||
47 | [email protected] ")" | 47 | [email protected] ")" |
48 | [email protected] " " | 48 | [email protected] " " |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] "{" |
51 | [email protected] "{" | 51 | [email protected] "}" |
52 | [email protected] "}" | ||
53 | [email protected] "\n " | 52 | [email protected] "\n " |
54 | [email protected] | 53 | [email protected] |
55 | [email protected] "fn" | 54 | [email protected] "fn" |
@@ -90,9 +89,8 @@ [email protected] | |||
90 | [email protected] ")" | 89 | [email protected] ")" |
91 | [email protected] " " | 90 | [email protected] " " |
92 | [email protected] | 91 | [email protected] |
93 | [email protected] | 92 | [email protected] "{" |
94 | [email protected] "{" | 93 | [email protected] "}" |
95 | [email protected] "}" | ||
96 | [email protected] "\n " | 94 | [email protected] "\n " |
97 | [email protected] | 95 | [email protected] |
98 | [email protected] "fn" | 96 | [email protected] "fn" |
@@ -122,9 +120,8 @@ [email protected] | |||
122 | [email protected] ")" | 120 | [email protected] ")" |
123 | [email protected] " " | 121 | [email protected] " " |
124 | [email protected] | 122 | [email protected] |
125 | [email protected] | 123 | [email protected] "{" |
126 | [email protected] "{" | 124 | [email protected] "}" |
127 | [email protected] "}" | ||
128 | [email protected] "\n " | 125 | [email protected] "\n " |
129 | [email protected] | 126 | [email protected] |
130 | [email protected] "fn" | 127 | [email protected] "fn" |
@@ -155,9 +152,8 @@ [email protected] | |||
155 | [email protected] ")" | 152 | [email protected] ")" |
156 | [email protected] " " | 153 | [email protected] " " |
157 | [email protected] | 154 | [email protected] |
158 | [email protected] | 155 | [email protected] "{" |
159 | [email protected] "{" | 156 | [email protected] "}" |
160 | [email protected] "}" | ||
161 | [email protected] "\n " | 157 | [email protected] "\n " |
162 | [email protected] | 158 | [email protected] |
163 | [email protected] "fn" | 159 | [email protected] "fn" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast b/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast index 4f9a14066..a0423806c 100644 --- a/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast +++ b/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast | |||
@@ -50,9 +50,8 @@ [email protected] | |||
50 | [email protected] ")" | 50 | [email protected] ")" |
51 | [email protected] " " | 51 | [email protected] " " |
52 | [email protected] | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "{" |
54 | [email protected] "{" | 54 | [email protected] "}" |
55 | [email protected] "}" | ||
56 | [email protected] "\n " | 55 | [email protected] "\n " |
57 | [email protected] | 56 | [email protected] |
58 | [email protected] "fn" | 57 | [email protected] "fn" |
@@ -93,9 +92,8 @@ [email protected] | |||
93 | [email protected] ")" | 92 | [email protected] ")" |
94 | [email protected] " " | 93 | [email protected] " " |
95 | [email protected] | 94 | [email protected] |
96 | [email protected] | 95 | [email protected] "{" |
97 | [email protected] "{" | 96 | [email protected] "}" |
98 | [email protected] "}" | ||
99 | [email protected] "\n " | 97 | [email protected] "\n " |
100 | [email protected] | 98 | [email protected] |
101 | [email protected] "fn" | 99 | [email protected] "fn" |
@@ -125,9 +123,8 @@ [email protected] | |||
125 | [email protected] ")" | 123 | [email protected] ")" |
126 | [email protected] " " | 124 | [email protected] " " |
127 | [email protected] | 125 | [email protected] |
128 | [email protected] | 126 | [email protected] "{" |
129 | [email protected] "{" | 127 | [email protected] "}" |
130 | [email protected] "}" | ||
131 | [email protected] "\n " | 128 | [email protected] "\n " |
132 | [email protected] | 129 | [email protected] |
133 | [email protected] "fn" | 130 | [email protected] "fn" |
@@ -158,9 +155,8 @@ [email protected] | |||
158 | [email protected] ")" | 155 | [email protected] ")" |
159 | [email protected] " " | 156 | [email protected] " " |
160 | [email protected] | 157 | [email protected] |
161 | [email protected] | 158 | [email protected] "{" |
162 | [email protected] "{" | 159 | [email protected] "}" |
163 | [email protected] "}" | ||
164 | [email protected] "\n" | 160 | [email protected] "\n" |
165 | [email protected] "}" | 161 | [email protected] "}" |
166 | [email protected] "\n" | 162 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast b/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast index 3294f4901..d1fffdd63 100644 --- a/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast +++ b/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast | |||
@@ -11,7 +11,6 @@ [email protected] | |||
11 | [email protected] ")" | 11 | [email protected] ")" |
12 | [email protected] " " | 12 | [email protected] " " |
13 | [email protected] | 13 | [email protected] |
14 | [email protected] | 14 | [email protected] "{" |
15 | [email protected] "{" | 15 | [email protected] "}" |
16 | [email protected] "}" | ||
17 | [email protected] "\n" | 16 | [email protected] "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast b/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast index 633b14000..eb2f8eb3c 100644 --- a/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast +++ b/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast | |||
@@ -55,7 +55,6 @@ [email protected] | |||
55 | [email protected] "Send" | 55 | [email protected] "Send" |
56 | [email protected] " " | 56 | [email protected] " " |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "{" |
59 | [email protected] "{" | 59 | [email protected] "}" |
60 | [email protected] "}" | ||
61 | [email protected] "\n" | 60 | [email protected] "\n" |
diff --git a/crates/rust-analyzer/Cargo.toml b/crates/rust-analyzer/Cargo.toml index cee0248b6..8c94f430a 100644 --- a/crates/rust-analyzer/Cargo.toml +++ b/crates/rust-analyzer/Cargo.toml | |||
@@ -20,13 +20,13 @@ globset = "0.4.4" | |||
20 | itertools = "0.9.0" | 20 | itertools = "0.9.0" |
21 | jod-thread = "0.1.0" | 21 | jod-thread = "0.1.0" |
22 | log = "0.4.8" | 22 | log = "0.4.8" |
23 | lsp-types = { version = "0.73.0", features = ["proposed"] } | 23 | lsp-types = { version = "0.74.0", features = ["proposed"] } |
24 | parking_lot = "0.10.0" | 24 | parking_lot = "0.10.0" |
25 | pico-args = "0.3.1" | 25 | pico-args = "0.3.1" |
26 | rand = { version = "0.7.3", features = ["small_rng"] } | 26 | rand = { version = "0.7.3", features = ["small_rng"] } |
27 | relative-path = "1.0.0" | 27 | relative-path = "1.0.0" |
28 | rustc-hash = "1.1.0" | 28 | rustc-hash = "1.1.0" |
29 | serde = { version = "1.0.104", features = ["derive"] } | 29 | serde = { version = "1.0.106", features = ["derive"] } |
30 | serde_json = "1.0.48" | 30 | serde_json = "1.0.48" |
31 | threadpool = "1.7.1" | 31 | threadpool = "1.7.1" |
32 | 32 | ||
@@ -39,7 +39,7 @@ ra_prof = { path = "../ra_prof" } | |||
39 | ra_project_model = { path = "../ra_project_model" } | 39 | ra_project_model = { path = "../ra_project_model" } |
40 | ra_syntax = { path = "../ra_syntax" } | 40 | ra_syntax = { path = "../ra_syntax" } |
41 | ra_text_edit = { path = "../ra_text_edit" } | 41 | ra_text_edit = { path = "../ra_text_edit" } |
42 | ra_vfs = "0.5.2" | 42 | ra_vfs = "0.6.0" |
43 | 43 | ||
44 | # This should only be used in CLI | 44 | # This should only be used in CLI |
45 | ra_db = { path = "../ra_db" } | 45 | ra_db = { path = "../ra_db" } |
diff --git a/crates/rust-analyzer/src/caps.rs b/crates/rust-analyzer/src/caps.rs index 45b60768a..44222d8bd 100644 --- a/crates/rust-analyzer/src/caps.rs +++ b/crates/rust-analyzer/src/caps.rs | |||
@@ -3,20 +3,20 @@ | |||
3 | use crate::semantic_tokens; | 3 | use crate::semantic_tokens; |
4 | 4 | ||
5 | use lsp_types::{ | 5 | use lsp_types::{ |
6 | CallHierarchyServerCapability, CodeActionProviderCapability, CodeLensOptions, | 6 | CallHierarchyServerCapability, CodeActionOptions, CodeActionProviderCapability, |
7 | CompletionOptions, DocumentOnTypeFormattingOptions, FoldingRangeProviderCapability, | 7 | CodeLensOptions, CompletionOptions, DocumentOnTypeFormattingOptions, |
8 | ImplementationProviderCapability, RenameOptions, RenameProviderCapability, SaveOptions, | 8 | FoldingRangeProviderCapability, ImplementationProviderCapability, RenameOptions, |
9 | SelectionRangeProviderCapability, SemanticTokensDocumentProvider, SemanticTokensLegend, | 9 | RenameProviderCapability, SaveOptions, SelectionRangeProviderCapability, |
10 | SemanticTokensOptions, ServerCapabilities, SignatureHelpOptions, TextDocumentSyncCapability, | 10 | SemanticTokensDocumentProvider, SemanticTokensLegend, SemanticTokensOptions, |
11 | TextDocumentSyncKind, TextDocumentSyncOptions, TypeDefinitionProviderCapability, | 11 | ServerCapabilities, SignatureHelpOptions, TextDocumentSyncCapability, TextDocumentSyncKind, |
12 | WorkDoneProgressOptions, | 12 | TextDocumentSyncOptions, TypeDefinitionProviderCapability, WorkDoneProgressOptions, |
13 | }; | 13 | }; |
14 | 14 | ||
15 | pub fn server_capabilities() -> ServerCapabilities { | 15 | pub fn server_capabilities() -> ServerCapabilities { |
16 | ServerCapabilities { | 16 | ServerCapabilities { |
17 | text_document_sync: Some(TextDocumentSyncCapability::Options(TextDocumentSyncOptions { | 17 | text_document_sync: Some(TextDocumentSyncCapability::Options(TextDocumentSyncOptions { |
18 | open_close: Some(true), | 18 | open_close: Some(true), |
19 | change: Some(TextDocumentSyncKind::Full), | 19 | change: Some(TextDocumentSyncKind::Incremental), |
20 | will_save: None, | 20 | will_save: None, |
21 | will_save_wait_until: None, | 21 | will_save_wait_until: None, |
22 | save: Some(SaveOptions::default()), | 22 | save: Some(SaveOptions::default()), |
@@ -40,7 +40,20 @@ pub fn server_capabilities() -> ServerCapabilities { | |||
40 | document_highlight_provider: Some(true), | 40 | document_highlight_provider: Some(true), |
41 | document_symbol_provider: Some(true), | 41 | document_symbol_provider: Some(true), |
42 | workspace_symbol_provider: Some(true), | 42 | workspace_symbol_provider: Some(true), |
43 | code_action_provider: Some(CodeActionProviderCapability::Simple(true)), | 43 | code_action_provider: Some(CodeActionProviderCapability::Options(CodeActionOptions { |
44 | // Advertise support for all built-in CodeActionKinds | ||
45 | code_action_kinds: Some(vec![ | ||
46 | lsp_types::code_action_kind::EMPTY.to_string(), | ||
47 | lsp_types::code_action_kind::QUICKFIX.to_string(), | ||
48 | lsp_types::code_action_kind::REFACTOR.to_string(), | ||
49 | lsp_types::code_action_kind::REFACTOR_EXTRACT.to_string(), | ||
50 | lsp_types::code_action_kind::REFACTOR_INLINE.to_string(), | ||
51 | lsp_types::code_action_kind::REFACTOR_REWRITE.to_string(), | ||
52 | lsp_types::code_action_kind::SOURCE.to_string(), | ||
53 | lsp_types::code_action_kind::SOURCE_ORGANIZE_IMPORTS.to_string(), | ||
54 | ]), | ||
55 | work_done_progress_options: Default::default(), | ||
56 | })), | ||
44 | code_lens_provider: Some(CodeLensOptions { resolve_provider: Some(true) }), | 57 | code_lens_provider: Some(CodeLensOptions { resolve_provider: Some(true) }), |
45 | document_formatting_provider: Some(true), | 58 | document_formatting_provider: Some(true), |
46 | document_range_formatting_provider: None, | 59 | document_range_formatting_provider: None, |
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index 74a63e32a..15b7c6912 100644 --- a/crates/rust-analyzer/src/config.rs +++ b/crates/rust-analyzer/src/config.rs | |||
@@ -49,7 +49,6 @@ pub enum FilesWatcher { | |||
49 | 49 | ||
50 | #[derive(Debug, Clone)] | 50 | #[derive(Debug, Clone)] |
51 | pub struct NotificationsConfig { | 51 | pub struct NotificationsConfig { |
52 | pub workspace_loaded: bool, | ||
53 | pub cargo_toml_not_found: bool, | 52 | pub cargo_toml_not_found: bool, |
54 | } | 53 | } |
55 | 54 | ||
@@ -70,6 +69,7 @@ pub struct ClientCapsConfig { | |||
70 | pub location_link: bool, | 69 | pub location_link: bool, |
71 | pub line_folding_only: bool, | 70 | pub line_folding_only: bool, |
72 | pub hierarchical_symbols: bool, | 71 | pub hierarchical_symbols: bool, |
72 | pub code_action_literals: bool, | ||
73 | } | 73 | } |
74 | 74 | ||
75 | impl Default for Config { | 75 | impl Default for Config { |
@@ -82,10 +82,7 @@ impl Default for Config { | |||
82 | lru_capacity: None, | 82 | lru_capacity: None, |
83 | proc_macro_srv: None, | 83 | proc_macro_srv: None, |
84 | files: FilesConfig { watcher: FilesWatcher::Notify, exclude: Vec::new() }, | 84 | files: FilesConfig { watcher: FilesWatcher::Notify, exclude: Vec::new() }, |
85 | notifications: NotificationsConfig { | 85 | notifications: NotificationsConfig { cargo_toml_not_found: true }, |
86 | workspace_loaded: true, | ||
87 | cargo_toml_not_found: true, | ||
88 | }, | ||
89 | 86 | ||
90 | cargo: CargoConfig::default(), | 87 | cargo: CargoConfig::default(), |
91 | rustfmt: RustfmtConfig::Rustfmt { extra_args: Vec::new() }, | 88 | rustfmt: RustfmtConfig::Rustfmt { extra_args: Vec::new() }, |
@@ -128,7 +125,6 @@ impl Config { | |||
128 | Some("client") => FilesWatcher::Client, | 125 | Some("client") => FilesWatcher::Client, |
129 | Some("notify") | _ => FilesWatcher::Notify | 126 | Some("notify") | _ => FilesWatcher::Notify |
130 | }; | 127 | }; |
131 | set(value, "/notifications/workspaceLoaded", &mut self.notifications.workspace_loaded); | ||
132 | set(value, "/notifications/cargoTomlNotFound", &mut self.notifications.cargo_toml_not_found); | 128 | set(value, "/notifications/cargoTomlNotFound", &mut self.notifications.cargo_toml_not_found); |
133 | 129 | ||
134 | set(value, "/cargo/noDefaultFeatures", &mut self.cargo.no_default_features); | 130 | set(value, "/cargo/noDefaultFeatures", &mut self.cargo.no_default_features); |
@@ -221,6 +217,11 @@ impl Config { | |||
221 | { | 217 | { |
222 | self.client_caps.hierarchical_symbols = value | 218 | self.client_caps.hierarchical_symbols = value |
223 | } | 219 | } |
220 | if let Some(value) = | ||
221 | caps.code_action.as_ref().and_then(|it| Some(it.code_action_literal_support.is_some())) | ||
222 | { | ||
223 | self.client_caps.code_action_literals = value; | ||
224 | } | ||
224 | self.completion.allow_snippets(false); | 225 | self.completion.allow_snippets(false); |
225 | if let Some(completion) = &caps.completion { | 226 | if let Some(completion) = &caps.completion { |
226 | if let Some(completion_item) = &completion.completion_item { | 227 | if let Some(completion_item) = &completion.completion_item { |
diff --git a/crates/rust-analyzer/src/conv.rs b/crates/rust-analyzer/src/conv.rs index ffe3ea84d..7be5ebcdb 100644 --- a/crates/rust-analyzer/src/conv.rs +++ b/crates/rust-analyzer/src/conv.rs | |||
@@ -150,7 +150,7 @@ impl ConvWith<(&LineIndex, LineEndings)> for CompletionItem { | |||
150 | detail: self.detail().map(|it| it.to_string()), | 150 | detail: self.detail().map(|it| it.to_string()), |
151 | filter_text: Some(self.lookup().to_string()), | 151 | filter_text: Some(self.lookup().to_string()), |
152 | kind: self.kind().map(|it| it.conv()), | 152 | kind: self.kind().map(|it| it.conv()), |
153 | text_edit: Some(text_edit), | 153 | text_edit: Some(text_edit.into()), |
154 | additional_text_edits: Some(additional_text_edits), | 154 | additional_text_edits: Some(additional_text_edits), |
155 | documentation: self.documentation().map(|it| it.conv()), | 155 | documentation: self.documentation().map(|it| it.conv()), |
156 | deprecated: Some(self.deprecated()), | 156 | deprecated: Some(self.deprecated()), |
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs index f3aef3f0f..3bc2e0a46 100644 --- a/crates/rust-analyzer/src/main_loop.rs +++ b/crates/rust-analyzer/src/main_loop.rs | |||
@@ -6,9 +6,12 @@ mod subscriptions; | |||
6 | pub(crate) mod pending_requests; | 6 | pub(crate) mod pending_requests; |
7 | 7 | ||
8 | use std::{ | 8 | use std::{ |
9 | borrow::Cow, | ||
9 | env, | 10 | env, |
10 | error::Error, | 11 | error::Error, |
11 | fmt, panic, | 12 | fmt, |
13 | ops::Range, | ||
14 | panic, | ||
12 | path::PathBuf, | 15 | path::PathBuf, |
13 | sync::Arc, | 16 | sync::Arc, |
14 | time::{Duration, Instant}, | 17 | time::{Duration, Instant}, |
@@ -18,11 +21,12 @@ use crossbeam_channel::{never, select, unbounded, RecvError, Sender}; | |||
18 | use itertools::Itertools; | 21 | use itertools::Itertools; |
19 | use lsp_server::{Connection, ErrorCode, Message, Notification, Request, RequestId, Response}; | 22 | use lsp_server::{Connection, ErrorCode, Message, Notification, Request, RequestId, Response}; |
20 | use lsp_types::{ | 23 | use lsp_types::{ |
21 | NumberOrString, WorkDoneProgress, WorkDoneProgressBegin, WorkDoneProgressCreateParams, | 24 | DidChangeTextDocumentParams, NumberOrString, TextDocumentContentChangeEvent, WorkDoneProgress, |
22 | WorkDoneProgressEnd, WorkDoneProgressReport, | 25 | WorkDoneProgressBegin, WorkDoneProgressCreateParams, WorkDoneProgressEnd, |
26 | WorkDoneProgressReport, | ||
23 | }; | 27 | }; |
24 | use ra_flycheck::{url_from_path_with_drive_lowercasing, CheckTask}; | 28 | use ra_flycheck::{url_from_path_with_drive_lowercasing, CheckTask}; |
25 | use ra_ide::{Canceled, FileId, LibraryData, SourceRootId}; | 29 | use ra_ide::{Canceled, FileId, LibraryData, LineIndex, SourceRootId}; |
26 | use ra_prof::profile; | 30 | use ra_prof::profile; |
27 | use ra_project_model::{PackageRoot, ProjectWorkspace}; | 31 | use ra_project_model::{PackageRoot, ProjectWorkspace}; |
28 | use ra_vfs::{VfsFile, VfsTask, Watch}; | 32 | use ra_vfs::{VfsFile, VfsTask, Watch}; |
@@ -33,6 +37,7 @@ use threadpool::ThreadPool; | |||
33 | 37 | ||
34 | use crate::{ | 38 | use crate::{ |
35 | config::{Config, FilesWatcher}, | 39 | config::{Config, FilesWatcher}, |
40 | conv::{ConvWith, TryConvWith}, | ||
36 | diagnostics::DiagnosticTask, | 41 | diagnostics::DiagnosticTask, |
37 | main_loop::{ | 42 | main_loop::{ |
38 | pending_requests::{PendingRequest, PendingRequests}, | 43 | pending_requests::{PendingRequest, PendingRequests}, |
@@ -410,8 +415,7 @@ fn loop_turn( | |||
410 | }); | 415 | }); |
411 | } | 416 | } |
412 | 417 | ||
413 | let show_progress = | 418 | let show_progress = !loop_state.workspace_loaded; |
414 | !loop_state.workspace_loaded && world_state.config.notifications.workspace_loaded; | ||
415 | 419 | ||
416 | if !loop_state.workspace_loaded | 420 | if !loop_state.workspace_loaded |
417 | && loop_state.roots_scanned == loop_state.roots_total | 421 | && loop_state.roots_scanned == loop_state.roots_total |
@@ -579,12 +583,16 @@ fn on_notification( | |||
579 | Err(not) => not, | 583 | Err(not) => not, |
580 | }; | 584 | }; |
581 | let not = match notification_cast::<req::DidChangeTextDocument>(not) { | 585 | let not = match notification_cast::<req::DidChangeTextDocument>(not) { |
582 | Ok(mut params) => { | 586 | Ok(params) => { |
583 | let uri = params.text_document.uri; | 587 | let DidChangeTextDocumentParams { text_document, content_changes } = params; |
588 | let world = state.snapshot(); | ||
589 | let file_id = text_document.try_conv_with(&world)?; | ||
590 | let line_index = world.analysis().file_line_index(file_id)?; | ||
591 | let uri = text_document.uri; | ||
584 | let path = uri.to_file_path().map_err(|()| format!("invalid uri: {}", uri))?; | 592 | let path = uri.to_file_path().map_err(|()| format!("invalid uri: {}", uri))?; |
585 | let text = | 593 | state.vfs.write().change_file_overlay(&path, |old_text| { |
586 | params.content_changes.pop().ok_or_else(|| "empty changes".to_string())?.text; | 594 | apply_document_changes(old_text, Cow::Borrowed(&line_index), content_changes); |
587 | state.vfs.write().change_file_overlay(path.as_path(), text); | 595 | }); |
588 | return Ok(()); | 596 | return Ok(()); |
589 | } | 597 | } |
590 | Err(not) => not, | 598 | Err(not) => not, |
@@ -653,6 +661,48 @@ fn on_notification( | |||
653 | Ok(()) | 661 | Ok(()) |
654 | } | 662 | } |
655 | 663 | ||
664 | fn apply_document_changes( | ||
665 | old_text: &mut String, | ||
666 | mut line_index: Cow<'_, LineIndex>, | ||
667 | content_changes: Vec<TextDocumentContentChangeEvent>, | ||
668 | ) { | ||
669 | // The changes we got must be applied sequentially, but can cross lines so we | ||
670 | // have to keep our line index updated. | ||
671 | // Some clients (e.g. Code) sort the ranges in reverse. As an optimization, we | ||
672 | // remember the last valid line in the index and only rebuild it if needed. | ||
673 | enum IndexValid { | ||
674 | All, | ||
675 | UpToLine(u64), | ||
676 | } | ||
677 | |||
678 | impl IndexValid { | ||
679 | fn covers(&self, line: u64) -> bool { | ||
680 | match *self { | ||
681 | IndexValid::UpToLine(to) => to >= line, | ||
682 | _ => true, | ||
683 | } | ||
684 | } | ||
685 | } | ||
686 | |||
687 | let mut index_valid = IndexValid::All; | ||
688 | for change in content_changes { | ||
689 | match change.range { | ||
690 | Some(range) => { | ||
691 | if !index_valid.covers(range.start.line) { | ||
692 | line_index = Cow::Owned(LineIndex::new(&old_text)); | ||
693 | } | ||
694 | index_valid = IndexValid::UpToLine(range.start.line); | ||
695 | let range = range.conv_with(&line_index); | ||
696 | old_text.replace_range(Range::<usize>::from(range), &change.text); | ||
697 | } | ||
698 | None => { | ||
699 | *old_text = change.text; | ||
700 | index_valid = IndexValid::UpToLine(0); | ||
701 | } | ||
702 | } | ||
703 | } | ||
704 | } | ||
705 | |||
656 | fn on_check_task( | 706 | fn on_check_task( |
657 | task: CheckTask, | 707 | task: CheckTask, |
658 | world_state: &mut WorldState, | 708 | world_state: &mut WorldState, |
@@ -958,3 +1008,64 @@ where | |||
958 | { | 1008 | { |
959 | Request::new(id, R::METHOD.to_string(), params) | 1009 | Request::new(id, R::METHOD.to_string(), params) |
960 | } | 1010 | } |
1011 | |||
1012 | #[cfg(test)] | ||
1013 | mod tests { | ||
1014 | use std::borrow::Cow; | ||
1015 | |||
1016 | use lsp_types::{Position, Range, TextDocumentContentChangeEvent}; | ||
1017 | use ra_ide::LineIndex; | ||
1018 | |||
1019 | #[test] | ||
1020 | fn apply_document_changes() { | ||
1021 | fn run(text: &mut String, changes: Vec<TextDocumentContentChangeEvent>) { | ||
1022 | let line_index = Cow::Owned(LineIndex::new(&text)); | ||
1023 | super::apply_document_changes(text, line_index, changes); | ||
1024 | } | ||
1025 | |||
1026 | macro_rules! c { | ||
1027 | [$($sl:expr, $sc:expr; $el:expr, $ec:expr => $text:expr),+] => { | ||
1028 | vec![$(TextDocumentContentChangeEvent { | ||
1029 | range: Some(Range { | ||
1030 | start: Position { line: $sl, character: $sc }, | ||
1031 | end: Position { line: $el, character: $ec }, | ||
1032 | }), | ||
1033 | range_length: None, | ||
1034 | text: String::from($text), | ||
1035 | }),+] | ||
1036 | }; | ||
1037 | } | ||
1038 | |||
1039 | let mut text = String::new(); | ||
1040 | run(&mut text, vec![]); | ||
1041 | assert_eq!(text, ""); | ||
1042 | run( | ||
1043 | &mut text, | ||
1044 | vec![TextDocumentContentChangeEvent { | ||
1045 | range: None, | ||
1046 | range_length: None, | ||
1047 | text: String::from("the"), | ||
1048 | }], | ||
1049 | ); | ||
1050 | assert_eq!(text, "the"); | ||
1051 | run(&mut text, c![0, 3; 0, 3 => " quick"]); | ||
1052 | assert_eq!(text, "the quick"); | ||
1053 | run(&mut text, c![0, 0; 0, 4 => "", 0, 5; 0, 5 => " foxes"]); | ||
1054 | assert_eq!(text, "quick foxes"); | ||
1055 | run(&mut text, c![0, 11; 0, 11 => "\ndream"]); | ||
1056 | assert_eq!(text, "quick foxes\ndream"); | ||
1057 | run(&mut text, c![1, 0; 1, 0 => "have "]); | ||
1058 | assert_eq!(text, "quick foxes\nhave dream"); | ||
1059 | run(&mut text, c![0, 0; 0, 0 => "the ", 1, 4; 1, 4 => " quiet", 1, 16; 1, 16 => "s\n"]); | ||
1060 | assert_eq!(text, "the quick foxes\nhave quiet dreams\n"); | ||
1061 | run(&mut text, c![0, 15; 0, 15 => "\n", 2, 17; 2, 17 => "\n"]); | ||
1062 | assert_eq!(text, "the quick foxes\n\nhave quiet dreams\n\n"); | ||
1063 | run( | ||
1064 | &mut text, | ||
1065 | c![1, 0; 1, 0 => "DREAM", 2, 0; 2, 0 => "they ", 3, 0; 3, 0 => "DON'T THEY?"], | ||
1066 | ); | ||
1067 | assert_eq!(text, "the quick foxes\nDREAM\nthey have quiet dreams\nDON'T THEY?\n"); | ||
1068 | run(&mut text, c![0, 10; 1, 5 => "", 2, 0; 2, 12 => ""]); | ||
1069 | assert_eq!(text, "the quick \nthey have quiet dreams\n"); | ||
1070 | } | ||
1071 | } | ||
diff --git a/crates/rust-analyzer/src/main_loop/handlers.rs b/crates/rust-analyzer/src/main_loop/handlers.rs index 6caaf5f88..c7a96ba93 100644 --- a/crates/rust-analyzer/src/main_loop/handlers.rs +++ b/crates/rust-analyzer/src/main_loop/handlers.rs | |||
@@ -19,8 +19,7 @@ use lsp_types::{ | |||
19 | TextEdit, Url, WorkspaceEdit, | 19 | TextEdit, Url, WorkspaceEdit, |
20 | }; | 20 | }; |
21 | use ra_ide::{ | 21 | use ra_ide::{ |
22 | Assist, AssistId, FileId, FilePosition, FileRange, Query, RangeInfo, Runnable, RunnableKind, | 22 | Assist, FileId, FilePosition, FileRange, Query, RangeInfo, Runnable, RunnableKind, SearchScope, |
23 | SearchScope, | ||
24 | }; | 23 | }; |
25 | use ra_prof::profile; | 24 | use ra_prof::profile; |
26 | use ra_syntax::{AstNode, SyntaxKind, TextRange, TextSize}; | 25 | use ra_syntax::{AstNode, SyntaxKind, TextRange, TextSize}; |
@@ -47,11 +46,11 @@ use crate::{ | |||
47 | pub fn handle_analyzer_status(world: WorldSnapshot, _: ()) -> Result<String> { | 46 | pub fn handle_analyzer_status(world: WorldSnapshot, _: ()) -> Result<String> { |
48 | let _p = profile("handle_analyzer_status"); | 47 | let _p = profile("handle_analyzer_status"); |
49 | let mut buf = world.status(); | 48 | let mut buf = world.status(); |
50 | format_to!(buf, "\n\nrequests:"); | 49 | format_to!(buf, "\n\nrequests:\n"); |
51 | let requests = world.latest_requests.read(); | 50 | let requests = world.latest_requests.read(); |
52 | for (is_last, r) in requests.iter() { | 51 | for (is_last, r) in requests.iter() { |
53 | let mark = if is_last { "*" } else { " " }; | 52 | let mark = if is_last { "*" } else { " " }; |
54 | format_to!(buf, "{}{:4} {:<36}{}ms", mark, r.id, r.method, r.duration.as_millis()); | 53 | format_to!(buf, "{}{:4} {:<36}{}ms\n", mark, r.id, r.method, r.duration.as_millis()); |
55 | } | 54 | } |
56 | Ok(buf) | 55 | Ok(buf) |
57 | } | 56 | } |
@@ -326,10 +325,10 @@ pub fn handle_workspace_symbol( | |||
326 | 325 | ||
327 | pub fn handle_goto_definition( | 326 | pub fn handle_goto_definition( |
328 | world: WorldSnapshot, | 327 | world: WorldSnapshot, |
329 | params: req::TextDocumentPositionParams, | 328 | params: req::GotoDefinitionParams, |
330 | ) -> Result<Option<req::GotoDefinitionResponse>> { | 329 | ) -> Result<Option<req::GotoDefinitionResponse>> { |
331 | let _p = profile("handle_goto_definition"); | 330 | let _p = profile("handle_goto_definition"); |
332 | let position = params.try_conv_with(&world)?; | 331 | let position = params.text_document_position_params.try_conv_with(&world)?; |
333 | let nav_info = match world.analysis().goto_definition(position)? { | 332 | let nav_info = match world.analysis().goto_definition(position)? { |
334 | None => return Ok(None), | 333 | None => return Ok(None), |
335 | Some(it) => it, | 334 | Some(it) => it, |
@@ -340,10 +339,10 @@ pub fn handle_goto_definition( | |||
340 | 339 | ||
341 | pub fn handle_goto_implementation( | 340 | pub fn handle_goto_implementation( |
342 | world: WorldSnapshot, | 341 | world: WorldSnapshot, |
343 | params: req::TextDocumentPositionParams, | 342 | params: req::GotoImplementationParams, |
344 | ) -> Result<Option<req::GotoImplementationResponse>> { | 343 | ) -> Result<Option<req::GotoImplementationResponse>> { |
345 | let _p = profile("handle_goto_implementation"); | 344 | let _p = profile("handle_goto_implementation"); |
346 | let position = params.try_conv_with(&world)?; | 345 | let position = params.text_document_position_params.try_conv_with(&world)?; |
347 | let nav_info = match world.analysis().goto_implementation(position)? { | 346 | let nav_info = match world.analysis().goto_implementation(position)? { |
348 | None => return Ok(None), | 347 | None => return Ok(None), |
349 | Some(it) => it, | 348 | Some(it) => it, |
@@ -354,10 +353,10 @@ pub fn handle_goto_implementation( | |||
354 | 353 | ||
355 | pub fn handle_goto_type_definition( | 354 | pub fn handle_goto_type_definition( |
356 | world: WorldSnapshot, | 355 | world: WorldSnapshot, |
357 | params: req::TextDocumentPositionParams, | 356 | params: req::GotoTypeDefinitionParams, |
358 | ) -> Result<Option<req::GotoTypeDefinitionResponse>> { | 357 | ) -> Result<Option<req::GotoTypeDefinitionResponse>> { |
359 | let _p = profile("handle_goto_type_definition"); | 358 | let _p = profile("handle_goto_type_definition"); |
360 | let position = params.try_conv_with(&world)?; | 359 | let position = params.text_document_position_params.try_conv_with(&world)?; |
361 | let nav_info = match world.analysis().goto_type_definition(position)? { | 360 | let nav_info = match world.analysis().goto_type_definition(position)? { |
362 | None => return Ok(None), | 361 | None => return Ok(None), |
363 | Some(it) => it, | 362 | Some(it) => it, |
@@ -401,11 +400,7 @@ pub fn handle_runnables( | |||
401 | range: Default::default(), | 400 | range: Default::default(), |
402 | label: format!("cargo {} -p {}", cmd, spec.package), | 401 | label: format!("cargo {} -p {}", cmd, spec.package), |
403 | bin: "cargo".to_string(), | 402 | bin: "cargo".to_string(), |
404 | args: { | 403 | args: vec![cmd.to_string(), "--package".to_string(), spec.package.clone()], |
405 | let mut args = vec![cmd.to_string()]; | ||
406 | spec.clone().push_to(&mut args); | ||
407 | args | ||
408 | }, | ||
409 | extra_args: Vec::new(), | 404 | extra_args: Vec::new(), |
410 | env: FxHashMap::default(), | 405 | env: FxHashMap::default(), |
411 | cwd: workspace_root.map(|root| root.to_owned()), | 406 | cwd: workspace_root.map(|root| root.to_owned()), |
@@ -487,10 +482,10 @@ pub fn handle_folding_range( | |||
487 | 482 | ||
488 | pub fn handle_signature_help( | 483 | pub fn handle_signature_help( |
489 | world: WorldSnapshot, | 484 | world: WorldSnapshot, |
490 | params: req::TextDocumentPositionParams, | 485 | params: req::SignatureHelpParams, |
491 | ) -> Result<Option<req::SignatureHelp>> { | 486 | ) -> Result<Option<req::SignatureHelp>> { |
492 | let _p = profile("handle_signature_help"); | 487 | let _p = profile("handle_signature_help"); |
493 | let position = params.try_conv_with(&world)?; | 488 | let position = params.text_document_position_params.try_conv_with(&world)?; |
494 | if let Some(call_info) = world.analysis().call_info(position)? { | 489 | if let Some(call_info) = world.analysis().call_info(position)? { |
495 | let concise = !world.config.call_info_full; | 490 | let concise = !world.config.call_info_full; |
496 | let mut active_parameter = call_info.active_parameter.map(|it| it as i64); | 491 | let mut active_parameter = call_info.active_parameter.map(|it| it as i64); |
@@ -509,12 +504,9 @@ pub fn handle_signature_help( | |||
509 | } | 504 | } |
510 | } | 505 | } |
511 | 506 | ||
512 | pub fn handle_hover( | 507 | pub fn handle_hover(world: WorldSnapshot, params: req::HoverParams) -> Result<Option<Hover>> { |
513 | world: WorldSnapshot, | ||
514 | params: req::TextDocumentPositionParams, | ||
515 | ) -> Result<Option<Hover>> { | ||
516 | let _p = profile("handle_hover"); | 508 | let _p = profile("handle_hover"); |
517 | let position = params.try_conv_with(&world)?; | 509 | let position = params.text_document_position_params.try_conv_with(&world)?; |
518 | let info = match world.analysis().hover(position)? { | 510 | let info = match world.analysis().hover(position)? { |
519 | None => return Ok(None), | 511 | None => return Ok(None), |
520 | Some(info) => info, | 512 | Some(info) => info, |
@@ -705,15 +697,9 @@ fn create_single_code_action(assist: Assist, world: &WorldSnapshot) -> Result<Co | |||
705 | arguments: Some(vec![arg]), | 697 | arguments: Some(vec![arg]), |
706 | }; | 698 | }; |
707 | 699 | ||
708 | let kind = match assist.id { | ||
709 | AssistId("introduce_variable") => Some("refactor.extract.variable".to_string()), | ||
710 | AssistId("add_custom_impl") => Some("refactor.rewrite.add_custom_impl".to_string()), | ||
711 | _ => None, | ||
712 | }; | ||
713 | |||
714 | Ok(CodeAction { | 700 | Ok(CodeAction { |
715 | title, | 701 | title, |
716 | kind, | 702 | kind: Some(String::new()), |
717 | diagnostics: None, | 703 | diagnostics: None, |
718 | edit: None, | 704 | edit: None, |
719 | command: Some(command), | 705 | command: Some(command), |
@@ -815,6 +801,23 @@ pub fn handle_code_action( | |||
815 | } | 801 | } |
816 | } | 802 | } |
817 | 803 | ||
804 | // If the client only supports commands then filter the list | ||
805 | // and remove and actions that depend on edits. | ||
806 | if !world.config.client_caps.code_action_literals { | ||
807 | // FIXME: use drain_filter once it hits stable. | ||
808 | res = res | ||
809 | .into_iter() | ||
810 | .filter_map(|it| match it { | ||
811 | cmd @ lsp_types::CodeActionOrCommand::Command(_) => Some(cmd), | ||
812 | lsp_types::CodeActionOrCommand::CodeAction(action) => match action.command { | ||
813 | Some(cmd) if action.edit.is_none() => { | ||
814 | Some(lsp_types::CodeActionOrCommand::Command(cmd)) | ||
815 | } | ||
816 | _ => None, | ||
817 | }, | ||
818 | }) | ||
819 | .collect(); | ||
820 | } | ||
818 | Ok(Some(res)) | 821 | Ok(Some(res)) |
819 | } | 822 | } |
820 | 823 | ||
@@ -878,8 +881,14 @@ pub fn handle_code_lens( | |||
878 | .map(|it| { | 881 | .map(|it| { |
879 | let range = it.node_range.conv_with(&line_index); | 882 | let range = it.node_range.conv_with(&line_index); |
880 | let pos = range.start; | 883 | let pos = range.start; |
881 | let lens_params = | 884 | let lens_params = req::GotoImplementationParams { |
882 | req::TextDocumentPositionParams::new(params.text_document.clone(), pos); | 885 | text_document_position_params: req::TextDocumentPositionParams::new( |
886 | params.text_document.clone(), | ||
887 | pos, | ||
888 | ), | ||
889 | work_done_progress_params: Default::default(), | ||
890 | partial_result_params: Default::default(), | ||
891 | }; | ||
883 | CodeLens { | 892 | CodeLens { |
884 | range, | 893 | range, |
885 | command: None, | 894 | command: None, |
@@ -894,7 +903,7 @@ pub fn handle_code_lens( | |||
894 | #[derive(Debug, Serialize, Deserialize)] | 903 | #[derive(Debug, Serialize, Deserialize)] |
895 | #[serde(rename_all = "camelCase")] | 904 | #[serde(rename_all = "camelCase")] |
896 | enum CodeLensResolveData { | 905 | enum CodeLensResolveData { |
897 | Impls(req::TextDocumentPositionParams), | 906 | Impls(req::GotoImplementationParams), |
898 | } | 907 | } |
899 | 908 | ||
900 | pub fn handle_code_lens_resolve(world: WorldSnapshot, code_lens: CodeLens) -> Result<CodeLens> { | 909 | pub fn handle_code_lens_resolve(world: WorldSnapshot, code_lens: CodeLens) -> Result<CodeLens> { |
@@ -927,7 +936,7 @@ pub fn handle_code_lens_resolve(world: WorldSnapshot, code_lens: CodeLens) -> Re | |||
927 | title, | 936 | title, |
928 | command: "rust-analyzer.showReferences".into(), | 937 | command: "rust-analyzer.showReferences".into(), |
929 | arguments: Some(vec![ | 938 | arguments: Some(vec![ |
930 | to_value(&lens_params.text_document.uri).unwrap(), | 939 | to_value(&lens_params.text_document_position_params.text_document.uri).unwrap(), |
931 | to_value(code_lens.range.start).unwrap(), | 940 | to_value(code_lens.range.start).unwrap(), |
932 | to_value(locations).unwrap(), | 941 | to_value(locations).unwrap(), |
933 | ]), | 942 | ]), |
@@ -944,16 +953,16 @@ pub fn handle_code_lens_resolve(world: WorldSnapshot, code_lens: CodeLens) -> Re | |||
944 | 953 | ||
945 | pub fn handle_document_highlight( | 954 | pub fn handle_document_highlight( |
946 | world: WorldSnapshot, | 955 | world: WorldSnapshot, |
947 | params: req::TextDocumentPositionParams, | 956 | params: req::DocumentHighlightParams, |
948 | ) -> Result<Option<Vec<DocumentHighlight>>> { | 957 | ) -> Result<Option<Vec<DocumentHighlight>>> { |
949 | let _p = profile("handle_document_highlight"); | 958 | let _p = profile("handle_document_highlight"); |
950 | let file_id = params.text_document.try_conv_with(&world)?; | 959 | let file_id = params.text_document_position_params.text_document.try_conv_with(&world)?; |
951 | let line_index = world.analysis().file_line_index(file_id)?; | 960 | let line_index = world.analysis().file_line_index(file_id)?; |
952 | 961 | ||
953 | let refs = match world | 962 | let refs = match world.analysis().find_all_refs( |
954 | .analysis() | 963 | params.text_document_position_params.try_conv_with(&world)?, |
955 | .find_all_refs(params.try_conv_with(&world)?, Some(SearchScope::single_file(file_id)))? | 964 | Some(SearchScope::single_file(file_id)), |
956 | { | 965 | )? { |
957 | None => return Ok(None), | 966 | None => return Ok(None), |
958 | Some(refs) => refs, | 967 | Some(refs) => refs, |
959 | }; | 968 | }; |
diff --git a/crates/rust-analyzer/src/req.rs b/crates/rust-analyzer/src/req.rs index ae3448892..0dae6bad4 100644 --- a/crates/rust-analyzer/src/req.rs +++ b/crates/rust-analyzer/src/req.rs | |||
@@ -8,14 +8,15 @@ pub use lsp_types::{ | |||
8 | notification::*, request::*, ApplyWorkspaceEditParams, CodeActionParams, CodeLens, | 8 | notification::*, request::*, ApplyWorkspaceEditParams, CodeActionParams, CodeLens, |
9 | CodeLensParams, CompletionParams, CompletionResponse, ConfigurationItem, ConfigurationParams, | 9 | CodeLensParams, CompletionParams, CompletionResponse, ConfigurationItem, ConfigurationParams, |
10 | DiagnosticTag, DidChangeConfigurationParams, DidChangeWatchedFilesParams, | 10 | DiagnosticTag, DidChangeConfigurationParams, DidChangeWatchedFilesParams, |
11 | DidChangeWatchedFilesRegistrationOptions, DocumentOnTypeFormattingParams, DocumentSymbolParams, | 11 | DidChangeWatchedFilesRegistrationOptions, DocumentHighlightParams, |
12 | DocumentSymbolResponse, FileSystemWatcher, Hover, InitializeResult, MessageType, | 12 | DocumentOnTypeFormattingParams, DocumentSymbolParams, DocumentSymbolResponse, |
13 | PartialResultParams, ProgressParams, ProgressParamsValue, ProgressToken, | 13 | FileSystemWatcher, GotoDefinitionParams, GotoDefinitionResponse, Hover, HoverParams, |
14 | PublishDiagnosticsParams, ReferenceParams, Registration, RegistrationParams, SelectionRange, | 14 | InitializeResult, MessageType, PartialResultParams, ProgressParams, ProgressParamsValue, |
15 | SelectionRangeParams, SemanticTokensParams, SemanticTokensRangeParams, | 15 | ProgressToken, PublishDiagnosticsParams, ReferenceParams, Registration, RegistrationParams, |
16 | SelectionRange, SelectionRangeParams, SemanticTokensParams, SemanticTokensRangeParams, | ||
16 | SemanticTokensRangeResult, SemanticTokensResult, ServerCapabilities, ShowMessageParams, | 17 | SemanticTokensRangeResult, SemanticTokensResult, ServerCapabilities, ShowMessageParams, |
17 | SignatureHelp, SymbolKind, TextDocumentEdit, TextDocumentPositionParams, TextEdit, | 18 | SignatureHelp, SignatureHelpParams, SymbolKind, TextDocumentEdit, TextDocumentPositionParams, |
18 | WorkDoneProgressParams, WorkspaceEdit, WorkspaceSymbolParams, | 19 | TextEdit, WorkDoneProgressParams, WorkspaceEdit, WorkspaceSymbolParams, |
19 | }; | 20 | }; |
20 | use std::path::PathBuf; | 21 | use std::path::PathBuf; |
21 | 22 | ||
diff --git a/crates/rust-analyzer/src/semantic_tokens.rs b/crates/rust-analyzer/src/semantic_tokens.rs index 71f4f58a3..2dc5cb119 100644 --- a/crates/rust-analyzer/src/semantic_tokens.rs +++ b/crates/rust-analyzer/src/semantic_tokens.rs | |||
@@ -4,64 +4,69 @@ use std::ops; | |||
4 | 4 | ||
5 | use lsp_types::{Range, SemanticToken, SemanticTokenModifier, SemanticTokenType, SemanticTokens}; | 5 | use lsp_types::{Range, SemanticToken, SemanticTokenModifier, SemanticTokenType, SemanticTokens}; |
6 | 6 | ||
7 | pub(crate) const ATTRIBUTE: SemanticTokenType = SemanticTokenType::new("attribute"); | 7 | macro_rules! define_semantic_token_types { |
8 | pub(crate) const BUILTIN_TYPE: SemanticTokenType = SemanticTokenType::new("builtinType"); | 8 | ($(($ident:ident, $string:literal)),*$(,)?) => { |
9 | pub(crate) const ENUM_MEMBER: SemanticTokenType = SemanticTokenType::new("enumMember"); | 9 | $(pub(crate) const $ident: SemanticTokenType = SemanticTokenType::new($string);)* |
10 | pub(crate) const LIFETIME: SemanticTokenType = SemanticTokenType::new("lifetime"); | 10 | |
11 | pub(crate) const TYPE_ALIAS: SemanticTokenType = SemanticTokenType::new("typeAlias"); | 11 | pub(crate) const SUPPORTED_TYPES: &[SemanticTokenType] = &[ |
12 | pub(crate) const UNION: SemanticTokenType = SemanticTokenType::new("union"); | 12 | SemanticTokenType::COMMENT, |
13 | pub(crate) const UNRESOLVED_REFERENCE: SemanticTokenType = | 13 | SemanticTokenType::KEYWORD, |
14 | SemanticTokenType::new("unresolvedReference"); | 14 | SemanticTokenType::STRING, |
15 | pub(crate) const FORMAT_SPECIFIER: SemanticTokenType = SemanticTokenType::new("formatSpecifier"); | 15 | SemanticTokenType::NUMBER, |
16 | 16 | SemanticTokenType::REGEXP, | |
17 | pub(crate) const CONSTANT: SemanticTokenModifier = SemanticTokenModifier::new("constant"); | 17 | SemanticTokenType::OPERATOR, |
18 | pub(crate) const CONTROL_FLOW: SemanticTokenModifier = SemanticTokenModifier::new("controlFlow"); | 18 | SemanticTokenType::NAMESPACE, |
19 | pub(crate) const MUTABLE: SemanticTokenModifier = SemanticTokenModifier::new("mutable"); | 19 | SemanticTokenType::TYPE, |
20 | pub(crate) const UNSAFE: SemanticTokenModifier = SemanticTokenModifier::new("unsafe"); | 20 | SemanticTokenType::STRUCT, |
21 | 21 | SemanticTokenType::CLASS, | |
22 | pub(crate) const SUPPORTED_TYPES: &[SemanticTokenType] = &[ | 22 | SemanticTokenType::INTERFACE, |
23 | SemanticTokenType::COMMENT, | 23 | SemanticTokenType::ENUM, |
24 | SemanticTokenType::KEYWORD, | 24 | SemanticTokenType::TYPE_PARAMETER, |
25 | SemanticTokenType::STRING, | 25 | SemanticTokenType::FUNCTION, |
26 | SemanticTokenType::NUMBER, | 26 | SemanticTokenType::MEMBER, |
27 | SemanticTokenType::REGEXP, | 27 | SemanticTokenType::PROPERTY, |
28 | SemanticTokenType::OPERATOR, | 28 | SemanticTokenType::MACRO, |
29 | SemanticTokenType::NAMESPACE, | 29 | SemanticTokenType::VARIABLE, |
30 | SemanticTokenType::TYPE, | 30 | SemanticTokenType::PARAMETER, |
31 | SemanticTokenType::STRUCT, | 31 | SemanticTokenType::LABEL, |
32 | SemanticTokenType::CLASS, | 32 | $($ident),* |
33 | SemanticTokenType::INTERFACE, | 33 | ]; |
34 | SemanticTokenType::ENUM, | 34 | }; |
35 | SemanticTokenType::TYPE_PARAMETER, | 35 | } |
36 | SemanticTokenType::FUNCTION, | 36 | |
37 | SemanticTokenType::MEMBER, | 37 | define_semantic_token_types![ |
38 | SemanticTokenType::PROPERTY, | 38 | (ATTRIBUTE, "attribute"), |
39 | SemanticTokenType::MACRO, | 39 | (BUILTIN_TYPE, "builtinType"), |
40 | SemanticTokenType::VARIABLE, | 40 | (ENUM_MEMBER, "enumMember"), |
41 | SemanticTokenType::PARAMETER, | 41 | (LIFETIME, "lifetime"), |
42 | SemanticTokenType::LABEL, | 42 | (TYPE_ALIAS, "typeAlias"), |
43 | ATTRIBUTE, | 43 | (UNION, "union"), |
44 | BUILTIN_TYPE, | 44 | (UNRESOLVED_REFERENCE, "unresolvedReference"), |
45 | ENUM_MEMBER, | 45 | (FORMAT_SPECIFIER, "formatSpecifier"), |
46 | LIFETIME, | ||
47 | TYPE_ALIAS, | ||
48 | UNION, | ||
49 | UNRESOLVED_REFERENCE, | ||
50 | FORMAT_SPECIFIER, | ||
51 | ]; | 46 | ]; |
52 | 47 | ||
53 | pub(crate) const SUPPORTED_MODIFIERS: &[SemanticTokenModifier] = &[ | 48 | macro_rules! define_semantic_token_modifiers { |
54 | SemanticTokenModifier::DOCUMENTATION, | 49 | ($(($ident:ident, $string:literal)),*$(,)?) => { |
55 | SemanticTokenModifier::DECLARATION, | 50 | $(pub(crate) const $ident: SemanticTokenModifier = SemanticTokenModifier::new($string);)* |
56 | SemanticTokenModifier::DEFINITION, | 51 | |
57 | SemanticTokenModifier::STATIC, | 52 | pub(crate) const SUPPORTED_MODIFIERS: &[SemanticTokenModifier] = &[ |
58 | SemanticTokenModifier::ABSTRACT, | 53 | SemanticTokenModifier::DOCUMENTATION, |
59 | SemanticTokenModifier::DEPRECATED, | 54 | SemanticTokenModifier::DECLARATION, |
60 | SemanticTokenModifier::READONLY, | 55 | SemanticTokenModifier::DEFINITION, |
61 | CONSTANT, | 56 | SemanticTokenModifier::STATIC, |
62 | MUTABLE, | 57 | SemanticTokenModifier::ABSTRACT, |
63 | UNSAFE, | 58 | SemanticTokenModifier::DEPRECATED, |
64 | CONTROL_FLOW, | 59 | SemanticTokenModifier::READONLY, |
60 | $($ident),* | ||
61 | ]; | ||
62 | }; | ||
63 | } | ||
64 | |||
65 | define_semantic_token_modifiers![ | ||
66 | (CONSTANT, "constant"), | ||
67 | (CONTROL_FLOW, "controlFlow"), | ||
68 | (MUTABLE, "mutable"), | ||
69 | (UNSAFE, "unsafe"), | ||
65 | ]; | 70 | ]; |
66 | 71 | ||
67 | #[derive(Default)] | 72 | #[derive(Default)] |
diff --git a/crates/rust-analyzer/tests/heavy_tests/main.rs b/crates/rust-analyzer/tests/heavy_tests/main.rs index f6245ddd4..a218da76d 100644 --- a/crates/rust-analyzer/tests/heavy_tests/main.rs +++ b/crates/rust-analyzer/tests/heavy_tests/main.rs | |||
@@ -4,8 +4,8 @@ use std::{collections::HashMap, path::PathBuf, time::Instant}; | |||
4 | 4 | ||
5 | use lsp_types::{ | 5 | use lsp_types::{ |
6 | CodeActionContext, DidOpenTextDocumentParams, DocumentFormattingParams, FormattingOptions, | 6 | CodeActionContext, DidOpenTextDocumentParams, DocumentFormattingParams, FormattingOptions, |
7 | PartialResultParams, Position, Range, TextDocumentItem, TextDocumentPositionParams, | 7 | GotoDefinitionParams, HoverParams, PartialResultParams, Position, Range, TextDocumentItem, |
8 | WorkDoneProgressParams, | 8 | TextDocumentPositionParams, WorkDoneProgressParams, |
9 | }; | 9 | }; |
10 | use rust_analyzer::req::{ | 10 | use rust_analyzer::req::{ |
11 | CodeActionParams, CodeActionRequest, Completion, CompletionParams, DidOpenTextDocument, | 11 | CodeActionParams, CodeActionRequest, Completion, CompletionParams, DidOpenTextDocument, |
@@ -149,7 +149,7 @@ fn main() {} | |||
149 | "cwd": server.path().join("foo") | 149 | "cwd": server.path().join("foo") |
150 | }, | 150 | }, |
151 | { | 151 | { |
152 | "args": [ "check", "--package", "foo", "--test", "spam" ], | 152 | "args": [ "check", "--package", "foo" ], |
153 | "extraArgs": [], | 153 | "extraArgs": [], |
154 | "bin": "cargo", | 154 | "bin": "cargo", |
155 | "env": {}, | 155 | "env": {}, |
@@ -161,7 +161,7 @@ fn main() {} | |||
161 | "cwd": server.path().join("foo") | 161 | "cwd": server.path().join("foo") |
162 | }, | 162 | }, |
163 | { | 163 | { |
164 | "args": [ "test", "--package", "foo", "--test", "spam" ], | 164 | "args": [ "test", "--package", "foo" ], |
165 | "extraArgs": [], | 165 | "extraArgs": [], |
166 | "bin": "cargo", | 166 | "bin": "cargo", |
167 | "env": {}, | 167 | "env": {}, |
@@ -610,10 +610,14 @@ fn main() { message(); } | |||
610 | }) | 610 | }) |
611 | .server(); | 611 | .server(); |
612 | server.wait_until_workspace_is_loaded(); | 612 | server.wait_until_workspace_is_loaded(); |
613 | let res = server.send_request::<GotoDefinition>(TextDocumentPositionParams::new( | 613 | let res = server.send_request::<GotoDefinition>(GotoDefinitionParams { |
614 | server.doc_id("src/main.rs"), | 614 | text_document_position_params: TextDocumentPositionParams::new( |
615 | Position::new(2, 15), | 615 | server.doc_id("src/main.rs"), |
616 | )); | 616 | Position::new(2, 15), |
617 | ), | ||
618 | work_done_progress_params: Default::default(), | ||
619 | partial_result_params: Default::default(), | ||
620 | }); | ||
617 | assert!(format!("{}", res).contains("hello.rs")); | 621 | assert!(format!("{}", res).contains("hello.rs")); |
618 | } | 622 | } |
619 | 623 | ||
@@ -692,10 +696,13 @@ pub fn foo(_input: TokenStream) -> TokenStream { | |||
692 | .root("bar") | 696 | .root("bar") |
693 | .server(); | 697 | .server(); |
694 | server.wait_until_workspace_is_loaded(); | 698 | server.wait_until_workspace_is_loaded(); |
695 | let res = server.send_request::<HoverRequest>(TextDocumentPositionParams::new( | 699 | let res = server.send_request::<HoverRequest>(HoverParams { |
696 | server.doc_id("foo/src/main.rs"), | 700 | text_document_position_params: TextDocumentPositionParams::new( |
697 | Position::new(7, 9), | 701 | server.doc_id("foo/src/main.rs"), |
698 | )); | 702 | Position::new(7, 9), |
703 | ), | ||
704 | work_done_progress_params: Default::default(), | ||
705 | }); | ||
699 | 706 | ||
700 | let value = res.get("contents").unwrap().get("value").unwrap().to_string(); | 707 | let value = res.get("contents").unwrap().get("value").unwrap().to_string(); |
701 | assert_eq!(value, r#""```rust\nfoo::Bar\nfn bar()\n```""#) | 708 | assert_eq!(value, r#""```rust\nfoo::Bar\nfn bar()\n```""#) |
diff --git a/crates/rust-analyzer/tests/heavy_tests/support.rs b/crates/rust-analyzer/tests/heavy_tests/support.rs index e4fe3411a..8d47ee4f6 100644 --- a/crates/rust-analyzer/tests/heavy_tests/support.rs +++ b/crates/rust-analyzer/tests/heavy_tests/support.rs | |||
@@ -77,7 +77,11 @@ impl<'a> Project<'a> { | |||
77 | let roots = self.roots.into_iter().map(|root| tmp_dir.path().join(root)).collect(); | 77 | let roots = self.roots.into_iter().map(|root| tmp_dir.path().join(root)).collect(); |
78 | 78 | ||
79 | let mut config = Config { | 79 | let mut config = Config { |
80 | client_caps: ClientCapsConfig { location_link: true, ..Default::default() }, | 80 | client_caps: ClientCapsConfig { |
81 | location_link: true, | ||
82 | code_action_literals: true, | ||
83 | ..Default::default() | ||
84 | }, | ||
81 | with_sysroot: self.with_sysroot, | 85 | with_sysroot: self.with_sysroot, |
82 | ..Config::default() | 86 | ..Config::default() |
83 | }; | 87 | }; |
diff --git a/docs/dev/architecture.md b/docs/dev/architecture.md index 3a337c574..cee916c09 100644 --- a/docs/dev/architecture.md +++ b/docs/dev/architecture.md | |||
@@ -46,7 +46,7 @@ can be quickly updated for small modifications. | |||
46 | 46 | ||
47 | Some of the components of this repository are generated through automatic | 47 | Some of the components of this repository are generated through automatic |
48 | processes. `cargo xtask codegen` runs all generation tasks. Generated code is | 48 | processes. `cargo xtask codegen` runs all generation tasks. Generated code is |
49 | commited to the git repository. | 49 | committed to the git repository. |
50 | 50 | ||
51 | In particular, `cargo xtask codegen` generates: | 51 | In particular, `cargo xtask codegen` generates: |
52 | 52 | ||
@@ -114,7 +114,7 @@ is responsible for guessing a HIR for a particular source position. | |||
114 | Underneath, HIR works on top of salsa, using a `HirDatabase` trait. | 114 | Underneath, HIR works on top of salsa, using a `HirDatabase` trait. |
115 | 115 | ||
116 | `ra_hir_xxx` crates have a strong ECS flavor, in that they work with raw ids and | 116 | `ra_hir_xxx` crates have a strong ECS flavor, in that they work with raw ids and |
117 | directly query the databse. | 117 | directly query the database. |
118 | 118 | ||
119 | The top-level `ra_hir` façade crate wraps ids into a more OO-flavored API. | 119 | The top-level `ra_hir` façade crate wraps ids into a more OO-flavored API. |
120 | 120 | ||
diff --git a/docs/dev/guide.md b/docs/dev/guide.md index abbe4c154..c3252f1f6 100644 --- a/docs/dev/guide.md +++ b/docs/dev/guide.md | |||
@@ -26,7 +26,7 @@ properties hold: | |||
26 | 26 | ||
27 | ## IDE API | 27 | ## IDE API |
28 | 28 | ||
29 | To see the bigger picture of how the IDE features works, let's take a look at the [`AnalysisHost`] and | 29 | To see the bigger picture of how the IDE features work, let's take a look at the [`AnalysisHost`] and |
30 | [`Analysis`] pair of types. `AnalysisHost` has three methods: | 30 | [`Analysis`] pair of types. `AnalysisHost` has three methods: |
31 | 31 | ||
32 | * `default()` for creating an empty analysis instance | 32 | * `default()` for creating an empty analysis instance |
@@ -131,7 +131,7 @@ mapping between `SourceRoot` IDs (which are assigned by the client) and actual | |||
131 | analyzer. | 131 | analyzer. |
132 | 132 | ||
133 | Note that `mod`, `#[path]` and `include!()` can only reference files from the | 133 | Note that `mod`, `#[path]` and `include!()` can only reference files from the |
134 | same source root. It is of course is possible to explicitly add extra files to | 134 | same source root. It is of course possible to explicitly add extra files to |
135 | the source root, even `/dev/random`. | 135 | the source root, even `/dev/random`. |
136 | 136 | ||
137 | ## Language Server Protocol | 137 | ## Language Server Protocol |
@@ -192,7 +192,7 @@ task will be canceled as soon as the main loop calls `apply_change` on the | |||
192 | [`schedule`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_lsp_server/src/main_loop.rs#L426-L455 | 192 | [`schedule`]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_lsp_server/src/main_loop.rs#L426-L455 |
193 | [The task]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_lsp_server/src/main_loop/handlers.rs#L205-L223 | 193 | [The task]: https://github.com/rust-analyzer/rust-analyzer/blob/guide-2019-01/crates/ra_lsp_server/src/main_loop/handlers.rs#L205-L223 |
194 | 194 | ||
195 | This concludes the overview of the analyzer's programing *interface*. Next, lets | 195 | This concludes the overview of the analyzer's programing *interface*. Next, let's |
196 | dig into the implementation! | 196 | dig into the implementation! |
197 | 197 | ||
198 | ## Salsa | 198 | ## Salsa |
@@ -480,7 +480,7 @@ throughout the analyzer: | |||
480 | ## Source Map pattern | 480 | ## Source Map pattern |
481 | 481 | ||
482 | Due to an obscure edge case in completion, IDE needs to know the syntax node of | 482 | Due to an obscure edge case in completion, IDE needs to know the syntax node of |
483 | an use statement which imported the given completion candidate. We can't just | 483 | a use statement which imported the given completion candidate. We can't just |
484 | store the syntax node as a part of name resolution: this will break | 484 | store the syntax node as a part of name resolution: this will break |
485 | incrementality, due to the fact that syntax changes after every file | 485 | incrementality, due to the fact that syntax changes after every file |
486 | modification. | 486 | modification. |
diff --git a/docs/dev/syntax.md b/docs/dev/syntax.md index 4dd1de659..33973ffec 100644 --- a/docs/dev/syntax.md +++ b/docs/dev/syntax.md | |||
@@ -35,7 +35,7 @@ The syntax tree consists of three layers: | |||
35 | * AST | 35 | * AST |
36 | 36 | ||
37 | Of these, only GreenNodes store the actual data, the other two layers are (non-trivial) views into green tree. | 37 | Of these, only GreenNodes store the actual data, the other two layers are (non-trivial) views into green tree. |
38 | Red-green terminology comes from Roslyn ([link](https://docs.microsoft.com/en-ie/archive/blogs/ericlippert/persistence-facades-and-roslyns-red-green-trees)) and gives the name to the `rowan` library. Green and syntax nodes are defined in rowan, ast is defined in rust-analyzer. | 38 | Red-green terminology comes from Roslyn ([link](https://ericlippert.com/2012/06/08/red-green-trees/)) and gives the name to the `rowan` library. Green and syntax nodes are defined in rowan, ast is defined in rust-analyzer. |
39 | 39 | ||
40 | Syntax trees are a semi-transient data structure. | 40 | Syntax trees are a semi-transient data structure. |
41 | In general, frontend does not keep syntax trees for all files in memory. | 41 | In general, frontend does not keep syntax trees for all files in memory. |
diff --git a/docs/user/assists.md b/docs/user/assists.md index 6c6943622..ee515949e 100644 --- a/docs/user/assists.md +++ b/docs/user/assists.md | |||
@@ -175,7 +175,9 @@ trait Trait<T> { | |||
175 | } | 175 | } |
176 | 176 | ||
177 | impl Trait<u32> for () { | 177 | impl Trait<u32> for () { |
178 | fn foo(&self) -> u32 { todo!() } | 178 | fn foo(&self) -> u32 { |
179 | todo!() | ||
180 | } | ||
179 | 181 | ||
180 | } | 182 | } |
181 | ``` | 183 | ``` |
@@ -695,3 +697,21 @@ use std::┃collections::HashMap; | |||
695 | // AFTER | 697 | // AFTER |
696 | use std::{collections::HashMap}; | 698 | use std::{collections::HashMap}; |
697 | ``` | 699 | ``` |
700 | |||
701 | ## `unwrap_block` | ||
702 | |||
703 | This assist removes if...else, for, while and loop control statements to just keep the body. | ||
704 | |||
705 | ```rust | ||
706 | // BEFORE | ||
707 | fn foo() { | ||
708 | if true {┃ | ||
709 | println!("foo"); | ||
710 | } | ||
711 | } | ||
712 | |||
713 | // AFTER | ||
714 | fn foo() { | ||
715 | println!("foo"); | ||
716 | } | ||
717 | ``` | ||
diff --git a/docs/user/features.md b/docs/user/features.md index 56d2969fd..b9a365fc1 100644 --- a/docs/user/features.md +++ b/docs/user/features.md | |||
@@ -140,8 +140,8 @@ space or `;` depending on the return type of the function. | |||
140 | When completing a function call, `()` are automatically inserted. If a function | 140 | When completing a function call, `()` are automatically inserted. If a function |
141 | takes arguments, the cursor is positioned inside the parenthesis. | 141 | takes arguments, the cursor is positioned inside the parenthesis. |
142 | 142 | ||
143 | There are postifx completions, which can be triggerd by typing something like | 143 | There are postfix completions, which can be triggered by typing something like |
144 | `foo().if`. The word after `.` determines postifx completion. Possible variants are: | 144 | `foo().if`. The word after `.` determines postfix completion. Possible variants are: |
145 | 145 | ||
146 | - `expr.if` -> `if expr {}` | 146 | - `expr.if` -> `if expr {}` |
147 | - `expr.match` -> `match expr {}` | 147 | - `expr.match` -> `match expr {}` |
diff --git a/docs/user/readme.adoc b/docs/user/readme.adoc index 76d065d35..b1af72ce6 100644 --- a/docs/user/readme.adoc +++ b/docs/user/readme.adoc | |||
@@ -111,7 +111,7 @@ Here are some useful self-diagnostic commands: | |||
111 | === rust-analyzer Language Server Binary | 111 | === rust-analyzer Language Server Binary |
112 | 112 | ||
113 | Other editors generally require the `rust-analyzer` binary to be in `$PATH`. | 113 | Other editors generally require the `rust-analyzer` binary to be in `$PATH`. |
114 | You can download the pre-built binary from the https://github.com/rust-analyzer/rust-analyzer/releases[releases] page. Typically, you then need to rename the binary for your platform, e.g. `rust-analyzer-mac` if you're on Mac OS, to `rust-analzyer` and make it executable in addition to moving it into a directory in your `$PATH`. | 114 | You can download the pre-built binary from the https://github.com/rust-analyzer/rust-analyzer/releases[releases] page. Typically, you then need to rename the binary for your platform, e.g. `rust-analyzer-mac` if you're on Mac OS, to `rust-analyzer` and make it executable in addition to moving it into a directory in your `$PATH`. |
115 | 115 | ||
116 | On Linux to install the `rust-analyzer` binary into `~/.local/bin`, this commands could be used | 116 | On Linux to install the `rust-analyzer` binary into `~/.local/bin`, this commands could be used |
117 | 117 | ||
@@ -169,13 +169,15 @@ The are several LSP client implementations for vim: | |||
169 | 169 | ||
170 | 1. Install coc.nvim by following the instructions at | 170 | 1. Install coc.nvim by following the instructions at |
171 | https://github.com/neoclide/coc.nvim[coc.nvim] | 171 | https://github.com/neoclide/coc.nvim[coc.nvim] |
172 | (nodejs required) | 172 | (Node.js required) |
173 | 2. Run `:CocInstall coc-rust-analyzer` to install | 173 | 2. Run `:CocInstall coc-rust-analyzer` to install |
174 | https://github.com/fannheyward/coc-rust-analyzer[coc-rust-analyzer], | 174 | https://github.com/fannheyward/coc-rust-analyzer[coc-rust-analyzer], |
175 | this extension implements _most_ of the features supported in the VSCode extension: | 175 | this extension implements _most_ of the features supported in the VSCode extension: |
176 | * automatically install and upgrade stable/nightly releases | ||
176 | * same configurations as VSCode extension, `rust-analyzer.serverPath`, `rust-analyzer.cargo.features` etc. | 177 | * same configurations as VSCode extension, `rust-analyzer.serverPath`, `rust-analyzer.cargo.features` etc. |
177 | * same commands too, `rust-analyzer.analyzerStatus`, `rust-analyzer.ssr` etc. | 178 | * same commands too, `rust-analyzer.analyzerStatus`, `rust-analyzer.ssr` etc. |
178 | * highlighting and inlay_hints are not implemented yet | 179 | * inlay hints for method chaining support, _Neovim Only_ |
180 | * semantic highlighting is not implemented yet | ||
179 | 181 | ||
180 | ==== LanguageClient-neovim | 182 | ==== LanguageClient-neovim |
181 | 183 | ||
@@ -195,11 +197,11 @@ let g:LanguageClient_serverCommands = { | |||
195 | ==== YouCompleteMe | 197 | ==== YouCompleteMe |
196 | 198 | ||
197 | 1. Install YouCompleteMe by following the instructions | 199 | 1. Install YouCompleteMe by following the instructions |
198 | https://ycm-core.github.io/YouCompleteMe/#rust-semantic-completion[here] | 200 | https://github.com/ycm-core/lsp-examples#rust-rust-analyzer[here] |
199 | 201 | ||
200 | 2. Configure by adding this to your vim/neovim config file (replacing the existing Rust-specific line if it exists): | 202 | 2. Configure by adding this to your vim/neovim config file (replacing the existing Rust-specific line if it exists): |
201 | + | 203 | + |
202 | [source,vim] | 204 | [source,vim] |
203 | ---- | 205 | ---- |
204 | let g:ycm_language_server = | 206 | let g:ycm_language_server = |
205 | \ [ | 207 | \ [ |
@@ -212,6 +214,21 @@ let g:ycm_language_server = | |||
212 | \ ] | 214 | \ ] |
213 | ---- | 215 | ---- |
214 | 216 | ||
217 | ==== ALE | ||
218 | |||
219 | To add the LSP server to https://github.com/dense-analysis/ale[ale]: | ||
220 | |||
221 | [source,vim] | ||
222 | ---- | ||
223 | call ale#linter#Define('rust', { | ||
224 | \ 'name': 'rust-analyzer', | ||
225 | \ 'lsp': 'stdio', | ||
226 | \ 'executable': 'rust-analyzer', | ||
227 | \ 'command': '%e', | ||
228 | \ 'project_root': '.', | ||
229 | \}) | ||
230 | ---- | ||
231 | |||
215 | ==== nvim-lsp | 232 | ==== nvim-lsp |
216 | 233 | ||
217 | NeoVim 0.5 (not yet released) has built-in language server support. | 234 | NeoVim 0.5 (not yet released) has built-in language server support. |
@@ -229,12 +246,21 @@ You also need the `LSP` package. To install it: | |||
229 | * Type `Install Package Control`, press enter | 246 | * Type `Install Package Control`, press enter |
230 | 2. In the command palette, run `Package control: Install package`, and in the list that pops up, type `LSP` and press enter. | 247 | 2. In the command palette, run `Package control: Install package`, and in the list that pops up, type `LSP` and press enter. |
231 | 248 | ||
232 | Finally, with your Rust project open, in the command palette, run `LSP: Enable Language Server In Project` or `LSP: Enable Language Server Globally`, then select `rust-analyzer` in the list that pops up to enable the rust-analyzer LSP. The latter means that rust-analzyer is enabled by default in Rust projects. | 249 | Finally, with your Rust project open, in the command palette, run `LSP: Enable Language Server In Project` or `LSP: Enable Language Server Globally`, then select `rust-analyzer` in the list that pops up to enable the rust-analyzer LSP. The latter means that rust-analyzer is enabled by default in Rust projects. |
233 | 250 | ||
234 | If it worked, you should see "rust-analzyer, Line X, Column Y" on the left side of the bottom bar, and after waiting a bit, functionality like tooltips on hovering over variables should become available. | 251 | If it worked, you should see "rust-analyzer, Line X, Column Y" on the left side of the bottom bar, and after waiting a bit, functionality like tooltips on hovering over variables should become available. |
235 | 252 | ||
236 | If you get an error saying `No such file or directory: 'rust-analyzer'`, see the <<rust-analyzer-language-server-binary,`rust-analyzer` binary>> section on installing the language server binary. | 253 | If you get an error saying `No such file or directory: 'rust-analyzer'`, see the <<rust-analyzer-language-server-binary,`rust-analyzer` binary>> section on installing the language server binary. |
237 | 254 | ||
255 | === Gnome Builder | ||
256 | |||
257 | Prerequisites: You have installed the <<rust-analyzer-language-server-binary,`rust-analyzer` binary>>. | ||
258 | |||
259 | Gnome Builder currently has support for RLS, and there's no way to configure the language server executable. A future version might support `rust-analyzer` out of the box. | ||
260 | |||
261 | 1. Rename, symlink or copy the `rust-analyzer` binary to `rls` and place it somewhere Builder can find (in `PATH`, or under `~/.cargo/bin`). | ||
262 | 2. Enable the Rust Builder plugin. | ||
263 | |||
238 | == Usage | 264 | == Usage |
239 | 265 | ||
240 | See https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/features.md[features.md]. | 266 | See https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/features.md[features.md]. |
diff --git a/editors/code/package.json b/editors/code/package.json index b8aaa07d8..7ef727b9d 100644 --- a/editors/code/package.json +++ b/editors/code/package.json | |||
@@ -27,6 +27,7 @@ | |||
27 | "scripts": { | 27 | "scripts": { |
28 | "vscode:prepublish": "tsc && rollup -c", | 28 | "vscode:prepublish": "tsc && rollup -c", |
29 | "package": "vsce package -o rust-analyzer.vsix", | 29 | "package": "vsce package -o rust-analyzer.vsix", |
30 | "build": "tsc", | ||
30 | "watch": "tsc --watch", | 31 | "watch": "tsc --watch", |
31 | "lint": "tsfmt --verify && eslint -c .eslintrc.js --ext ts ./src", | 32 | "lint": "tsfmt --verify && eslint -c .eslintrc.js --ext ts ./src", |
32 | "fix": " tsfmt -r && eslint -c .eslintrc.js --ext ts ./src --fix" | 33 | "fix": " tsfmt -r && eslint -c .eslintrc.js --ext ts ./src --fix" |
@@ -204,11 +205,6 @@ | |||
204 | "default": [], | 205 | "default": [], |
205 | "description": "Paths to exclude from analysis." | 206 | "description": "Paths to exclude from analysis." |
206 | }, | 207 | }, |
207 | "rust-analyzer.notifications.workspaceLoaded": { | ||
208 | "type": "boolean", | ||
209 | "default": true, | ||
210 | "markdownDescription": "Whether to show `workspace loaded` message." | ||
211 | }, | ||
212 | "rust-analyzer.notifications.cargoTomlNotFound": { | 208 | "rust-analyzer.notifications.cargoTomlNotFound": { |
213 | "type": "boolean", | 209 | "type": "boolean", |
214 | "default": true, | 210 | "default": true, |
@@ -388,6 +384,28 @@ | |||
388 | "description": "Enable Proc macro support, cargo.loadOutDirsFromCheck must be enabled.", | 384 | "description": "Enable Proc macro support, cargo.loadOutDirsFromCheck must be enabled.", |
389 | "type": "boolean", | 385 | "type": "boolean", |
390 | "default": false | 386 | "default": false |
387 | }, | ||
388 | "rust-analyzer.debug.engine": { | ||
389 | "type": "string", | ||
390 | "enum": [ | ||
391 | "auto", | ||
392 | "vadimcn.vscode-lldb", | ||
393 | "ms-vscode.cpptools" | ||
394 | ], | ||
395 | "default": "auto", | ||
396 | "description": "Preffered debug engine.", | ||
397 | "markdownEnumDescriptions": [ | ||
398 | "First try to use [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb), if it's not installed try to use [MS C++ tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools).", | ||
399 | "Use [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb)", | ||
400 | "Use [MS C++ tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)" | ||
401 | ] | ||
402 | }, | ||
403 | "rust-analyzer.debug.sourceFileMap": { | ||
404 | "type": "object", | ||
405 | "description": "Optional source file mappings passed to the debug engine.", | ||
406 | "default": { | ||
407 | "/rustc/<id>": "${env:USERPROFILE}/.rustup/toolchains/<toolchain-id>/lib/rustlib/src/rust" | ||
408 | } | ||
391 | } | 409 | } |
392 | } | 410 | } |
393 | }, | 411 | }, |
diff --git a/editors/code/src/cargo.ts b/editors/code/src/cargo.ts new file mode 100644 index 000000000..a328ba9bd --- /dev/null +++ b/editors/code/src/cargo.ts | |||
@@ -0,0 +1,106 @@ | |||
1 | import * as cp from 'child_process'; | ||
2 | import * as readline from 'readline'; | ||
3 | import { OutputChannel } from 'vscode'; | ||
4 | |||
5 | interface CompilationArtifact { | ||
6 | fileName: string; | ||
7 | name: string; | ||
8 | kind: string; | ||
9 | isTest: boolean; | ||
10 | } | ||
11 | |||
12 | export class Cargo { | ||
13 | rootFolder: string; | ||
14 | env?: Record<string, string>; | ||
15 | output: OutputChannel; | ||
16 | |||
17 | public constructor(cargoTomlFolder: string, output: OutputChannel, env: Record<string, string> | undefined = undefined) { | ||
18 | this.rootFolder = cargoTomlFolder; | ||
19 | this.output = output; | ||
20 | this.env = env; | ||
21 | } | ||
22 | |||
23 | public async artifactsFromArgs(cargoArgs: string[]): Promise<CompilationArtifact[]> { | ||
24 | const artifacts: CompilationArtifact[] = []; | ||
25 | |||
26 | try { | ||
27 | await this.runCargo(cargoArgs, | ||
28 | message => { | ||
29 | if (message.reason === 'compiler-artifact' && message.executable) { | ||
30 | const isBinary = message.target.crate_types.includes('bin'); | ||
31 | const isBuildScript = message.target.kind.includes('custom-build'); | ||
32 | if ((isBinary && !isBuildScript) || message.profile.test) { | ||
33 | artifacts.push({ | ||
34 | fileName: message.executable, | ||
35 | name: message.target.name, | ||
36 | kind: message.target.kind[0], | ||
37 | isTest: message.profile.test | ||
38 | }); | ||
39 | } | ||
40 | } | ||
41 | else if (message.reason === 'compiler-message') { | ||
42 | this.output.append(message.message.rendered); | ||
43 | } | ||
44 | }, | ||
45 | stderr => { | ||
46 | this.output.append(stderr); | ||
47 | } | ||
48 | ); | ||
49 | } | ||
50 | catch (err) { | ||
51 | this.output.show(true); | ||
52 | throw new Error(`Cargo invocation has failed: ${err}`); | ||
53 | } | ||
54 | |||
55 | return artifacts; | ||
56 | } | ||
57 | |||
58 | public async executableFromArgs(args: string[]): Promise<string> { | ||
59 | const cargoArgs = [...args]; // to remain args unchanged | ||
60 | cargoArgs.push("--message-format=json"); | ||
61 | |||
62 | const artifacts = await this.artifactsFromArgs(cargoArgs); | ||
63 | |||
64 | if (artifacts.length === 0) { | ||
65 | throw new Error('No compilation artifacts'); | ||
66 | } else if (artifacts.length > 1) { | ||
67 | throw new Error('Multiple compilation artifacts are not supported.'); | ||
68 | } | ||
69 | |||
70 | return artifacts[0].fileName; | ||
71 | } | ||
72 | |||
73 | runCargo( | ||
74 | cargoArgs: string[], | ||
75 | onStdoutJson: (obj: any) => void, | ||
76 | onStderrString: (data: string) => void | ||
77 | ): Promise<number> { | ||
78 | return new Promise<number>((resolve, reject) => { | ||
79 | const cargo = cp.spawn('cargo', cargoArgs, { | ||
80 | stdio: ['ignore', 'pipe', 'pipe'], | ||
81 | cwd: this.rootFolder, | ||
82 | env: this.env, | ||
83 | }); | ||
84 | |||
85 | cargo.on('error', err => { | ||
86 | reject(new Error(`could not launch cargo: ${err}`)); | ||
87 | }); | ||
88 | cargo.stderr.on('data', chunk => { | ||
89 | onStderrString(chunk.toString()); | ||
90 | }); | ||
91 | |||
92 | const rl = readline.createInterface({ input: cargo.stdout }); | ||
93 | rl.on('line', line => { | ||
94 | const message = JSON.parse(line); | ||
95 | onStdoutJson(message); | ||
96 | }); | ||
97 | |||
98 | cargo.on('exit', (exitCode, _) => { | ||
99 | if (exitCode === 0) | ||
100 | resolve(exitCode); | ||
101 | else | ||
102 | reject(new Error(`exit code: ${exitCode}.`)); | ||
103 | }); | ||
104 | }); | ||
105 | } | ||
106 | } \ No newline at end of file | ||
diff --git a/editors/code/src/commands/runnables.ts b/editors/code/src/commands/runnables.ts index 2635a1440..d77e8188c 100644 --- a/editors/code/src/commands/runnables.ts +++ b/editors/code/src/commands/runnables.ts | |||
@@ -1,8 +1,10 @@ | |||
1 | import * as vscode from 'vscode'; | 1 | import * as vscode from 'vscode'; |
2 | import * as lc from 'vscode-languageclient'; | 2 | import * as lc from 'vscode-languageclient'; |
3 | import * as ra from '../rust-analyzer-api'; | 3 | import * as ra from '../rust-analyzer-api'; |
4 | import * as os from "os"; | ||
4 | 5 | ||
5 | import { Ctx, Cmd } from '../ctx'; | 6 | import { Ctx, Cmd } from '../ctx'; |
7 | import { Cargo } from '../cargo'; | ||
6 | 8 | ||
7 | export function run(ctx: Ctx): Cmd { | 9 | export function run(ctx: Ctx): Cmd { |
8 | let prevRunnable: RunnableQuickPick | undefined; | 10 | let prevRunnable: RunnableQuickPick | undefined; |
@@ -62,25 +64,69 @@ export function runSingle(ctx: Ctx): Cmd { | |||
62 | }; | 64 | }; |
63 | } | 65 | } |
64 | 66 | ||
67 | function getLldbDebugConfig(config: ra.Runnable, sourceFileMap: Record<string, string>): vscode.DebugConfiguration { | ||
68 | return { | ||
69 | type: "lldb", | ||
70 | request: "launch", | ||
71 | name: config.label, | ||
72 | cargo: { | ||
73 | args: config.args, | ||
74 | }, | ||
75 | args: config.extraArgs, | ||
76 | cwd: config.cwd, | ||
77 | sourceMap: sourceFileMap | ||
78 | }; | ||
79 | } | ||
80 | |||
81 | const debugOutput = vscode.window.createOutputChannel("Debug"); | ||
82 | |||
83 | async function getCppvsDebugConfig(config: ra.Runnable, sourceFileMap: Record<string, string>): Promise<vscode.DebugConfiguration> { | ||
84 | debugOutput.clear(); | ||
85 | |||
86 | const cargo = new Cargo(config.cwd || '.', debugOutput); | ||
87 | const executable = await cargo.executableFromArgs(config.args); | ||
88 | |||
89 | // if we are here, there were no compilation errors. | ||
90 | return { | ||
91 | type: (os.platform() === "win32") ? "cppvsdbg" : 'cppdbg', | ||
92 | request: "launch", | ||
93 | name: config.label, | ||
94 | program: executable, | ||
95 | args: config.extraArgs, | ||
96 | cwd: config.cwd, | ||
97 | sourceFileMap: sourceFileMap, | ||
98 | }; | ||
99 | } | ||
100 | |||
65 | export function debugSingle(ctx: Ctx): Cmd { | 101 | export function debugSingle(ctx: Ctx): Cmd { |
66 | return async (config: ra.Runnable) => { | 102 | return async (config: ra.Runnable) => { |
67 | const editor = ctx.activeRustEditor; | 103 | const editor = ctx.activeRustEditor; |
68 | if (!editor) return; | 104 | if (!editor) return; |
69 | if (!vscode.extensions.getExtension("vadimcn.vscode-lldb")) { | 105 | |
70 | vscode.window.showErrorMessage("Install `vadimcn.vscode-lldb` extension for debugging"); | 106 | const lldbId = "vadimcn.vscode-lldb"; |
107 | const cpptoolsId = "ms-vscode.cpptools"; | ||
108 | |||
109 | const debugEngineId = ctx.config.debug.engine; | ||
110 | let debugEngine = null; | ||
111 | if (debugEngineId === "auto") { | ||
112 | debugEngine = vscode.extensions.getExtension(lldbId); | ||
113 | if (!debugEngine) { | ||
114 | debugEngine = vscode.extensions.getExtension(cpptoolsId); | ||
115 | } | ||
116 | } | ||
117 | else { | ||
118 | debugEngine = vscode.extensions.getExtension(debugEngineId); | ||
119 | } | ||
120 | |||
121 | if (!debugEngine) { | ||
122 | vscode.window.showErrorMessage(`Install [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=${lldbId})` | ||
123 | + ` or [MS C++ tools](https://marketplace.visualstudio.com/items?itemName=${cpptoolsId}) extension for debugging.`); | ||
71 | return; | 124 | return; |
72 | } | 125 | } |
73 | 126 | ||
74 | const debugConfig = { | 127 | const debugConfig = lldbId === debugEngine.id |
75 | type: "lldb", | 128 | ? getLldbDebugConfig(config, ctx.config.debug.sourceFileMap) |
76 | request: "launch", | 129 | : await getCppvsDebugConfig(config, ctx.config.debug.sourceFileMap); |
77 | name: config.label, | ||
78 | cargo: { | ||
79 | args: config.args, | ||
80 | }, | ||
81 | args: config.extraArgs, | ||
82 | cwd: config.cwd | ||
83 | }; | ||
84 | 130 | ||
85 | return vscode.debug.startDebugging(undefined, debugConfig); | 131 | return vscode.debug.startDebugging(undefined, debugConfig); |
86 | }; | 132 | }; |
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts index 3b2eec8ba..110e54180 100644 --- a/editors/code/src/config.ts +++ b/editors/code/src/config.ts | |||
@@ -92,7 +92,6 @@ export class Config { | |||
92 | get askBeforeDownload() { return this.get<boolean>("updates.askBeforeDownload"); } | 92 | get askBeforeDownload() { return this.get<boolean>("updates.askBeforeDownload"); } |
93 | get traceExtension() { return this.get<boolean>("trace.extension"); } | 93 | get traceExtension() { return this.get<boolean>("trace.extension"); } |
94 | 94 | ||
95 | |||
96 | get inlayHints() { | 95 | get inlayHints() { |
97 | return { | 96 | return { |
98 | typeHints: this.get<boolean>("inlayHints.typeHints"), | 97 | typeHints: this.get<boolean>("inlayHints.typeHints"), |
@@ -107,4 +106,12 @@ export class Config { | |||
107 | command: this.get<string>("checkOnSave.command"), | 106 | command: this.get<string>("checkOnSave.command"), |
108 | }; | 107 | }; |
109 | } | 108 | } |
109 | |||
110 | get debug() { | ||
111 | return { | ||
112 | engine: this.get<string>("debug.engine"), | ||
113 | sourceFileMap: this.get<Record<string, string>>("debug.sourceFileMap"), | ||
114 | }; | ||
115 | } | ||
116 | |||
110 | } | 117 | } |
diff --git a/xtask/src/ast_src.rs b/xtask/src/ast_src.rs index 9c02f7c6f..028f7cbe1 100644 --- a/xtask/src/ast_src.rs +++ b/xtask/src/ast_src.rs | |||
@@ -162,7 +162,7 @@ pub(crate) const KINDS_SRC: KindsSrc = KindsSrc { | |||
162 | "RECORD_LIT", | 162 | "RECORD_LIT", |
163 | "RECORD_FIELD_LIST", | 163 | "RECORD_FIELD_LIST", |
164 | "RECORD_FIELD", | 164 | "RECORD_FIELD", |
165 | "TRY_BLOCK_EXPR", | 165 | "EFFECT_EXPR", |
166 | "BOX_EXPR", | 166 | "BOX_EXPR", |
167 | // postfix | 167 | // postfix |
168 | "CALL_EXPR", | 168 | "CALL_EXPR", |
@@ -177,7 +177,6 @@ pub(crate) const KINDS_SRC: KindsSrc = KindsSrc { | |||
177 | "PREFIX_EXPR", | 177 | "PREFIX_EXPR", |
178 | "RANGE_EXPR", // just weird | 178 | "RANGE_EXPR", // just weird |
179 | "BIN_EXPR", | 179 | "BIN_EXPR", |
180 | "BLOCK", | ||
181 | "EXTERN_BLOCK", | 180 | "EXTERN_BLOCK", |
182 | "EXTERN_ITEM_LIST", | 181 | "EXTERN_ITEM_LIST", |
183 | "ENUM_VARIANT", | 182 | "ENUM_VARIANT", |
@@ -440,7 +439,7 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { | |||
440 | } | 439 | } |
441 | struct IfExpr: AttrsOwner { T![if], Condition } | 440 | struct IfExpr: AttrsOwner { T![if], Condition } |
442 | struct LoopExpr: AttrsOwner, LoopBodyOwner { T![loop] } | 441 | struct LoopExpr: AttrsOwner, LoopBodyOwner { T![loop] } |
443 | struct TryBlockExpr: AttrsOwner { T![try], body: BlockExpr } | 442 | struct EffectExpr: AttrsOwner { Label, T![try], T![unsafe], T![async], BlockExpr } |
444 | struct ForExpr: AttrsOwner, LoopBodyOwner { | 443 | struct ForExpr: AttrsOwner, LoopBodyOwner { |
445 | T![for], | 444 | T![for], |
446 | Pat, | 445 | Pat, |
@@ -451,7 +450,9 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { | |||
451 | struct ContinueExpr: AttrsOwner { T![continue], T![lifetime] } | 450 | struct ContinueExpr: AttrsOwner { T![continue], T![lifetime] } |
452 | struct BreakExpr: AttrsOwner { T![break], T![lifetime], Expr } | 451 | struct BreakExpr: AttrsOwner { T![break], T![lifetime], Expr } |
453 | struct Label { T![lifetime] } | 452 | struct Label { T![lifetime] } |
454 | struct BlockExpr: AttrsOwner { Label, T![unsafe], Block } | 453 | struct BlockExpr: AttrsOwner, ModuleItemOwner { |
454 | T!['{'], statements: [Stmt], Expr, T!['}'], | ||
455 | } | ||
455 | struct ReturnExpr: AttrsOwner { Expr } | 456 | struct ReturnExpr: AttrsOwner { Expr } |
456 | struct CallExpr: ArgListOwner { Expr } | 457 | struct CallExpr: ArgListOwner { Expr } |
457 | struct MethodCallExpr: AttrsOwner, ArgListOwner { | 458 | struct MethodCallExpr: AttrsOwner, ArgListOwner { |
@@ -460,7 +461,7 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { | |||
460 | struct IndexExpr: AttrsOwner { T!['['], T![']'] } | 461 | struct IndexExpr: AttrsOwner { T!['['], T![']'] } |
461 | struct FieldExpr: AttrsOwner { Expr, T![.], NameRef } | 462 | struct FieldExpr: AttrsOwner { Expr, T![.], NameRef } |
462 | struct AwaitExpr: AttrsOwner { Expr, T![.], T![await] } | 463 | struct AwaitExpr: AttrsOwner { Expr, T![.], T![await] } |
463 | struct TryExpr: AttrsOwner { T![try], Expr } | 464 | struct TryExpr: AttrsOwner { Expr, T![?] } |
464 | struct CastExpr: AttrsOwner { Expr, T![as], TypeRef } | 465 | struct CastExpr: AttrsOwner { Expr, T![as], TypeRef } |
465 | struct RefExpr: AttrsOwner { T![&], T![raw], T![mut], Expr } | 466 | struct RefExpr: AttrsOwner { T![&], T![raw], T![mut], Expr } |
466 | struct PrefixExpr: AttrsOwner { /*PrefixOp,*/ Expr } | 467 | struct PrefixExpr: AttrsOwner { /*PrefixOp,*/ Expr } |
@@ -556,12 +557,6 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { | |||
556 | T![;], | 557 | T![;], |
557 | } | 558 | } |
558 | struct Condition { T![let], Pat, T![=], Expr } | 559 | struct Condition { T![let], Pat, T![=], Expr } |
559 | struct Block: AttrsOwner, ModuleItemOwner { | ||
560 | T!['{'], | ||
561 | statements: [Stmt], | ||
562 | Expr, | ||
563 | T!['}'], | ||
564 | } | ||
565 | struct ParamList { | 560 | struct ParamList { |
566 | T!['('], | 561 | T!['('], |
567 | SelfParam, | 562 | SelfParam, |
@@ -595,7 +590,7 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { | |||
595 | qualifier: Path, | 590 | qualifier: Path, |
596 | } | 591 | } |
597 | struct PathSegment { | 592 | struct PathSegment { |
598 | T![::], T![<], NameRef, TypeArgList, ParamList, RetType, PathType, T![>] | 593 | T![::], T![crate], T![self], T![super], T![<], NameRef, TypeArgList, ParamList, RetType, PathType, T![>] |
599 | } | 594 | } |
600 | struct TypeArgList { | 595 | struct TypeArgList { |
601 | T![::], | 596 | T![::], |
@@ -722,7 +717,7 @@ pub(crate) const AST_SRC: AstSrc = AstSrc { | |||
722 | FieldExpr, | 717 | FieldExpr, |
723 | AwaitExpr, | 718 | AwaitExpr, |
724 | TryExpr, | 719 | TryExpr, |
725 | TryBlockExpr, | 720 | EffectExpr, |
726 | CastExpr, | 721 | CastExpr, |
727 | RefExpr, | 722 | RefExpr, |
728 | PrefixExpr, | 723 | PrefixExpr, |
diff --git a/xtask/src/codegen/gen_syntax.rs b/xtask/src/codegen/gen_syntax.rs index e9dc09552..8028575c5 100644 --- a/xtask/src/codegen/gen_syntax.rs +++ b/xtask/src/codegen/gen_syntax.rs | |||
@@ -432,6 +432,7 @@ impl Field<'_> { | |||
432 | ":" => "colon", | 432 | ":" => "colon", |
433 | "::" => "coloncolon", | 433 | "::" => "coloncolon", |
434 | "#" => "pound", | 434 | "#" => "pound", |
435 | "?" => "question_mark", | ||
435 | _ => name, | 436 | _ => name, |
436 | }; | 437 | }; |
437 | format_ident!("{}_token", name) | 438 | format_ident!("{}_token", name) |
diff --git a/xtask/src/dist.rs b/xtask/src/dist.rs index a56eeef8d..aef68089e 100644 --- a/xtask/src/dist.rs +++ b/xtask/src/dist.rs | |||
@@ -50,21 +50,19 @@ fn dist_server(nightly: bool) -> Result<()> { | |||
50 | if cfg!(target_os = "linux") { | 50 | if cfg!(target_os = "linux") { |
51 | std::env::set_var("CC", "clang"); | 51 | std::env::set_var("CC", "clang"); |
52 | run!( | 52 | run!( |
53 | "cargo build --manifest-path ./crates/rust-analyzer/Cargo.toml --bin rust-analyzer --release | 53 | "cargo build --manifest-path ./crates/rust-analyzer/Cargo.toml --bin rust-analyzer --release" |
54 | --target x86_64-unknown-linux-musl | ||
55 | " | ||
56 | // We'd want to add, but that requires setting the right linker somehow | 54 | // We'd want to add, but that requires setting the right linker somehow |
57 | // --features=jemalloc | 55 | // --features=jemalloc |
58 | )?; | 56 | )?; |
59 | if !nightly { | 57 | if !nightly { |
60 | run!("strip ./target/x86_64-unknown-linux-musl/release/rust-analyzer")?; | 58 | run!("strip ./target/release/rust-analyzer")?; |
61 | } | 59 | } |
62 | } else { | 60 | } else { |
63 | run!("cargo build --manifest-path ./crates/rust-analyzer/Cargo.toml --bin rust-analyzer --release")?; | 61 | run!("cargo build --manifest-path ./crates/rust-analyzer/Cargo.toml --bin rust-analyzer --release")?; |
64 | } | 62 | } |
65 | 63 | ||
66 | let (src, dst) = if cfg!(target_os = "linux") { | 64 | let (src, dst) = if cfg!(target_os = "linux") { |
67 | ("./target/x86_64-unknown-linux-musl/release/rust-analyzer", "./dist/rust-analyzer-linux") | 65 | ("./target/release/rust-analyzer", "./dist/rust-analyzer-linux") |
68 | } else if cfg!(target_os = "windows") { | 66 | } else if cfg!(target_os = "windows") { |
69 | ("./target/release/rust-analyzer.exe", "./dist/rust-analyzer-windows.exe") | 67 | ("./target/release/rust-analyzer.exe", "./dist/rust-analyzer-windows.exe") |
70 | } else if cfg!(target_os = "macos") { | 68 | } else if cfg!(target_os = "macos") { |
diff --git a/xtask/src/lib.rs b/xtask/src/lib.rs index ec824a518..2b7a461e5 100644 --- a/xtask/src/lib.rs +++ b/xtask/src/lib.rs | |||
@@ -10,23 +10,19 @@ pub mod pre_commit; | |||
10 | pub mod codegen; | 10 | pub mod codegen; |
11 | mod ast_src; | 11 | mod ast_src; |
12 | 12 | ||
13 | use anyhow::Context; | ||
14 | use std::{ | 13 | use std::{ |
15 | env, | 14 | env, |
16 | io::Write, | ||
17 | path::{Path, PathBuf}, | 15 | path::{Path, PathBuf}, |
18 | process::{Command, Stdio}, | ||
19 | }; | 16 | }; |
17 | |||
20 | use walkdir::{DirEntry, WalkDir}; | 18 | use walkdir::{DirEntry, WalkDir}; |
21 | 19 | ||
22 | use crate::{ | 20 | use crate::{ |
23 | codegen::Mode, | 21 | codegen::Mode, |
24 | not_bash::{date_iso, fs2, pushd, rm_rf, run}, | 22 | not_bash::{date_iso, fs2, pushd, pushenv, rm_rf, run}, |
25 | }; | 23 | }; |
26 | 24 | ||
27 | pub use anyhow::Result; | 25 | pub use anyhow::{bail, Context as _, Result}; |
28 | |||
29 | const TOOLCHAIN: &str = "stable"; | ||
30 | 26 | ||
31 | pub fn project_root() -> PathBuf { | 27 | pub fn project_root() -> PathBuf { |
32 | Path::new( | 28 | Path::new( |
@@ -55,54 +51,44 @@ pub fn rust_files(path: &Path) -> impl Iterator<Item = PathBuf> { | |||
55 | 51 | ||
56 | pub fn run_rustfmt(mode: Mode) -> Result<()> { | 52 | pub fn run_rustfmt(mode: Mode) -> Result<()> { |
57 | let _dir = pushd(project_root()); | 53 | let _dir = pushd(project_root()); |
54 | let _e = pushenv("RUSTUP_TOOLCHAIN", "stable"); | ||
58 | ensure_rustfmt()?; | 55 | ensure_rustfmt()?; |
59 | 56 | match mode { | |
60 | let check = if mode == Mode::Verify { "--check" } else { "" }; | 57 | Mode::Overwrite => run!("cargo fmt"), |
61 | run!("rustup run {} -- cargo fmt -- {}", TOOLCHAIN, check)?; | 58 | Mode::Verify => run!("cargo fmt -- --check"), |
59 | }?; | ||
62 | Ok(()) | 60 | Ok(()) |
63 | } | 61 | } |
64 | 62 | ||
65 | fn reformat(text: impl std::fmt::Display) -> Result<String> { | 63 | fn reformat(text: impl std::fmt::Display) -> Result<String> { |
64 | let _e = pushenv("RUSTUP_TOOLCHAIN", "stable"); | ||
66 | ensure_rustfmt()?; | 65 | ensure_rustfmt()?; |
67 | let mut rustfmt = Command::new("rustup") | 66 | let stdout = run!( |
68 | .args(&["run", TOOLCHAIN, "--", "rustfmt", "--config-path"]) | 67 | "rustfmt --config-path {} --config fn_single_line=true", project_root().join("rustfmt.toml").display(); |
69 | .arg(project_root().join("rustfmt.toml")) | 68 | <text.to_string().as_bytes() |
70 | .args(&["--config", "fn_single_line=true"]) | 69 | )?; |
71 | .stdin(Stdio::piped()) | ||
72 | .stdout(Stdio::piped()) | ||
73 | .spawn()?; | ||
74 | write!(rustfmt.stdin.take().unwrap(), "{}", text)?; | ||
75 | let output = rustfmt.wait_with_output()?; | ||
76 | let stdout = String::from_utf8(output.stdout)?; | ||
77 | let preamble = "Generated file, do not edit by hand, see `xtask/src/codegen`"; | 70 | let preamble = "Generated file, do not edit by hand, see `xtask/src/codegen`"; |
78 | Ok(format!("//! {}\n\n{}", preamble, stdout)) | 71 | Ok(format!("//! {}\n\n{}\n", preamble, stdout)) |
79 | } | 72 | } |
80 | 73 | ||
81 | fn ensure_rustfmt() -> Result<()> { | 74 | fn ensure_rustfmt() -> Result<()> { |
82 | match Command::new("rustup") | 75 | let out = run!("rustfmt --version")?; |
83 | .args(&["run", TOOLCHAIN, "--", "cargo", "fmt", "--version"]) | 76 | if !out.contains("stable") { |
84 | .stderr(Stdio::null()) | 77 | bail!( |
85 | .stdout(Stdio::null()) | 78 | "Failed to run rustfmt from toolchain 'stable'. \ |
86 | .status() | 79 | Please run `rustup component add rustfmt --toolchain stable` to install it.", |
87 | { | 80 | ) |
88 | Ok(status) if status.success() => return Ok(()), | 81 | } |
89 | _ => (), | ||
90 | }; | ||
91 | run!("rustup toolchain install {}", TOOLCHAIN)?; | ||
92 | run!("rustup component add rustfmt --toolchain {}", TOOLCHAIN)?; | ||
93 | Ok(()) | 82 | Ok(()) |
94 | } | 83 | } |
95 | 84 | ||
96 | pub fn run_clippy() -> Result<()> { | 85 | pub fn run_clippy() -> Result<()> { |
97 | match Command::new("rustup") | 86 | if run!("cargo clippy --version").is_err() { |
98 | .args(&["run", TOOLCHAIN, "--", "cargo", "clippy", "--version"]) | 87 | bail!( |
99 | .stderr(Stdio::null()) | 88 | "Failed run cargo clippy. \ |
100 | .stdout(Stdio::null()) | 89 | Please run `rustup component add clippy` to install it.", |
101 | .status() | 90 | ) |
102 | { | 91 | } |
103 | Ok(status) if status.success() => (), | ||
104 | _ => install_clippy().context("install clippy")?, | ||
105 | }; | ||
106 | 92 | ||
107 | let allowed_lints = [ | 93 | let allowed_lints = [ |
108 | "clippy::collapsible_if", | 94 | "clippy::collapsible_if", |
@@ -110,27 +96,24 @@ pub fn run_clippy() -> Result<()> { | |||
110 | "clippy::nonminimal_bool", | 96 | "clippy::nonminimal_bool", |
111 | "clippy::redundant_pattern_matching", | 97 | "clippy::redundant_pattern_matching", |
112 | ]; | 98 | ]; |
113 | run!( | 99 | run!("cargo clippy --all-features --all-targets -- -A {}", allowed_lints.join(" -A "))?; |
114 | "rustup run {} -- cargo clippy --all-features --all-targets -- -A {}", | ||
115 | TOOLCHAIN, | ||
116 | allowed_lints.join(" -A ") | ||
117 | )?; | ||
118 | Ok(()) | ||
119 | } | ||
120 | |||
121 | fn install_clippy() -> Result<()> { | ||
122 | run!("rustup toolchain install {}", TOOLCHAIN)?; | ||
123 | run!("rustup component add clippy --toolchain {}", TOOLCHAIN)?; | ||
124 | Ok(()) | 100 | Ok(()) |
125 | } | 101 | } |
126 | 102 | ||
127 | pub fn run_fuzzer() -> Result<()> { | 103 | pub fn run_fuzzer() -> Result<()> { |
128 | let _d = pushd("./crates/ra_syntax"); | 104 | let _d = pushd("./crates/ra_syntax"); |
105 | let _e = pushenv("RUSTUP_TOOLCHAIN", "nightly"); | ||
129 | if run!("cargo fuzz --help").is_err() { | 106 | if run!("cargo fuzz --help").is_err() { |
130 | run!("cargo install cargo-fuzz")?; | 107 | run!("cargo install cargo-fuzz")?; |
131 | }; | 108 | }; |
132 | 109 | ||
133 | run!("rustup run nightly -- cargo fuzz run parser")?; | 110 | // Expecting nightly rustc |
111 | let out = run!("rustc --version")?; | ||
112 | if !out.contains("nightly") { | ||
113 | bail!("fuzz tests require nightly rustc") | ||
114 | } | ||
115 | |||
116 | run!("cargo fuzz run parser")?; | ||
134 | Ok(()) | 117 | Ok(()) |
135 | } | 118 | } |
136 | 119 | ||
diff --git a/xtask/src/not_bash.rs b/xtask/src/not_bash.rs index ef1699934..a6431e586 100644 --- a/xtask/src/not_bash.rs +++ b/xtask/src/not_bash.rs | |||
@@ -3,6 +3,8 @@ | |||
3 | use std::{ | 3 | use std::{ |
4 | cell::RefCell, | 4 | cell::RefCell, |
5 | env, | 5 | env, |
6 | ffi::OsString, | ||
7 | io::Write, | ||
6 | path::{Path, PathBuf}, | 8 | path::{Path, PathBuf}, |
7 | process::{Command, Stdio}, | 9 | process::{Command, Stdio}, |
8 | }; | 10 | }; |
@@ -57,7 +59,10 @@ macro_rules! _run { | |||
57 | run!($($expr),*; echo = true) | 59 | run!($($expr),*; echo = true) |
58 | }; | 60 | }; |
59 | ($($expr:expr),* ; echo = $echo:expr) => { | 61 | ($($expr:expr),* ; echo = $echo:expr) => { |
60 | $crate::not_bash::run_process(format!($($expr),*), $echo) | 62 | $crate::not_bash::run_process(format!($($expr),*), $echo, None) |
63 | }; | ||
64 | ($($expr:expr),* ; <$stdin:expr) => { | ||
65 | $crate::not_bash::run_process(format!($($expr),*), false, Some($stdin)) | ||
61 | }; | 66 | }; |
62 | } | 67 | } |
63 | pub(crate) use _run as run; | 68 | pub(crate) use _run as run; |
@@ -77,6 +82,21 @@ impl Drop for Pushd { | |||
77 | } | 82 | } |
78 | } | 83 | } |
79 | 84 | ||
85 | pub struct Pushenv { | ||
86 | _p: (), | ||
87 | } | ||
88 | |||
89 | pub fn pushenv(var: &str, value: &str) -> Pushenv { | ||
90 | Env::with(|env| env.pushenv(var.into(), value.into())); | ||
91 | Pushenv { _p: () } | ||
92 | } | ||
93 | |||
94 | impl Drop for Pushenv { | ||
95 | fn drop(&mut self) { | ||
96 | Env::with(|env| env.popenv()) | ||
97 | } | ||
98 | } | ||
99 | |||
80 | pub fn rm_rf(path: impl AsRef<Path>) -> Result<()> { | 100 | pub fn rm_rf(path: impl AsRef<Path>) -> Result<()> { |
81 | let path = path.as_ref(); | 101 | let path = path.as_ref(); |
82 | if !path.exists() { | 102 | if !path.exists() { |
@@ -90,15 +110,15 @@ pub fn rm_rf(path: impl AsRef<Path>) -> Result<()> { | |||
90 | } | 110 | } |
91 | 111 | ||
92 | #[doc(hidden)] | 112 | #[doc(hidden)] |
93 | pub fn run_process(cmd: String, echo: bool) -> Result<String> { | 113 | pub fn run_process(cmd: String, echo: bool, stdin: Option<&[u8]>) -> Result<String> { |
94 | run_process_inner(&cmd, echo).with_context(|| format!("process `{}` failed", cmd)) | 114 | run_process_inner(&cmd, echo, stdin).with_context(|| format!("process `{}` failed", cmd)) |
95 | } | 115 | } |
96 | 116 | ||
97 | pub fn date_iso() -> Result<String> { | 117 | pub fn date_iso() -> Result<String> { |
98 | run!("date --iso --utc") | 118 | run!("date --iso --utc") |
99 | } | 119 | } |
100 | 120 | ||
101 | fn run_process_inner(cmd: &str, echo: bool) -> Result<String> { | 121 | fn run_process_inner(cmd: &str, echo: bool, stdin: Option<&[u8]>) -> Result<String> { |
102 | let mut args = shelx(cmd); | 122 | let mut args = shelx(cmd); |
103 | let binary = args.remove(0); | 123 | let binary = args.remove(0); |
104 | let current_dir = Env::with(|it| it.cwd().to_path_buf()); | 124 | let current_dir = Env::with(|it| it.cwd().to_path_buf()); |
@@ -107,12 +127,17 @@ fn run_process_inner(cmd: &str, echo: bool) -> Result<String> { | |||
107 | println!("> {}", cmd) | 127 | println!("> {}", cmd) |
108 | } | 128 | } |
109 | 129 | ||
110 | let output = Command::new(binary) | 130 | let mut command = Command::new(binary); |
111 | .args(args) | 131 | command.args(args).current_dir(current_dir).stderr(Stdio::inherit()); |
112 | .current_dir(current_dir) | 132 | let output = match stdin { |
113 | .stdin(Stdio::null()) | 133 | None => command.stdin(Stdio::null()).output(), |
114 | .stderr(Stdio::inherit()) | 134 | Some(stdin) => { |
115 | .output()?; | 135 | command.stdin(Stdio::piped()).stdout(Stdio::piped()); |
136 | let mut process = command.spawn()?; | ||
137 | process.stdin.take().unwrap().write_all(stdin)?; | ||
138 | process.wait_with_output() | ||
139 | } | ||
140 | }?; | ||
116 | let stdout = String::from_utf8(output.stdout)?; | 141 | let stdout = String::from_utf8(output.stdout)?; |
117 | 142 | ||
118 | if echo { | 143 | if echo { |
@@ -133,13 +158,15 @@ fn shelx(cmd: &str) -> Vec<String> { | |||
133 | 158 | ||
134 | struct Env { | 159 | struct Env { |
135 | pushd_stack: Vec<PathBuf>, | 160 | pushd_stack: Vec<PathBuf>, |
161 | pushenv_stack: Vec<(OsString, Option<OsString>)>, | ||
136 | } | 162 | } |
137 | 163 | ||
138 | impl Env { | 164 | impl Env { |
139 | fn with<F: FnOnce(&mut Env) -> T, T>(f: F) -> T { | 165 | fn with<F: FnOnce(&mut Env) -> T, T>(f: F) -> T { |
140 | thread_local! { | 166 | thread_local! { |
141 | static ENV: RefCell<Env> = RefCell::new(Env { | 167 | static ENV: RefCell<Env> = RefCell::new(Env { |
142 | pushd_stack: vec![env::current_dir().unwrap()] | 168 | pushd_stack: vec![env::current_dir().unwrap()], |
169 | pushenv_stack: vec![], | ||
143 | }); | 170 | }); |
144 | } | 171 | } |
145 | ENV.with(|it| f(&mut *it.borrow_mut())) | 172 | ENV.with(|it| f(&mut *it.borrow_mut())) |
@@ -154,6 +181,17 @@ impl Env { | |||
154 | self.pushd_stack.pop().unwrap(); | 181 | self.pushd_stack.pop().unwrap(); |
155 | env::set_current_dir(self.cwd()).unwrap(); | 182 | env::set_current_dir(self.cwd()).unwrap(); |
156 | } | 183 | } |
184 | fn pushenv(&mut self, var: OsString, value: OsString) { | ||
185 | self.pushenv_stack.push((var.clone(), env::var_os(&var))); | ||
186 | env::set_var(var, value) | ||
187 | } | ||
188 | fn popenv(&mut self) { | ||
189 | let (var, value) = self.pushenv_stack.pop().unwrap(); | ||
190 | match value { | ||
191 | None => env::remove_var(var), | ||
192 | Some(value) => env::set_var(var, value), | ||
193 | } | ||
194 | } | ||
157 | fn cwd(&self) -> &Path { | 195 | fn cwd(&self) -> &Path { |
158 | self.pushd_stack.last().unwrap() | 196 | self.pushd_stack.last().unwrap() |
159 | } | 197 | } |