Author: owenca Date: 2022-09-28T19:10:12-07:00 New Revision: 2d23175fae989f90a09e556542309cd5a903e7cc
URL: https://github.com/llvm/llvm-project/commit/2d23175fae989f90a09e556542309cd5a903e7cc DIFF: https://github.com/llvm/llvm-project/commit/2d23175fae989f90a09e556542309cd5a903e7cc.diff LOG: [clang-format] Fix a bug with C++ `export import <Foo/Bar>` Fixes #57798. Differential Revision: https://reviews.llvm.org/D134700 Added: Modified: clang/lib/Format/UnwrappedLineParser.cpp clang/unittests/Format/FormatTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index a5dbd43cdf264..ead3f7f1c7d46 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -1634,10 +1634,18 @@ void UnwrappedLineParser::parseStructuralElement( parseJavaScriptEs6ImportExport(); return; } - if (!Style.isCpp()) - break; - // Handle C++ "(inline|export) namespace". - [[fallthrough]]; + if (Style.isCpp()) { + nextToken(); + if (FormatTok->is(Keywords.kw_import)) { + parseModuleImport(); + return; + } + if (FormatTok->is(tok::kw_namespace)) { + parseNamespace(); + return; + } + } + break; case tok::kw_inline: nextToken(); if (FormatTok->is(tok::kw_namespace)) { diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 4c11104343a4d..9a1396b196ffe 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -25140,6 +25140,7 @@ TEST_F(FormatTest, Cpp20ModulesSupport) { verifyFormat("export module foo.bar;", Style); verifyFormat("export module foo.bar:baz;", Style); verifyFormat("export import <string_view>;", Style); + verifyFormat("export import <Foo/Bar>;", Style); verifyFormat("export type_name var;", Style); verifyFormat("template <class T> export using A = B<T>;", Style); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits