File tree 4 files changed +11
-3
lines changed
4 files changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -44,6 +44,7 @@ myclass3: @struct type = {
44
44
v4: myclass3 == v2; // OK: Doesn't use the Cpp2 placeholder type.
45
45
v5: myclass4 == myclass4(); // OK: Doesn't use the Cpp2 placeholder type.
46
46
v6: myclass5 == myclass5(); // OK: Doesn't use the Cpp2 placeholder type.
47
+ v7 :== :() 0;
47
48
}
48
49
49
50
myclass4: @struct type = { }
Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ template<typename T> class myclass2;
25
25
class myclass3 ;
26
26
27
27
28
- #line 49 "pure2-type-and-namespace-aliases.cpp2"
28
+ #line 50 "pure2-type-and-namespace-aliases.cpp2"
29
29
class myclass4 ;
30
30
31
31
template <typename T> class myclass6 ;
@@ -81,14 +81,15 @@ class myclass3 {
81
81
public: static const myclass3 v4;// OK: Doesn't use the Cpp2 placeholder type.
82
82
public: static const myclass4 v5;// OK: Doesn't use the Cpp2 placeholder type.
83
83
public: static const myclass5 v6;// OK: Doesn't use the Cpp2 placeholder type.
84
+ public: static constexpr auto v7 = []() -> auto { return 0 ; };
84
85
};
85
86
86
87
class myclass4 {};
87
88
88
89
template <typename T> class myclass6 {
89
90
public: template <typename U>
90
91
CPP2_REQUIRES_ (true )
91
- #line 52 "pure2-type-and-namespace-aliases.cpp2"
92
+ #line 53 "pure2-type-and-namespace-aliases.cpp2"
92
93
static constexpr auto v = 0 ;
93
94
};
94
95
@@ -133,4 +134,5 @@ auto main() -> int{
133
134
inline CPP2_CONSTEXPR myclass3 myclass3::v4 = v2;
134
135
inline CPP2_CONSTEXPR myclass4 myclass3::v5 = myclass4();
135
136
inline CPP2_CONSTEXPR myclass5 myclass3::v6 = myclass5();
137
+
136
138
Original file line number Diff line number Diff line change @@ -2573,6 +2573,7 @@ struct declaration_node
2573
2573
// Cache some context
2574
2574
bool is_template_parameter = false ;
2575
2575
bool is_parameter = false ;
2576
+ bool is_named = false ;
2576
2577
2577
2578
// Constructor
2578
2579
//
@@ -7899,6 +7900,7 @@ class parser
7899
7900
-> std::unique_ptr<declaration_node>
7900
7901
{
7901
7902
auto n = std::make_unique<declaration_node>( current_declarations.back () );
7903
+ n->is_named = named;
7902
7904
n->pos = start;
7903
7905
7904
7906
n->identifier = std::move (id);
Original file line number Diff line number Diff line change @@ -5659,7 +5659,10 @@ class cppfront
5659
5659
5660
5660
// In class definitions, emit the explicit access specifier if there
5661
5661
// is one, or default to private for data and public for functions
5662
- if (printer.get_phase () == printer.phase1_type_defs_func_decls )
5662
+ if (
5663
+ printer.get_phase () == printer.phase1_type_defs_func_decls
5664
+ && n.is_named
5665
+ )
5663
5666
{
5664
5667
if (!n.is_default_access ()) {
5665
5668
assert (is_in_type);
You can’t perform that action at this time.
0 commit comments