From d0cfeb4f1616e125ca3a941f2dcf5dfbb5f2b03f Mon Sep 17 00:00:00 2001 From: darksv Date: Mon, 10 Sep 2018 23:21:16 +0200 Subject: Do not reparse token tree when it is not delimited by braces --- crates/libsyntax2/src/lib.rs | 2 +- crates/libsyntax2/tests/test/main.rs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'crates/libsyntax2') diff --git a/crates/libsyntax2/src/lib.rs b/crates/libsyntax2/src/lib.rs index 74e8e7338..fd58cb4fa 100644 --- a/crates/libsyntax2/src/lib.rs +++ b/crates/libsyntax2/src/lib.rs @@ -149,7 +149,7 @@ fn find_reparsable_node(node: SyntaxNodeRef, range: TextRange) -> Option<(Syntax MATCH_ARM_LIST => grammar::match_arm_list, USE_TREE_LIST => grammar::use_tree_list, EXTERN_ITEM_LIST => grammar::extern_item_list, - TOKEN_TREE => grammar::token_tree, + TOKEN_TREE if node.first_child().unwrap().kind() == L_CURLY => grammar::token_tree, ITEM_LIST => { let parent = node.parent().unwrap(); match parent.kind() { diff --git a/crates/libsyntax2/tests/test/main.rs b/crates/libsyntax2/tests/test/main.rs index 24058efa9..644df9f3c 100644 --- a/crates/libsyntax2/tests/test/main.rs +++ b/crates/libsyntax2/tests/test/main.rs @@ -85,6 +85,11 @@ pub enum A { foo!{a, b<|><|> d} ", ", c[3]"); do_check(r" +fn foo() { + vec![<|><|>] +} +", "123"); + do_check(r" extern { fn<|>;<|> } -- cgit v1.2.3