Skip to content

Commit d7adb8f

Browse files
committed
Emitted newlines no longer confuse comment merge, closes #344, closes #351, closes #354
Thanks for these test cases. The common issue was that occasionally an emitted piece of Cpp1 contained a newline character, which was not accounted for in the code that did comment merging. Thanks also for the PRs for proposed fixes. I looked at those too and tried them out. In the end, I found that what worked best and most generally was to break apart strings that contain newlines into one chunk per line, and this allowed the comment merging to happen correctly by avoiding the hidden-to-the-comment-merger line change. So this commit is going with that solution rather than the other proposed PRs, but the other PRs helped find this root cause and shed light on a general solution, as did the test cases. Thanks again for both!
1 parent 0a8dcf6 commit d7adb8f

File tree

74 files changed

+405
-103
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+405
-103
lines changed

regression-tests/test-results/clang-12/mixed-float-literals.cpp.output

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,121 +1,121 @@
1-
mixed-float-literals.cpp:13:3: warning: expression result unused [-Wunused-value]
1+
mixed-float-literals.cpp:14:3: warning: expression result unused [-Wunused-value]
22
123;
33
^~~
4-
mixed-float-literals.cpp:14:3: warning: expression result unused [-Wunused-value]
4+
mixed-float-literals.cpp:15:3: warning: expression result unused [-Wunused-value]
55
123u;
66
^~~~
7-
mixed-float-literals.cpp:15:3: warning: expression result unused [-Wunused-value]
7+
mixed-float-literals.cpp:16:3: warning: expression result unused [-Wunused-value]
88
123ul;
99
^~~~~
10-
mixed-float-literals.cpp:16:3: warning: expression result unused [-Wunused-value]
10+
mixed-float-literals.cpp:17:3: warning: expression result unused [-Wunused-value]
1111
123ull;
1212
^~~~~~
13-
mixed-float-literals.cpp:17:3: warning: expression result unused [-Wunused-value]
13+
mixed-float-literals.cpp:18:3: warning: expression result unused [-Wunused-value]
1414
123l;
1515
^~~~
16-
mixed-float-literals.cpp:18:3: warning: expression result unused [-Wunused-value]
16+
mixed-float-literals.cpp:19:3: warning: expression result unused [-Wunused-value]
1717
123ll;
1818
^~~~~
19-
mixed-float-literals.cpp:19:3: warning: expression result unused [-Wunused-value]
19+
mixed-float-literals.cpp:20:3: warning: expression result unused [-Wunused-value]
2020
123'456ll;
2121
^~~~~~~~~
22-
mixed-float-literals.cpp:20:3: warning: expression result unused [-Wunused-value]
22+
mixed-float-literals.cpp:21:3: warning: expression result unused [-Wunused-value]
2323
123;
2424
^~~
25-
mixed-float-literals.cpp:21:3: warning: expression result unused [-Wunused-value]
25+
mixed-float-literals.cpp:22:3: warning: expression result unused [-Wunused-value]
2626
123U;
2727
^~~~
28-
mixed-float-literals.cpp:22:3: warning: expression result unused [-Wunused-value]
28+
mixed-float-literals.cpp:23:3: warning: expression result unused [-Wunused-value]
2929
123UL;
3030
^~~~~
31-
mixed-float-literals.cpp:23:3: warning: expression result unused [-Wunused-value]
31+
mixed-float-literals.cpp:24:3: warning: expression result unused [-Wunused-value]
3232
123ULL;
3333
^~~~~~
34-
mixed-float-literals.cpp:24:3: warning: expression result unused [-Wunused-value]
34+
mixed-float-literals.cpp:25:3: warning: expression result unused [-Wunused-value]
3535
123L;
3636
^~~~
37-
mixed-float-literals.cpp:25:3: warning: expression result unused [-Wunused-value]
37+
mixed-float-literals.cpp:26:3: warning: expression result unused [-Wunused-value]
3838
123LL;
3939
^~~~~
40-
mixed-float-literals.cpp:26:3: warning: expression result unused [-Wunused-value]
40+
mixed-float-literals.cpp:27:3: warning: expression result unused [-Wunused-value]
4141
123'456LL;
4242
^~~~~~~~~
43-
mixed-float-literals.cpp:28:3: warning: expression result unused [-Wunused-value]
43+
mixed-float-literals.cpp:29:3: warning: expression result unused [-Wunused-value]
4444
123'456.0f;
4545
^~~~~~~~~~
46-
mixed-float-literals.cpp:29:3: warning: expression result unused [-Wunused-value]
46+
mixed-float-literals.cpp:30:3: warning: expression result unused [-Wunused-value]
4747
123'456.f;
4848
^~~~~~~~~
49-
mixed-float-literals.cpp:30:3: warning: expression result unused [-Wunused-value]
49+
mixed-float-literals.cpp:31:3: warning: expression result unused [-Wunused-value]
5050
456.0;
5151
^~~~~
52-
mixed-float-literals.cpp:31:3: warning: expression result unused [-Wunused-value]
52+
mixed-float-literals.cpp:32:3: warning: expression result unused [-Wunused-value]
5353
456.;
5454
^~~~
55-
mixed-float-literals.cpp:32:3: warning: expression result unused [-Wunused-value]
55+
mixed-float-literals.cpp:33:3: warning: expression result unused [-Wunused-value]
5656
1.0e10;
5757
^~~~~~
58-
mixed-float-literals.cpp:33:3: warning: expression result unused [-Wunused-value]
58+
mixed-float-literals.cpp:34:3: warning: expression result unused [-Wunused-value]
5959
1.0e+10;
6060
^~~~~~~
61-
mixed-float-literals.cpp:34:3: warning: expression result unused [-Wunused-value]
61+
mixed-float-literals.cpp:35:3: warning: expression result unused [-Wunused-value]
6262
1.0e-10;
6363
^~~~~~~
64-
mixed-float-literals.cpp:35:3: warning: expression result unused [-Wunused-value]
64+
mixed-float-literals.cpp:36:3: warning: expression result unused [-Wunused-value]
6565
1.0e-10f;
6666
^~~~~~~~
67-
mixed-float-literals.cpp:36:3: warning: expression result unused [-Wunused-value]
67+
mixed-float-literals.cpp:37:3: warning: expression result unused [-Wunused-value]
6868
1.e-10;
6969
^~~~~~
70-
mixed-float-literals.cpp:37:3: warning: expression result unused [-Wunused-value]
70+
mixed-float-literals.cpp:38:3: warning: expression result unused [-Wunused-value]
7171
1.e-10f;
7272
^~~~~~~
73-
mixed-float-literals.cpp:38:3: warning: expression result unused [-Wunused-value]
73+
mixed-float-literals.cpp:39:3: warning: expression result unused [-Wunused-value]
7474
1e-10;
7575
^~~~~
76-
mixed-float-literals.cpp:39:3: warning: expression result unused [-Wunused-value]
76+
mixed-float-literals.cpp:40:3: warning: expression result unused [-Wunused-value]
7777
1e-10f;
7878
^~~~~~
79-
mixed-float-literals.cpp:40:3: warning: expression result unused [-Wunused-value]
79+
mixed-float-literals.cpp:41:3: warning: expression result unused [-Wunused-value]
8080
1e-1'0;
8181
^~~~~~
82-
mixed-float-literals.cpp:41:3: warning: expression result unused [-Wunused-value]
82+
mixed-float-literals.cpp:42:3: warning: expression result unused [-Wunused-value]
8383
123'456.0F;
8484
^~~~~~~~~~
85-
mixed-float-literals.cpp:42:3: warning: expression result unused [-Wunused-value]
85+
mixed-float-literals.cpp:43:3: warning: expression result unused [-Wunused-value]
8686
123'456.F;
8787
^~~~~~~~~
88-
mixed-float-literals.cpp:43:3: warning: expression result unused [-Wunused-value]
88+
mixed-float-literals.cpp:44:3: warning: expression result unused [-Wunused-value]
8989
456.0;
9090
^~~~~
91-
mixed-float-literals.cpp:44:3: warning: expression result unused [-Wunused-value]
91+
mixed-float-literals.cpp:45:3: warning: expression result unused [-Wunused-value]
9292
456.;
9393
^~~~
94-
mixed-float-literals.cpp:45:3: warning: expression result unused [-Wunused-value]
94+
mixed-float-literals.cpp:46:3: warning: expression result unused [-Wunused-value]
9595
1.0E10;
9696
^~~~~~
97-
mixed-float-literals.cpp:46:3: warning: expression result unused [-Wunused-value]
97+
mixed-float-literals.cpp:47:3: warning: expression result unused [-Wunused-value]
9898
1.0E+10;
9999
^~~~~~~
100-
mixed-float-literals.cpp:47:3: warning: expression result unused [-Wunused-value]
100+
mixed-float-literals.cpp:48:3: warning: expression result unused [-Wunused-value]
101101
1.0E-10;
102102
^~~~~~~
103-
mixed-float-literals.cpp:48:3: warning: expression result unused [-Wunused-value]
103+
mixed-float-literals.cpp:49:3: warning: expression result unused [-Wunused-value]
104104
1.0E-10F;
105105
^~~~~~~~
106-
mixed-float-literals.cpp:49:3: warning: expression result unused [-Wunused-value]
106+
mixed-float-literals.cpp:50:3: warning: expression result unused [-Wunused-value]
107107
1.E-10;
108108
^~~~~~
109-
mixed-float-literals.cpp:50:3: warning: expression result unused [-Wunused-value]
109+
mixed-float-literals.cpp:51:3: warning: expression result unused [-Wunused-value]
110110
1.E-10F;
111111
^~~~~~~
112-
mixed-float-literals.cpp:51:3: warning: expression result unused [-Wunused-value]
112+
mixed-float-literals.cpp:52:3: warning: expression result unused [-Wunused-value]
113113
1E-10;
114114
^~~~~
115-
mixed-float-literals.cpp:52:3: warning: expression result unused [-Wunused-value]
115+
mixed-float-literals.cpp:53:3: warning: expression result unused [-Wunused-value]
116116
1E-10F;
117117
^~~~~~
118-
mixed-float-literals.cpp:53:3: warning: expression result unused [-Wunused-value]
118+
mixed-float-literals.cpp:54:3: warning: expression result unused [-Wunused-value]
119119
1E-1'0;
120120
^~~~~~
121121
mixed-float-literals.cpp2:59:3: warning: expression result unused [-Wunused-value]

regression-tests/test-results/mixed-as-for-variant-20-types.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112
template<int I>
@@ -14,6 +15,7 @@ struct X { operator int() const { return I; } };
1415
#line 4 "mixed-as-for-variant-20-types.cpp2"
1516
[[nodiscard]] auto main() -> int;
1617

18+
1719
//=== Cpp2 function definitions =================================================
1820

1921

regression-tests/test-results/mixed-bounds-check.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112

1213
#include <vector>
1314

1415
#line 4 "mixed-bounds-check.cpp2"
1516
[[nodiscard]] auto main() -> int;
17+
1618

1719
//=== Cpp2 function definitions =================================================
1820

regression-tests/test-results/mixed-bounds-safety-with-assert-2.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112

1213
#line 2 "mixed-bounds-safety-with-assert-2.cpp2"
1314
[[nodiscard]] auto main() -> int;
15+
1416

1517
#line 10 "mixed-bounds-safety-with-assert-2.cpp2"
1618
auto add_42_to_subrange(auto& rng, cpp2::in<int> start, cpp2::in<int> end) -> void;
@@ -20,6 +22,7 @@ auto add_42_to_subrange(auto& rng, cpp2::in<int> start, cpp2::in<int> end) -> vo
2022
#include <span>
2123
#include <iostream>
2224

25+
2326
//=== Cpp2 function definitions =================================================
2427

2528

regression-tests/test-results/mixed-bounds-safety-with-assert.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,24 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112

1213
#line 2 "mixed-bounds-safety-with-assert.cpp2"
1314
[[nodiscard]] auto main() -> int;
15+
1416

1517
#line 7 "mixed-bounds-safety-with-assert.cpp2"
1618
auto print_subrange(auto const& rng, cpp2::in<int> start, cpp2::in<int> end) -> void;
19+
1720
#line 19 "mixed-bounds-safety-with-assert.cpp2"
1821

1922
#include <vector>
2023
#include <span>
2124
#include <iostream>
2225

26+
2327
//=== Cpp2 function definitions =================================================
2428

2529

regression-tests/test-results/mixed-captures-in-expressions-and-postconditions.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112

@@ -14,12 +15,14 @@
1415

1516
#line 5 "mixed-captures-in-expressions-and-postconditions.cpp2"
1617
[[nodiscard]] auto main() -> int;
18+
1719

1820
#line 17 "mixed-captures-in-expressions-and-postconditions.cpp2"
1921
extern std::vector<int> vec;
2022

2123
auto insert_at(cpp2::in<int> where, cpp2::in<int> val) -> void;
2224

25+
2326
//=== Cpp2 function definitions =================================================
2427

2528

regression-tests/test-results/mixed-fixed-type-aliases.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112
#include <typeinfo>
@@ -17,9 +18,11 @@ namespace my {
1718

1819
#line 8 "mixed-fixed-type-aliases.cpp2"
1920
auto test(auto const& x) -> void;
21+
2022

2123
#line 15 "mixed-fixed-type-aliases.cpp2"
2224
[[nodiscard]] auto main(int const argc_, char const* const* const argv_) -> int;
25+
2326

2427
//=== Cpp2 function definitions =================================================
2528

regression-tests/test-results/mixed-float-literals.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112
void literals_cpp1() {
@@ -66,10 +67,12 @@ void literals_cpp1() {
6667

6768
#line 57 "mixed-float-literals.cpp2"
6869
auto literals_cpp2() -> void;
70+
6971

7072
#line 114 "mixed-float-literals.cpp2"
7173
[[nodiscard]] auto main() -> int;
7274

75+
7376
//=== Cpp2 function definitions =================================================
7477

7578

regression-tests/test-results/mixed-forwarding.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112
#include <iostream>
@@ -25,12 +26,15 @@ auto use(auto const& x) -> void;
2526

2627
// invoking each of these with an rvalue std::pair argument ...
2728
auto apply_implicit_forward(auto&& t) -> void;
29+
2830

2931
#line 20 "mixed-forwarding.cpp2"
3032
auto apply_explicit_forward(auto&& t) -> void;
33+
3134

3235
#line 25 "mixed-forwarding.cpp2"
3336
[[nodiscard]] auto main() -> int;
37+
3438

3539
//=== Cpp2 function definitions =================================================
3640

regression-tests/test-results/mixed-function-expression-and-std-for-each.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112
#include <vector>
@@ -16,6 +17,7 @@
1617

1718
#line 7 "mixed-function-expression-and-std-for-each.cpp2"
1819
[[nodiscard]] auto main() -> int;
20+
1921

2022
//=== Cpp2 function definitions =================================================
2123

regression-tests/test-results/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112
#include <vector>
@@ -17,6 +18,7 @@
1718

1819
#line 8 "mixed-function-expression-and-std-ranges-for-each-with-capture.cpp2"
1920
[[nodiscard]] auto main() -> int;
21+
2022

2123
//=== Cpp2 function definitions =================================================
2224

regression-tests/test-results/mixed-function-expression-and-std-ranges-for-each.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112
#include <vector>
@@ -17,6 +18,7 @@
1718

1819
#line 8 "mixed-function-expression-and-std-ranges-for-each.cpp2"
1920
[[nodiscard]] auto main() -> int;
21+
2022

2123
//=== Cpp2 function definitions =================================================
2224

regression-tests/test-results/mixed-function-expression-with-pointer-capture.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "cpp2util.h"
77

88

9+
910
//=== Cpp2 type definitions and function declarations ===========================
1011

1112
#include <vector>
@@ -17,6 +18,7 @@
1718

1819
#line 8 "mixed-function-expression-with-pointer-capture.cpp2"
1920
[[nodiscard]] auto main() -> int;
21+
2022

2123
//=== Cpp2 function definitions =================================================
2224

0 commit comments

Comments
 (0)