mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-27 10:17:15 +00:00
Make edition per-token, not per-file
More correctly, *also* per-token. Because as it turns out, while the top-level edition affects parsing (I think), the per-token edition affects escaping of identifiers/keywords.
This commit is contained in:
parent
3f2bbe9fed
commit
97afb7bfba
34 changed files with 480 additions and 316 deletions
|
|
@ -440,7 +440,7 @@ mod tests {
|
|||
file_id: EditionedFileId::current_edition(FileId::from_raw(0)),
|
||||
ast_id: span::ErasedFileAstId::from_raw(0),
|
||||
},
|
||||
ctx: SyntaxContextId::ROOT,
|
||||
ctx: SyntaxContextId::root(span::Edition::CURRENT),
|
||||
};
|
||||
let s = TokenStream {
|
||||
token_trees: vec![
|
||||
|
|
@ -482,7 +482,7 @@ mod tests {
|
|||
file_id: EditionedFileId::current_edition(FileId::from_raw(0)),
|
||||
ast_id: span::ErasedFileAstId::from_raw(0),
|
||||
},
|
||||
ctx: SyntaxContextId::ROOT,
|
||||
ctx: SyntaxContextId::root(span::Edition::CURRENT),
|
||||
};
|
||||
let subtree_paren_a = vec![
|
||||
tt::TokenTree::Subtree(tt::Subtree {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ fn test_derive_empty() {
|
|||
"DeriveEmpty",
|
||||
r#"struct S;"#,
|
||||
expect!["SUBTREE $$ 1 1"],
|
||||
expect!["SUBTREE $$ 42:2@0..100#0 42:2@0..100#0"],
|
||||
expect!["SUBTREE $$ 42:2@0..100#2 42:2@0..100#2"],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -29,12 +29,12 @@ fn test_derive_error() {
|
|||
LITERAL Str #[derive(DeriveError)] struct S ; 1
|
||||
PUNCH ; [alone] 1"#]],
|
||||
expect![[r#"
|
||||
SUBTREE $$ 42:2@0..100#0 42:2@0..100#0
|
||||
IDENT compile_error 42:2@0..100#0
|
||||
PUNCH ! [alone] 42:2@0..100#0
|
||||
SUBTREE () 42:2@0..100#0 42:2@0..100#0
|
||||
LITERAL Str #[derive(DeriveError)] struct S ; 42:2@0..100#0
|
||||
PUNCH ; [alone] 42:2@0..100#0"#]],
|
||||
SUBTREE $$ 42:2@0..100#2 42:2@0..100#2
|
||||
IDENT compile_error 42:2@0..100#2
|
||||
PUNCH ! [alone] 42:2@0..100#2
|
||||
SUBTREE () 42:2@0..100#2 42:2@0..100#2
|
||||
LITERAL Str #[derive(DeriveError)] struct S ; 42:2@0..100#2
|
||||
PUNCH ; [alone] 42:2@0..100#2"#]],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -53,14 +53,14 @@ fn test_fn_like_macro_noop() {
|
|||
PUNCH , [alone] 1
|
||||
SUBTREE [] 1 1"#]],
|
||||
expect![[r#"
|
||||
SUBTREE $$ 42:2@0..100#0 42:2@0..100#0
|
||||
IDENT ident 42:2@0..5#0
|
||||
PUNCH , [alone] 42:2@5..6#0
|
||||
LITERAL Integer 0 42:2@7..8#0
|
||||
PUNCH , [alone] 42:2@8..9#0
|
||||
LITERAL Integer 1 42:2@10..11#0
|
||||
PUNCH , [alone] 42:2@11..12#0
|
||||
SUBTREE [] 42:2@13..14#0 42:2@14..15#0"#]],
|
||||
SUBTREE $$ 42:2@0..100#2 42:2@0..100#2
|
||||
IDENT ident 42:2@0..5#2
|
||||
PUNCH , [alone] 42:2@5..6#2
|
||||
LITERAL Integer 0 42:2@7..8#2
|
||||
PUNCH , [alone] 42:2@8..9#2
|
||||
LITERAL Integer 1 42:2@10..11#2
|
||||
PUNCH , [alone] 42:2@11..12#2
|
||||
SUBTREE [] 42:2@13..14#2 42:2@14..15#2"#]],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -75,10 +75,10 @@ fn test_fn_like_macro_clone_ident_subtree() {
|
|||
PUNCH , [alone] 1
|
||||
SUBTREE [] 1 1"#]],
|
||||
expect![[r#"
|
||||
SUBTREE $$ 42:2@0..100#0 42:2@0..100#0
|
||||
IDENT ident 42:2@0..5#0
|
||||
PUNCH , [alone] 42:2@5..6#0
|
||||
SUBTREE [] 42:2@7..8#0 42:2@7..8#0"#]],
|
||||
SUBTREE $$ 42:2@0..100#2 42:2@0..100#2
|
||||
IDENT ident 42:2@0..5#2
|
||||
PUNCH , [alone] 42:2@5..6#2
|
||||
SUBTREE [] 42:2@7..8#2 42:2@7..8#2"#]],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -91,8 +91,8 @@ fn test_fn_like_macro_clone_raw_ident() {
|
|||
SUBTREE $$ 1 1
|
||||
IDENT r#async 1"#]],
|
||||
expect![[r#"
|
||||
SUBTREE $$ 42:2@0..100#0 42:2@0..100#0
|
||||
IDENT r#async 42:2@0..7#0"#]],
|
||||
SUBTREE $$ 42:2@0..100#2 42:2@0..100#2
|
||||
IDENT r#async 42:2@0..7#2"#]],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -105,8 +105,8 @@ fn test_fn_like_fn_like_span_join() {
|
|||
SUBTREE $$ 1 1
|
||||
IDENT r#joined 1"#]],
|
||||
expect![[r#"
|
||||
SUBTREE $$ 42:2@0..100#0 42:2@0..100#0
|
||||
IDENT r#joined 42:2@0..11#0"#]],
|
||||
SUBTREE $$ 42:2@0..100#2 42:2@0..100#2
|
||||
IDENT r#joined 42:2@0..11#2"#]],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -121,10 +121,10 @@ fn test_fn_like_fn_like_span_ops() {
|
|||
IDENT resolved_at_def_site 1
|
||||
IDENT start_span 1"#]],
|
||||
expect![[r#"
|
||||
SUBTREE $$ 42:2@0..100#0 42:2@0..100#0
|
||||
IDENT set_def_site 41:1@0..150#0
|
||||
IDENT resolved_at_def_site 42:2@13..33#0
|
||||
IDENT start_span 42:2@34..34#0"#]],
|
||||
SUBTREE $$ 42:2@0..100#2 42:2@0..100#2
|
||||
IDENT set_def_site 41:1@0..150#2
|
||||
IDENT resolved_at_def_site 42:2@13..33#2
|
||||
IDENT start_span 42:2@34..34#2"#]],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -143,14 +143,14 @@ fn test_fn_like_mk_literals() {
|
|||
LITERAL Integer 123i64 1
|
||||
LITERAL Integer 123 1"#]],
|
||||
expect![[r#"
|
||||
SUBTREE $$ 42:2@0..100#0 42:2@0..100#0
|
||||
LITERAL ByteStr byte_string 42:2@0..100#0
|
||||
LITERAL Char c 42:2@0..100#0
|
||||
LITERAL Str string 42:2@0..100#0
|
||||
LITERAL Float 3.14f64 42:2@0..100#0
|
||||
LITERAL Float 3.14 42:2@0..100#0
|
||||
LITERAL Integer 123i64 42:2@0..100#0
|
||||
LITERAL Integer 123 42:2@0..100#0"#]],
|
||||
SUBTREE $$ 42:2@0..100#2 42:2@0..100#2
|
||||
LITERAL ByteStr byte_string 42:2@0..100#2
|
||||
LITERAL Char c 42:2@0..100#2
|
||||
LITERAL Str string 42:2@0..100#2
|
||||
LITERAL Float 3.14f64 42:2@0..100#2
|
||||
LITERAL Float 3.14 42:2@0..100#2
|
||||
LITERAL Integer 123i64 42:2@0..100#2
|
||||
LITERAL Integer 123 42:2@0..100#2"#]],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -164,9 +164,9 @@ fn test_fn_like_mk_idents() {
|
|||
IDENT standard 1
|
||||
IDENT r#raw 1"#]],
|
||||
expect![[r#"
|
||||
SUBTREE $$ 42:2@0..100#0 42:2@0..100#0
|
||||
IDENT standard 42:2@0..100#0
|
||||
IDENT r#raw 42:2@0..100#0"#]],
|
||||
SUBTREE $$ 42:2@0..100#2 42:2@0..100#2
|
||||
IDENT standard 42:2@0..100#2
|
||||
IDENT r#raw 42:2@0..100#2"#]],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -198,27 +198,27 @@ fn test_fn_like_macro_clone_literals() {
|
|||
PUNCH , [alone] 1
|
||||
LITERAL CStr null 1"#]],
|
||||
expect![[r#"
|
||||
SUBTREE $$ 42:2@0..100#0 42:2@0..100#0
|
||||
LITERAL Integer 1u16 42:2@0..4#0
|
||||
PUNCH , [alone] 42:2@4..5#0
|
||||
LITERAL Integer 2_u32 42:2@6..11#0
|
||||
PUNCH , [alone] 42:2@11..12#0
|
||||
PUNCH - [alone] 42:2@13..14#0
|
||||
LITERAL Integer 4i64 42:2@14..18#0
|
||||
PUNCH , [alone] 42:2@18..19#0
|
||||
LITERAL Float 3.14f32 42:2@20..27#0
|
||||
PUNCH , [alone] 42:2@27..28#0
|
||||
LITERAL Str hello bridge 42:2@29..43#0
|
||||
PUNCH , [alone] 42:2@43..44#0
|
||||
LITERAL Str suffixedsuffix 42:2@45..61#0
|
||||
PUNCH , [alone] 42:2@61..62#0
|
||||
LITERAL StrRaw(2) raw 42:2@63..73#0
|
||||
PUNCH , [alone] 42:2@73..74#0
|
||||
LITERAL Char a 42:2@75..78#0
|
||||
PUNCH , [alone] 42:2@78..79#0
|
||||
LITERAL Byte b 42:2@80..84#0
|
||||
PUNCH , [alone] 42:2@84..85#0
|
||||
LITERAL CStr null 42:2@86..93#0"#]],
|
||||
SUBTREE $$ 42:2@0..100#2 42:2@0..100#2
|
||||
LITERAL Integer 1u16 42:2@0..4#2
|
||||
PUNCH , [alone] 42:2@4..5#2
|
||||
LITERAL Integer 2_u32 42:2@6..11#2
|
||||
PUNCH , [alone] 42:2@11..12#2
|
||||
PUNCH - [alone] 42:2@13..14#2
|
||||
LITERAL Integer 4i64 42:2@14..18#2
|
||||
PUNCH , [alone] 42:2@18..19#2
|
||||
LITERAL Float 3.14f32 42:2@20..27#2
|
||||
PUNCH , [alone] 42:2@27..28#2
|
||||
LITERAL Str hello bridge 42:2@29..43#2
|
||||
PUNCH , [alone] 42:2@43..44#2
|
||||
LITERAL Str suffixedsuffix 42:2@45..61#2
|
||||
PUNCH , [alone] 42:2@61..62#2
|
||||
LITERAL StrRaw(2) raw 42:2@63..73#2
|
||||
PUNCH , [alone] 42:2@73..74#2
|
||||
LITERAL Char a 42:2@75..78#2
|
||||
PUNCH , [alone] 42:2@78..79#2
|
||||
LITERAL Byte b 42:2@80..84#2
|
||||
PUNCH , [alone] 42:2@84..85#2
|
||||
LITERAL CStr null 42:2@86..93#2"#]],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -239,12 +239,12 @@ fn test_attr_macro() {
|
|||
LITERAL Str #[attr_error(some arguments)] mod m {} 1
|
||||
PUNCH ; [alone] 1"#]],
|
||||
expect![[r#"
|
||||
SUBTREE $$ 42:2@0..100#0 42:2@0..100#0
|
||||
IDENT compile_error 42:2@0..100#0
|
||||
PUNCH ! [alone] 42:2@0..100#0
|
||||
SUBTREE () 42:2@0..100#0 42:2@0..100#0
|
||||
LITERAL Str #[attr_error(some arguments)] mod m {} 42:2@0..100#0
|
||||
PUNCH ; [alone] 42:2@0..100#0"#]],
|
||||
SUBTREE $$ 42:2@0..100#2 42:2@0..100#2
|
||||
IDENT compile_error 42:2@0..100#2
|
||||
PUNCH ! [alone] 42:2@0..100#2
|
||||
SUBTREE () 42:2@0..100#2 42:2@0..100#2
|
||||
LITERAL Str #[attr_error(some arguments)] mod m {} 42:2@0..100#2
|
||||
PUNCH ; [alone] 42:2@0..100#2"#]],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ fn assert_expand_impl(
|
|||
file_id: EditionedFileId::current_edition(FileId::from_raw(41)),
|
||||
ast_id: ErasedFileAstId::from_raw(1),
|
||||
},
|
||||
ctx: SyntaxContextId::ROOT,
|
||||
ctx: SyntaxContextId::root(span::Edition::CURRENT),
|
||||
};
|
||||
let call_site = Span {
|
||||
range: TextRange::new(0.into(), 100.into()),
|
||||
|
|
@ -84,7 +84,7 @@ fn assert_expand_impl(
|
|||
file_id: EditionedFileId::current_edition(FileId::from_raw(42)),
|
||||
ast_id: ErasedFileAstId::from_raw(2),
|
||||
},
|
||||
ctx: SyntaxContextId::ROOT,
|
||||
ctx: SyntaxContextId::root(span::Edition::CURRENT),
|
||||
};
|
||||
let mixed_site = call_site;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue