| // 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, "" | 
 | } |