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 @@ -24,7 +24,7 @@ template<typename T> class myclass2;
24
24
class myclass3 ;
25
25
26
26
27
- #line 49 "pure2-type-and-namespace-aliases.cpp2"
27
+ #line 50 "pure2-type-and-namespace-aliases.cpp2"
28
28
class myclass4 ;
29
29
30
30
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
@@ -132,4 +133,5 @@ auto main() -> int{
132
133
inline CPP2_CONSTEXPR myclass3 myclass3::v4 = v2;
133
134
inline CPP2_CONSTEXPR myclass4 myclass3::v5 = myclass4();
134
135
inline CPP2_CONSTEXPR myclass5 myclass3::v6 = myclass5();
136
+
135
137
Original file line number Diff line number Diff line change @@ -2554,6 +2554,7 @@ struct declaration_node
2554
2554
// Cache some context
2555
2555
bool is_template_parameter = false ;
2556
2556
bool is_parameter = false ;
2557
+ bool is_named = false ;
2557
2558
2558
2559
// Constructor
2559
2560
//
@@ -7749,6 +7750,7 @@ class parser
7749
7750
-> std::unique_ptr<declaration_node>
7750
7751
{
7751
7752
auto n = std::make_unique<declaration_node>( current_declarations.back () );
7753
+ n->is_named = named;
7752
7754
n->pos = start;
7753
7755
7754
7756
n->identifier = std::move (id);
Original file line number Diff line number Diff line change @@ -5363,7 +5363,10 @@ class cppfront
5363
5363
5364
5364
// In class definitions, emit the explicit access specifier if there
5365
5365
// is one, or default to private for data and public for functions
5366
- if (printer.get_phase () == printer.phase1_type_defs_func_decls )
5366
+ if (
5367
+ printer.get_phase () == printer.phase1_type_defs_func_decls
5368
+ && n.is_named
5369
+ )
5367
5370
{
5368
5371
if (!n.is_default_access ()) {
5369
5372
assert (is_in_type);
You can’t perform that action at this time.
0 commit comments