| // Copyright 2024 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.22 |
| // +build !go1.22 |
| |
| package aliases |
| |
| import ( |
| "go/types" |
| ) |
| |
| // Alias is a placeholder for a go/types.Alias for <=1.21. |
| // It will never be created by go/types. |
| type Alias struct{} |
| |
| func (*Alias) String() string { panic("unreachable") } |
| func (*Alias) Underlying() types.Type { panic("unreachable") } |
| func (*Alias) Obj() *types.TypeName { panic("unreachable") } |
| func Rhs(alias *Alias) types.Type { panic("unreachable") } |
| func TypeParams(alias *Alias) *types.TypeParamList { panic("unreachable") } |
| |
| // Unalias returns the type t for go <=1.21. |
| func Unalias(t types.Type) types.Type { return t } |
| |
| func newAlias(name *types.TypeName, rhs types.Type) *Alias { panic("unreachable") } |
| |
| // Enabled reports whether [NewAlias] should create [types.Alias] types. |
| // |
| // Before go1.22, this function always returns false. |
| func Enabled() bool { return false } |