Skip to content

Commit

Permalink
[NFC] [C++20] [Modules] Add a test for merging lambda types
Browse files Browse the repository at this point in the history
Close #57222.

This should be fixed with the series of bc73ef0. Add the test case for
C++20 Named modules.
  • Loading branch information
ChuanqiXu9 committed Jun 28, 2023
1 parent 4d8cf2a commit 2241146
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions clang/test/Modules/merge-lambdas.cppm
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// RUN: rm -rf %t
// RUN: mkdir %t
// RUN: split-file %s %t
//
// RUN: %clang_cc1 -std=c++20 %t/A.cppm -emit-module-interface -o %t/A.pcm
// RUN: %clang_cc1 -std=c++20 %t/B.cppm -emit-module-interface -o %t/B.pcm
// RUN: %clang_cc1 -std=c++20 %t/use.cppm -fprebuilt-module-path=%t -fsyntax-only -verify

//--- lambda.h
inline auto cmp = [](auto l, auto r) {
return l < r;
};

//--- A.cppm
module;
#include "lambda.h"

export module A;
export auto c1 = cmp;
export using ::cmp;

//--- B.cppm
module;
#include "lambda.h"

export module B;
export auto c2 = cmp;
export using ::cmp;

//--- use.cppm
// expected-no-diagnostics
module;

export module use;

import A;
import B;

static_assert(__is_same(decltype(c1), decltype(c2))); // should succeed.
auto x = cmp; // cmp must not be ambiguous,

0 comments on commit 2241146

Please sign in to comment.