aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/tests/macros.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-03-04 00:05:10 +0000
committerGitHub <[email protected]>2020-03-04 00:05:10 +0000
commit437329d3f5b7bb5b703b93c75a97d349eb77d6c7 (patch)
treea8f700a32ff4bb980c0eab738c04c00ba07ab69c /crates/ra_hir_ty/src/tests/macros.rs
parentce69561be32421868e0f1ddb537f6f0a596d5610 (diff)
parent5ea83fee010a26e86e962cfb8270fd2a565277b3 (diff)
Merge #3429
3429: Fix panic on eager expansion r=matklad a=edwin0cheng When lazy expanding inside an eager macro, its *parent* file of that lazy macro call must be already exists such that a panic is occurred because that parent file is the eager macro we are processing. This PR fix this bug by store the argument syntax node as another eager macro id for that purpose. Personally I don't know if it is a good answer for this bug. Co-authored-by: Edwin Cheng <[email protected]>
Diffstat (limited to 'crates/ra_hir_ty/src/tests/macros.rs')
-rw-r--r--crates/ra_hir_ty/src/tests/macros.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/crates/ra_hir_ty/src/tests/macros.rs b/crates/ra_hir_ty/src/tests/macros.rs
index 55386c030..5d0efa0f4 100644
--- a/crates/ra_hir_ty/src/tests/macros.rs
+++ b/crates/ra_hir_ty/src/tests/macros.rs
@@ -439,6 +439,27 @@ fn main() {
439} 439}
440 440
441#[test] 441#[test]
442fn infer_builtin_macros_concat_with_lazy() {
443 assert_snapshot!(
444 infer(r#"
445macro_rules! hello {() => {"hello"}}
446
447#[rustc_builtin_macro]
448macro_rules! concat {() => {}}
449
450fn main() {
451 let x = concat!(hello!(), concat!("world", "!"));
452}
453"#),
454 @r###"
455 ![0; 13) '"helloworld!"': &str
456 [104; 161) '{ ...")); }': ()
457 [114; 115) 'x': &str
458 "###
459 );
460}
461
462#[test]
442fn infer_derive_clone_simple() { 463fn infer_derive_clone_simple() {
443 let (db, pos) = TestDB::with_position( 464 let (db, pos) = TestDB::with_position(
444 r#" 465 r#"