Fixes https://github.com/llvm/llvm-project/issues/54349
Differential Revision: https://reviews.llvm.org/
D121559
Previous->is(tok::string_literal))
Previous->setType(TT_SelectorName);
}
- if (CurrentToken->is(tok::colon) || Style.isJavaScript())
+ if (CurrentToken->is(tok::colon) && OpeningBrace.is(TT_Unknown))
OpeningBrace.setType(TT_DictLiteral);
+ else if (Style.isJavaScript())
+ OpeningBrace.overwriteFixedType(TT_DictLiteral);
}
if (CurrentToken->is(tok::comma)) {
if (Style.isJavaScript())
<< I;
}
+TEST_F(TokenAnnotatorTest, UnderstandsAsm) {
+ auto Tokens = annotate("__asm{\n"
+ "a:\n"
+ "};");
+ ASSERT_EQ(Tokens.size(), 7u) << Tokens;
+ EXPECT_TOKEN(Tokens[0], tok::kw_asm, TT_Unknown);
+ EXPECT_TOKEN(Tokens[1], tok::l_brace, TT_InlineASMBrace);
+ EXPECT_TOKEN(Tokens[4], tok::r_brace, TT_InlineASMBrace);
+}
+
} // namespace
} // namespace format
} // namespace clang