| 1 | // Copyright 2021 The Go Authors. All rights reserved. |
|---|---|
| 2 | // Use of this source code is governed by a BSD-style |
| 3 | // license that can be found in the LICENSE file. |
| 4 | |
| 5 | //go:build go1.18 |
| 6 | // +build go1.18 |
| 7 | |
| 8 | package gcimporter |
| 9 | |
| 10 | import "go/types" |
| 11 | |
| 12 | const iexportVersion = iexportVersionGenerics |
| 13 | |
| 14 | // additionalPredeclared returns additional predeclared types in go.1.18. |
| 15 | func additionalPredeclared() []types.Type { |
| 16 | return []types.Type{ |
| 17 | // comparable |
| 18 | types.Universe.Lookup("comparable").Type(), |
| 19 | |
| 20 | // any |
| 21 | types.Universe.Lookup("any").Type(), |
| 22 | } |
| 23 | } |
| 24 | |
| 25 | // See cmd/compile/internal/types.SplitVargenSuffix. |
| 26 | func splitVargenSuffix(name string) (base, suffix string) { |
| 27 | i := len(name) |
| 28 | for i > 0 && name[i-1] >= '0' && name[i-1] <= '9' { |
| 29 | i-- |
| 30 | } |
| 31 | const dot = "ยท" |
| 32 | if i >= len(dot) && name[i-len(dot):i] == dot { |
| 33 | i -= len(dot) |
| 34 | return name[:i], name[i:] |
| 35 | } |
| 36 | return name, "" |
| 37 | } |
| 38 |
Members