github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/go/types/alias.go (about)

     1  // Code generated by "go test -run=Generate -write=all"; DO NOT EDIT.
     2  
     3  // Copyright 2023 The Go Authors. All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  package types
     8  
     9  // Aliasは、エイリアス型を表します。
    10  // エイリアス型が作成されるかどうかは、
    11  // GODEBUG環境変数のgotypesalias設定によって制御されます。
    12  // gotypesalias=1の場合、エイリアス宣言はエイリアス型を生成します。
    13  // それ以外の場合、エイリアス情報は型名にのみ存在し、
    14  // 実際の(エイリアスされた)型を直接指します。
    15  type Alias struct {
    16  	obj     *TypeName
    17  	tparams *TypeParamList
    18  	fromRHS Type
    19  	actual  Type
    20  }
    21  
    22  // NewAliasは、指定された型名とrhsを持つ新しいAlias型を作成します。
    23  // rhsはnilであってはなりません。
    24  func NewAlias(obj *TypeName, rhs Type) *Alias
    25  
    26  func (a *Alias) Obj() *TypeName
    27  func (a *Alias) Underlying() Type
    28  func (a *Alias) String() string
    29  
    30  // Unaliasは、tがエイリアス型でない場合はtを返し、
    31  // それ以外の場合はtのエイリアスチェーンを追跡して
    32  // エイリアスでない型に到達すると、その型を返します。
    33  // その結果、返される結果は決してエイリアス型ではありません。
    34  func Unalias(t Type) Type