@@ -5,14 +5,13 @@ $(CHANGELOG_NAV_INJECT)
5
5
$(VERSION Mar 08, 2020, =================================================,
6
6
7
7
$(CHANGELOG_HEADER_STATISTICS
8
- $(VER) comes with 19 major changes and 63 fixed Bugzilla issues.
8
+ $(VER) comes with 18 major changes and 64 fixed Bugzilla issues.
9
9
A huge thanks goes to the
10
10
$(LINK2 #contributors, 55 contributors)
11
11
who made $(VER) possible.)
12
12
13
13
$(BUGSTITLE_TEXT_HEADER Compiler changes,
14
14
15
- $(LI $(RELATIVE_LINK2 d1-operator-deprecation,D1-style operator now have a lower priority than D2-style))
16
15
$(LI $(RELATIVE_LINK2 deallocator,Class deallocator have been removed from the language))
17
16
$(LI $(RELATIVE_LINK2 gnu-error-style,Can now report line numbers in GNU error style))
18
17
$(LI $(RELATIVE_LINK2 headers,Added experimental `C++` header generation from `extern(C|C++)` declarations))
@@ -60,39 +59,11 @@ $(CHANGELOG_SEP_HEADER_TEXT)
60
59
61
60
$(BUGSTITLE_TEXT_BODY Compiler changes,
62
61
63
- $(LI $(LNAME2 d1-operator-deprecation,D1-style operator now have a lower priority than D2-style)
64
- $(CHANGELOG_SOURCE_FILE dmd, changelog/d1-operator-deprecation.dd)
65
- $(P
66
- D1 operator overloads have been deprecated in $(LINK2 https://dlang.org/changelog/2.088.0.html v2.088.0).
67
- They historically had priority over D2 operator overload, and that priority was kept as is even after deprecating them.
68
- )
69
-
70
- $(P
71
- One main difference between D1 and D2 operator overload is that D1's are `virtual` by default,
72
- while the D2 operator overloading scheme relies on template, and so cannot be virtual.
73
- Code relying on virtuality of operator can be trivially adapted by providing a D2-style operator
74
- overload that forwards to a virtual method.
75
- )
76
-
77
- $(P
78
- However, as D1 operator overloads take priority, the deprecation message will be issued even if a D2
79
- operator overload is present.
80
- This means that code relying on virtual operators would need not only to introduce the aforementioned
81
- D2-style overload, but also to rename their method not to match the reserved D1 names.
82
- This in turns forces libraries to introduce a breaking change in order to silence the deprecation.
83
- )
84
-
85
- $(P
86
- Starting from this release, D2-style operator overloads take priority over D1-style,
87
- making it trivial to forward the former to the later.
88
- )
89
- )
90
-
91
62
$(LI $(LNAME2 deallocator,Class deallocator have been removed from the language)
92
63
$(CHANGELOG_SOURCE_FILE dmd, changelog/deallocator.dd)
93
64
$(P
94
65
Class deallocator have been deprecated in v2.080.0
95
- (see $(LINK2 https://dlang.org/changelog/2.080.0.html#deprecate_class_allocators the changelog entry)),
66
+ (see $(LINK2 https://dlang.org/changelog/2.080.0.html#deprecate_class_allocators, the changelog entry)),
96
67
and turned into an error in v2.087.0.
97
68
They have now been completely removed from the language, and the parser won't recognize them anymore.
98
69
)
@@ -439,6 +410,7 @@ $(LI $(BUGZILLA 20545): Segfault/Assertion failure when parsing invalid AA liter
439
410
$(LI $(BUGZILLA 20547): Wrong error message when trying to "new" an associative array)
440
411
$(LI $(BUGZILLA 20551): In @safe code and using delegates, it's possible to escape references to function frame)
441
412
$(LI $(BUGZILLA 20592): [GCC ASM] [ICE] dmd/iasmgcc.d$(LPAREN)332$(RPAREN): Assertion failure)
413
+ $(LI $(BUGZILLA 20613): String switch in -betterC fails for 7+ labels)
442
414
)
443
415
$(BUGSTITLE_BUGZILLA DMD Compiler enhancements,
444
416
0 commit comments