mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00: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:
parent
2dcc9acbd2
commit
b95ea201d5
2 changed files with 5 additions and 3 deletions
|
|
@ -122,7 +122,8 @@ type CmdFlags struct {
|
||||||
SymABIs string "help:\"read symbol ABIs from `file`\""
|
SymABIs string "help:\"read symbol ABIs from `file`\""
|
||||||
TraceProfile string "help:\"write an execution trace to `file`\""
|
TraceProfile string "help:\"write an execution trace to `file`\""
|
||||||
TrimPath string "help:\"remove `prefix` from recorded source file paths\""
|
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.
|
// Configuration derived from flags; not a flag itself.
|
||||||
Cfg struct {
|
Cfg struct {
|
||||||
|
|
|
||||||
|
|
@ -55,8 +55,9 @@ func checkFiles(noders []*noder) (posMap, *types2.Package, *types2.Info) {
|
||||||
}
|
}
|
||||||
base.ErrorfAt(m.makeXPos(terr.Pos), "%s", msg)
|
base.ErrorfAt(m.makeXPos(terr.Pos), "%s", msg)
|
||||||
},
|
},
|
||||||
Importer: &importer,
|
Importer: &importer,
|
||||||
Sizes: &gcSizes{},
|
Sizes: &gcSizes{},
|
||||||
|
AltComparableSemantics: base.Flag.AltComparable, // experiment - remove eventually
|
||||||
}
|
}
|
||||||
info := &types2.Info{
|
info := &types2.Info{
|
||||||
StoreTypesInSyntax: true,
|
StoreTypesInSyntax: true,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue