Skip to content

Commit

Permalink
Enable -preview=fieldwise by default
Browse files Browse the repository at this point in the history
Introduced in PR #9331, this was changed from a normal bug fix to a
-preview switch because enabling it triggered a suprious "statement is
not reachable" warning in Phobos. That warning has since been removed
(in PR #15568).
  • Loading branch information
pbackus authored and dlang-bot committed Dec 8, 2024
1 parent a7f6b04 commit 6a7bd45
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 2 deletions.
8 changes: 8 additions & 0 deletions changelog/dmd.fieldwise.dd
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
`-preview=fieldwise` is now enabled by default

This fixes a bug that affected some struct comparisons using the `==` operator.
For more information, see [the entry for `-preview=fieldwise` in the 2.085.0
changelog](https://dlang.org/changelog/2.085.0.html#no-cmpsb).

The new `-revert=fieldwise` switch can be used to disable the bug fix and
restore the original behavior of the `==` operator.
4 changes: 3 additions & 1 deletion compiler/src/dmd/cli.d
Original file line number Diff line number Diff line change
Expand Up @@ -939,6 +939,8 @@ dmd -cov -unittest myprog.d
"https://github.com/dlang/DIPs/blob/master/DIPs/other/DIP1000.md"),
Feature("intpromote", "fix16997", "revert integral promotions for unary + - ~ operators"),
Feature("dtorfields", "dtorFields", "don't destruct fields of partially constructed objects"),
Feature("fieldwise", "fieldwise", "don't use fieldwise comparisons for struct equality",
"https://dlang.org/changelog/2.085.0.html#no-cmpsb"),
];

/// Returns all available previews
Expand All @@ -959,7 +961,7 @@ dmd -cov -unittest myprog.d
Feature("bitfields", "bitfields", "add C-like bitfields",
"https://github.com/dlang/dlang.org/pull/3190"),
Feature("fieldwise", "fieldwise", "use fieldwise comparisons for struct equality",
"https://dlang.org/changelog/2.085.0.html#no-cmpsb"),
"https://dlang.org/changelog/2.085.0.html#no-cmpsb", false, false),
Feature("fixAliasThis", "fixAliasThis",
"when a symbol is resolved, check alias this scope before going to upper scopes",
"https://github.com/dlang/dmd/pull/8885"),
Expand Down
1 change: 0 additions & 1 deletion compiler/test/compilable/previewhelp.d
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ Upcoming language changes listed by -preview=name:
=dip1008 implement @nogc Throwable DIP (https://github.com/dlang/DIPs/blob/master/DIPs/other/DIP1008.md)
=dip1021 implement Mutable Function Arguments DIP (https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1021.md)
=bitfields add C-like bitfields (https://github.com/dlang/dlang.org/pull/3190)
=fieldwise use fieldwise comparisons for struct equality (https://dlang.org/changelog/2.085.0.html#no-cmpsb)
=fixAliasThis when a symbol is resolved, check alias this scope before going to upper scopes (https://github.com/dlang/dmd/pull/8885)
=rvaluerefparam enable rvalue arguments to ref parameters (https://gist.github.com/andralex/e5405a5d773f07f73196c05f8339435a)
=safer more safety checks by default (https://github.com/WalterBright/documents/blob/38f0a846726b571f8108f6e63e5e217b91421c86/safer.md)
Expand Down
1 change: 1 addition & 0 deletions compiler/test/compilable/reverthelp.d
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ Revertable language changes listed by -revert=name:
=dip1000 revert DIP1000 changes (Scoped Pointers) (https://github.com/dlang/DIPs/blob/master/DIPs/other/DIP1000.md)
=intpromote revert integral promotions for unary + - ~ operators
=dtorfields don't destruct fields of partially constructed objects
=fieldwise don't use fieldwise comparisons for struct equality (https://dlang.org/changelog/2.085.0.html#no-cmpsb)
----
*/

0 comments on commit 6a7bd45

Please sign in to comment.