aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2022-10-20 15:56:11 -0700
committerGopher Robot <gobot@golang.org>2022-10-25 20:28:23 +0000
commitb95ea201d54953055e7d5d29cf68bb5f19f21f93 (patch)
treeb52453ec04b24df06bd6955e6781cadf8e4d969d /src/cmd/compile
parent2dcc9acbd27902c9e551f54ca29d2519418b45c4 (diff)
downloadgo-b95ea201d54953055e7d5d29cf68bb5f19f21f93.tar.xz
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>
Diffstat (limited to 'src/cmd/compile')
-rw-r--r--src/cmd/compile/internal/base/flag.go3
-rw-r--r--src/cmd/compile/internal/noder/irgen.go5
2 files changed, 5 insertions, 3 deletions
diff --git a/src/cmd/compile/internal/base/flag.go b/src/cmd/compile/internal/base/flag.go
index 42273ea350..3e9d86c9bc 100644
--- a/src/cmd/compile/internal/base/flag.go
+++ b/src/cmd/compile/internal/base/flag.go
@@ -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 {
diff --git a/src/cmd/compile/internal/noder/irgen.go b/src/cmd/compile/internal/noder/irgen.go
index 57872bce27..4a15c626b9 100644
--- a/src/cmd/compile/internal/noder/irgen.go
+++ b/src/cmd/compile/internal/noder/irgen.go
@@ -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,