1
0
mirror of https://github.com/golang/go synced 2024-11-23 04:00:03 -07:00

cmd/compile: add support for alternative comparable semantics

Add the experimental compiler flag -altcomparable. If set, the
compiler uses alternative comparable semantics: any ordinary
(non-type parameter) interface implements the comparable
constraint.

This permits experimenting with this alternative semantics
akin to what is proposed in #52509.

For #52509.

Change-Id: I64192eee6f2a550eeb50de011079f2f0b994cf94
Reviewed-on: https://go-review.googlesource.com/c/go/+/444636
Run-TryBot: Robert Griesemer <gri@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
This commit is contained in:
Robert Griesemer 2022-10-20 15:56:11 -07:00 committed by Gopher Robot
parent 2dcc9acbd2
commit b95ea201d5
2 changed files with 5 additions and 3 deletions

View File

@ -122,7 +122,8 @@ type CmdFlags struct {
SymABIs string "help:\"read symbol ABIs from `file`\""
TraceProfile string "help:\"write an execution trace to `file`\""
TrimPath string "help:\"remove `prefix` from recorded source file paths\""
WB bool "help:\"enable write barrier\"" // TODO: remove
WB bool "help:\"enable write barrier\"" // TODO: remove
AltComparable bool "help:\"enable alternative comparable semantics\"" // experiment - remove eventually
// Configuration derived from flags; not a flag itself.
Cfg struct {

View File

@ -55,8 +55,9 @@ func checkFiles(noders []*noder) (posMap, *types2.Package, *types2.Info) {
}
base.ErrorfAt(m.makeXPos(terr.Pos), "%s", msg)
},
Importer: &importer,
Sizes: &gcSizes{},
Importer: &importer,
Sizes: &gcSizes{},
AltComparableSemantics: base.Flag.AltComparable, // experiment - remove eventually
}
info := &types2.Info{
StoreTypesInSyntax: true,