sammccall accepted this revision. sammccall added a comment. This revision is now accepted and ready to land.
Ship it! ================ Comment at: clang/lib/Format/FormatToken.h:177 +/// EndOfExpansion: 0 0 0 2 1 0 1 +struct MacroContext { + MacroContext(MacroRole Role) : Role(Role) {} ---------------- klimek wrote: > sammccall wrote: > > "context" is often pretty vague - "MacroSource" isn't a brilliant name but > > at least seems to hint at the direction (that the FormatToken is the > > expanded token and the MacroSource gives information about what it was > > expanded from) > > > > I don't feel strongly about this though, up to you. > MacroSource sounds like it is about the macro source (i.e. the tokens written > for the macro). > I'd be happy to rename to MacroExpansion or MacroExpansionInfo or somesuch if > you think that helps? Oops, accidental "source" pun. MacroOrigin would be another name in the same spirit. But MacroExpansion sounds good to me, too. ================ Comment at: clang/lib/Format/MacroExpander.cpp:190 + return true; + for (const auto &Arg : Args[I->getValue()]) { + // A token can be part of a macro argument at multiple levels. ---------------- nit: this is confusingly a const reference to a non-const pointer... `auto *` or `FormatToken *`? ================ Comment at: clang/lib/Format/MacroExpander.cpp:142 + auto Definition = Parser.parse(); + Definitions[Definition.Name] = Definition; + } ---------------- klimek wrote: > sammccall wrote: > > nit: this is a copy for what seems like no reason - move `Parser.parse()` > > inline to this line? > Reason is that we need the name. oops, right. std::move() the RHS? (mostly I just find the copies surprising, so draws attention) ================ Comment at: clang/unittests/Format/MacroExpanderTest.cpp:183 + EXPECT_ATTRIBUTES(Result, Attributes); +} + ---------------- may want a test that uses of an arg after the first are not expanded, because that "guards" a bunch of nasty potential bugs ================ Comment at: clang/unittests/Format/TestLexer.h:15 + +#ifndef CLANG_UNITTESTS_FORMAT_TEST_LEXER_H +#define CLANG_UNITTESTS_FORMAT_TEST_LEXER_H ---------------- I guess clang-tidy wants ..._TESTLEXER_H here Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D83296/new/ https://reviews.llvm.org/D83296 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits