aboutsummaryrefslogtreecommitdiff
path: root/internal/gcimporter/support_go118.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/gcimporter/support_go118.go')
-rw-r--r--internal/gcimporter/support_go118.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/internal/gcimporter/support_go118.go b/internal/gcimporter/support_go118.go
new file mode 100644
index 000000000..edbe6ea70
--- /dev/null
+++ b/internal/gcimporter/support_go118.go
@@ -0,0 +1,37 @@
+// Copyright 2021 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build go1.18
+// +build go1.18
+
+package gcimporter
+
+import "go/types"
+
+const iexportVersion = iexportVersionGenerics
+
+// additionalPredeclared returns additional predeclared types in go.1.18.
+func additionalPredeclared() []types.Type {
+ return []types.Type{
+ // comparable
+ types.Universe.Lookup("comparable").Type(),
+
+ // any
+ types.Universe.Lookup("any").Type(),
+ }
+}
+
+// See cmd/compile/internal/types.SplitVargenSuffix.
+func splitVargenSuffix(name string) (base, suffix string) {
+ i := len(name)
+ for i > 0 && name[i-1] >= '0' && name[i-1] <= '9' {
+ i--
+ }
+ const dot = "ยท"
+ if i >= len(dot) && name[i-len(dot):i] == dot {
+ i -= len(dot)
+ return name[:i], name[i:]
+ }
+ return name, ""
+}