File tree Expand file tree Collapse file tree 4 files changed +11
-3
lines changed
Expand file tree Collapse file tree 4 files changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -44,6 +44,7 @@ myclass3: @struct type = {
4444 v4: myclass3 == v2; // OK: Doesn't use the Cpp2 placeholder type.
4545 v5: myclass4 == myclass4(); // OK: Doesn't use the Cpp2 placeholder type.
4646 v6: myclass5 == myclass5(); // OK: Doesn't use the Cpp2 placeholder type.
47+ v7 :== :() 0;
4748}
4849
4950myclass4: @struct type = { }
Original file line number Diff line number Diff line change @@ -24,7 +24,7 @@ template<typename T> class myclass2;
2424class myclass3 ;
2525
2626
27- #line 49 "pure2-type-and-namespace-aliases.cpp2"
27+ #line 50 "pure2-type-and-namespace-aliases.cpp2"
2828class myclass4 ;
2929
3030template <typename T> class myclass6 ;
@@ -81,14 +81,15 @@ class myclass3 {
8181 public: static const myclass3 v4;// OK: Doesn't use the Cpp2 placeholder type.
8282 public: static const myclass4 v5;// OK: Doesn't use the Cpp2 placeholder type.
8383 public: static const myclass5 v6;// OK: Doesn't use the Cpp2 placeholder type.
84+ public: static constexpr auto v7 = []() -> auto { return 0 ; };
8485};
8586
8687class myclass4 {};
8788
8889template <typename T> class myclass6 {
8990 public: template <typename U>
9091CPP2_REQUIRES_ (true )
91- #line 52 "pure2-type-and-namespace-aliases.cpp2"
92+ #line 53 "pure2-type-and-namespace-aliases.cpp2"
9293 static constexpr auto v = 0 ;
9394};
9495
@@ -132,4 +133,5 @@ auto main() -> int{
132133 inline CPP2_CONSTEXPR myclass3 myclass3::v4 = v2;
133134 inline CPP2_CONSTEXPR myclass4 myclass3::v5 = myclass4();
134135 inline CPP2_CONSTEXPR myclass5 myclass3::v6 = myclass5();
136+
135137
Original file line number Diff line number Diff line change @@ -2554,6 +2554,7 @@ struct declaration_node
25542554 // Cache some context
25552555 bool is_template_parameter = false ;
25562556 bool is_parameter = false ;
2557+ bool is_named = false ;
25572558
25582559 // Constructor
25592560 //
@@ -7749,6 +7750,7 @@ class parser
77497750 -> std::unique_ptr<declaration_node>
77507751 {
77517752 auto n = std::make_unique<declaration_node>( current_declarations.back () );
7753+ n->is_named = named;
77527754 n->pos = start;
77537755
77547756 n->identifier = std::move (id);
Original file line number Diff line number Diff line change @@ -5363,7 +5363,10 @@ class cppfront
53635363
53645364 // In class definitions, emit the explicit access specifier if there
53655365 // 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+ )
53675370 {
53685371 if (!n.is_default_access ()) {
53695372 assert (is_in_type);
You can’t perform that action at this time.
0 commit comments