github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/go/types/object.go (about) 1 // "go test -run=Generate -write=all" により生成されたコードです。編集しないでください。 2 3 // Copyright 2013 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 import ( 10 "github.com/shogo82148/std/go/constant" 11 "github.com/shogo82148/std/go/token" 12 ) 13 14 // Objectは、パッケージ、定数、型、変数、関数(メソッドを含む)、またはラベルなどの名前付きの言語エンティティを表します。 15 // すべてのオブジェクトはObjectインターフェースを実装しています。 16 type Object interface { 17 Parent() *Scope 18 Pos() token.Pos 19 Pkg() *Package 20 Name() string 21 Type() Type 22 Exported() bool 23 Id() string 24 25 String() string 26 27 order() uint32 28 29 color() color 30 31 setType(Type) 32 33 setOrder(uint32) 34 35 setColor(color color) 36 37 setParent(*Scope) 38 39 sameId(pkg *Package, name string, foldCase bool) bool 40 41 scopePos() token.Pos 42 43 setScopePos(pos token.Pos) 44 } 45 46 // Idが公開されていれば、そのままの名前を返します。それ以外の場合は、 47 // パッケージのパスで修飾された名前を返します。 48 func Id(pkg *Package, name string) string 49 50 // PkgNameはインポートされたGoパッケージを表します。 51 // PkgNameには型はありません。 52 type PkgName struct { 53 object 54 imported *Package 55 used bool 56 } 57 58 // NewPkgNameは、インポートされたパッケージを表す新しいPkgNameオブジェクトを返します。 59 // 残りの引数は、全てのオブジェクトで見つかった属性を設定します。 60 func NewPkgName(pos token.Pos, pkg *Package, name string, imported *Package) *PkgName 61 62 // Importedはインポートされたパッケージを返します。 63 // これはインポート文を含むパッケージとは異なります。 64 func (obj *PkgName) Imported() *Package 65 66 // Constは宣言された定数を表します。 67 type Const struct { 68 object 69 val constant.Value 70 } 71 72 // NewConstは値valを持つ新しい定数を返します。 73 // 残りの引数は、すべてのオブジェクトで見つかる属性を設定します。 74 func NewConst(pos token.Pos, pkg *Package, name string, typ Type, val constant.Value) *Const 75 76 // Valは定数の値を返します。 77 func (obj *Const) Val() constant.Value 78 79 // TypeNameは(定義済みまたはエイリアスの)型の名前を表します。 80 type TypeName struct { 81 object 82 } 83 84 // NewTypeNameは、与えられたtypを指定する新しい型名を返します。 85 // 残りの引数は、すべてのオブジェクトで見つかった属性を設定します。 86 // 87 // typ引数は、定義済み(Named)タイプまたはエイリアスタイプである場合も可能です。 88 // また、nilである場合も、TypeNameを引数として使用でき、 89 // 副作用としてTypeNameのタイプがNewNamedに設定されます。 90 func NewTypeName(pos token.Pos, pkg *Package, name string, typ Type) *TypeName 91 92 // IsAliasは、objが型のエイリアス名であるかどうかを報告します。 93 func (obj *TypeName) IsAlias() bool 94 95 type Var struct { 96 object 97 embedded bool 98 isField bool 99 used bool 100 origin *Var 101 } 102 103 // NewVarは新しい変数を返します。 104 // 引数はすべてのオブジェクトで見つかった属性を設定します。 105 func NewVar(pos token.Pos, pkg *Package, name string, typ Type) *Var 106 107 // NewParam は関数のパラメータを表す新しい変数を返します。 108 func NewParam(pos token.Pos, pkg *Package, name string, typ Type) *Var 109 110 // NewFieldは、構造体のフィールドを表す新しい変数を返します。 111 // 埋め込まれたフィールドの場合、名前はフィールドがアクセス可能な 112 // 非修飾の型名です。 113 func NewField(pos token.Pos, pkg *Package, name string, typ Type, embedded bool) *Var 114 115 // Anonymousは変数が埋め込まれたフィールドかどうかを示します。 116 // Embeddedと同様ですが、後方互換性のために存在します。 117 func (obj *Var) Anonymous() bool 118 119 // Embeddedは変数が埋め込まれたフィールドかどうかを示します。 120 func (obj *Var) Embedded() bool 121 122 // IsFieldは、変数が構造体のフィールドであるかどうかを報告します。 123 func (obj *Var) IsField() bool 124 125 // Originは、そのレシーバのための正規のVar、つまりInfo.Defsに記録されたVarオブジェクトを返します。 126 // 127 // インスタンス化中に作成された合成Var(型引数に依存する構造体フィールドや 128 // 関数パラメータなど)については、これはジェネリック(インスタンス化されていない)型上の 129 // 対応するVarになります。他のすべてのVarについて、Originはレシーバを返します。 130 func (obj *Var) Origin() *Var 131 132 // Funcは、宣言された関数、具体的なメソッド、または抽象(インターフェース)メソッドを表します。そのType()は常に*Signatureです。 133 // 抽象メソッドは、埋め込みにより多くのインターフェースに所属することがあります。 134 type Func struct { 135 object 136 hasPtrRecv_ bool 137 origin *Func 138 } 139 140 // NewFuncは与えられたシグネチャを持つ新しい関数を返します。これは関数の型を表します。 141 func NewFunc(pos token.Pos, pkg *Package, name string, sig *Signature) *Func 142 143 // FullNameは関数またはメソッドobjのパッケージ名またはレシーバー型名で修飾された名前を返します。 144 func (obj *Func) FullName() string 145 146 // Scopeは関数の本体ブロックのスコープを返します。 147 // 結果は、インポートされたまたはインスタンス化された関数やメソッドに対してはnilです 148 // (ただし、インスタンス化された関数にアクセスするメカニズムもありません)。 149 func (obj *Func) Scope() *Scope 150 151 // Originは、レシーバーの正確なFunc、つまりInfo.Defsに記録されたFuncオブジェクトを返します。 152 // インスタンス化中に作成された合成関数(具名型のメソッドや型引数に依存するインターフェースのメソッドなど)の場合、これはジェネリック(インスタンス化されていない)型の対応するFuncになります。その他のすべてのFuncに対して、Originはレシーバーを返します。 153 func (obj *Func) Origin() *Func 154 155 // Pkg returns the package to which the function belongs. 156 // 157 // The result is nil for methods of types in the Universe scope, 158 // like method Error of the error built-in interface type. 159 func (obj *Func) Pkg() *Package 160 161 // Labelは宣言されたラベルを表します。 162 // ラベルはタイプを持ちません。 163 type Label struct { 164 object 165 used bool 166 } 167 168 // NewLabel は新しいラベルを返します。 169 func NewLabel(pos token.Pos, pkg *Package, name string) *Label 170 171 // Builtinは組み込み関数を表します。 172 // 組み込み関数には有効な型はありません。 173 type Builtin struct { 174 object 175 id builtinId 176 } 177 178 // Nilは、事前宣言された値であるnilを表します。 179 type Nil struct { 180 object 181 } 182 183 // ObjectStringはobjの文字列形式を返します。 184 // Qualifierはパッケージレベルのオブジェクトの印刷を制御し、nilである可能性があります。 185 func ObjectString(obj Object, qf Qualifier) string 186 187 func (obj *PkgName) String() string 188 func (obj *Const) String() string 189 func (obj *TypeName) String() string 190 func (obj *Var) String() string 191 func (obj *Func) String() string 192 func (obj *Label) String() string 193 func (obj *Builtin) String() string 194 func (obj *Nil) String() string