英語版
このページの英語版を見る
dmd.typesem
D型の意味解析。
Authors:
License:
出典 typesem.d
- bool
isCopyable(Typet); - t 型がコピー可能かどうかを判定する。Parameters:
Type tチェックする型 Returns:コピー可能なら真 - int
mutabilityOfType(boolisref, Typet); - (ref)tの間接法の変更可能性を判断する。Returns:型に変更可能な間接表現がある場合は0を返す。 すべての間接関数が不変の場合、2を返す。 そうでない場合、const/inout間接関数を持つ型は1を返す。Parameters:
bool isref真ならば ref tそうでなければtType tをチェックする。 - void
purityLevel(TypeFunctiontypeFunction); - typeFunction'の'purity'フィールドを設定する。 パラメータ型が前方参照される可能性があるため、このようなことは怠ること。
- Expression
typeToExpression(Typet); - 我々は間違って
tを型として解析してしまった。 やり直すt型修飾子がない場合のみ、式としてやり直す。Parameters:Type t誤った型 Returns:tはExpressionとしてやり直される。 - bool
checkComplexTransition(Typetype, const ref Locloc, Scope*sc); - https://issues.dlang.org/show_bug.cgi?id=14488 最も内側の基本型が複素数か虚数かをチェックする。 トランジショナル・メッセージを出すように設定されている場合のみ、警告を出すようにする。Parameters:
Type typeチェックする型 Loc locソースの位置。 Scope* sc型のスコープ。 - MATCH
callMatch(TypeFunctiontf, Typetthis, ArgumentListargumentList, intflag= 0, void delegate(const(char)*) scopeerrorHelper= null, Scope*sc= null); - args "が"tf"関数型にマッチしている。 マッチレベルを決定する。Parameters:
TypeFunction tf関数型 Type tthisthis ポインタの型、メンバ関数でない場合はNULL。 ArgumentList argumentList関数呼び出しの引数。 int flag1: 部分的な順序照合を行う void delegate(const(char)*) scope errorHelperエラーメッセージのために呼び出されるデリゲート Scope* scコンテキスト Returns:MATCHxxxx - bool
hasPointers(Typet); - 型がコレクションサイクル中にGCによってスキャンされる必要があるポインタを持つ場合、!=0を返す。 を返す。
- Type
typeSemantic(Typetype, const ref Locloc, Scope*sc); - 型のセマンティック解析を行う。Parameters:
Type type型ASTノード Loc loc型の位置。 Scope* scコンテキスト Returns:Type 意味解析が完了した状態で、 。 に遭遇した場合Terror - Type
merge(Typetype); - と同一の型が
typeと同じ型がtype.stringtableにある場合は を返す。そうでなければ、それをtype.stringtable. いくつかの型はマージされず、そのまま返される。Parameters:Type type既存の型と照合する型 Returns:マージされた型 - Type
merge2(Typetype); - このバージョンは、デコがすでに計算されていてもマージを行う。 デコを持つがマージされない型に必要である。
- Expression
getProperty(Typet, Scope*scope_, const ref Locloc, Identifierident, intflag, Expressionsrc= null); - 型だけが必要な組み込みプロパティを計算する。Parameters:
Type tプロパティが計算される"@型 Scope* scope_プロパティがアクセスされるスコープ。可視性のチェックにのみ使用される。 Loc locプロパティが出現する場所。 Identifier identプロパティの識別子。 int flagflag & 1の場合、"not a property"エラーは報告せず、単にNULLを返す。 Expression src"型"の式。 tまたはNULLを返す。Returns:プロパティを表す式、またはプロパティでない場合はNULLを返す。 - void
resolve(Typemt, const ref Locloc, Scope*sc, out Expressionpe, out Typept, out Dsymbolps, boolintypeid= false); - 型'mt'を型、シンボル、式のいずれかに解決する。 エラーが発生した場合は、Type.terrorに解決する。Parameters:
Type mt解決される型 Loc loc型に遭遇した場所 Scope* sc型のスコープ Expression peがセットされる。 Type ptがセットされる。 Dsymbol pstがシンボルの場合に設定される bool intypeid型idの場合はtrueがセットされる。 - Expression
dotExp(Typemt, Scope*sc, Expressione, Identifierident, DotExpFlagflag); - この型はe.typeと同じである。Parameters:
Type mtドット式が使われる型である。 Scope* scスコープのインスタンス化 Expression e変換する式 Identifier ident使用される識別子 DotExpFlag flagDotExpFlagビットフラグ Returns:e.identが解決された結果の式 - Expression
defaultInit(Typemt, const ref Locloc, const boolisCfile= false); - 型のデフォルトの初期化式を取得する。Parameters:
Type mtinit式が返される型。 Loc loc式が評価される必要がある場所。 bool isCfileデフォルトの初期化子は、Cとは異なる Returns:型の初期化式。 - Type
addStorageClass(Typetype, StorageClassstc); - 型にストレージクラス修飾子を追加する。
- Type
getComplexLibraryType(const ref Locloc, Scope*sc, TYty); - core.stdc.configから複合型を取り出す。Parameters:
Loc locエラーメッセージ用 Scope* scコンテキスト TY ty複合型または虚数型 Returns:Complex!float、Complex!double、Complex!real、またはエラーの場合はnullを指定する。 - Covariant
covariant(Typesrc, Typet, StorageClass*pstc= null, boolcppCovariant= false); - 共変数とは、'src'が't'を代替できることを意味する、 すなわち、純粋な関数は純粋でない関数にマッチする。Parameters:
Type srcソース型 Type t型'src'が共変である。 StorageClass* pstcもしnullでなければ、STCxxxxを格納する。 bool cppCovariantextern(C++)関数型がC++の共変ルールに従う必要がある場合はtrueを指定する。 Returns:Covariant.yes 、または共変でない理由のいずれかの列挙型値。 - StorageClass
parameterStorageClass(TypeFunctiontf, Typetthis, Parameterp, VarDeclarations*outerVars= null, boolindirect= false); - p.に指定されたストレージ・クラスを取る、 に指定されたストレージ・クラスを取り、関数のシグネチャを使用して、次のように推測する。 STC.scope_とSTC.return_がORされるべきかどうかを推測する。 (これは名前のマングリングには影響しない)。Parameters:
TypeFunction tfシグネチャを取得するために使用するTypeFunction Type tthisthis "型"。パラメータがない場合はNULLとなる。 Parameter pこの関数のパラメータ。 VarDeclarations* outerVarsもしあれば、pがエスケープできるコンテキスト変数 bool indirectこれは間接関数呼び出しか仮想関数呼び出しか? Returns:STC.scope_またはSTC.return_がORされたストレージクラス。 - Type
constOf(Typetype); - const'に変換する。
- Type
immutableOf(Typetype); - immutable'に変換する。
- Type
mutableOf(Typetype); - 型を "変更可能"にする。
- Type
unSharedOf(Typetype); - 型を非共有にする。 0 => 0 const => const immutable(不変) => immutable(不変 共有 => 0 共有 const => const wild => wild ワイルドコンスト => ワイルドコンスト 共有ワイルド => ワイルド 共有野生 const => 野生 const
- Type
wildOf(Typetype); - wild'に変換する。
- Type
toHeadMutable(const Typet); - 最上位が変更可能な型を返す。Parameters:
Type tトップレベルが変更可能な型を返す。 Returns:トップ・レベルが変更可能な型のバージョン - Type
castMod(Typetype, MODmod); - MODxxxxビットを既存の型に適用する。
- Type
addMod(Typetype, MODmod); - 既存の型にMODxxxxビットを追加する。 置き換えるのではなく、追加する。 を追加する。
- bool
isRecursiveAliasThis(ref Typeatt, Typet); - もし't'が再帰的な'alias this'型であれば、'att'をチェックして設定する。この目的は、alias thisチェーンにサイクルがある場合に、無限ループを防ぐことである。 複数のalias this は存在しないので、チェーンはリーフで終わる、 あるいは、ある時点でループして戻ってくる。
例: s0 -> (s1 -> s2 -> s3 -> s1)
S0 は再帰的エイリアス this ではないので、これはfalse を返し、S1 への書き換えを試すことができる。 S1 は再帰的エイリアス this 型である。attはnull に初期化される、 はまだfalse を返すが、att1 はS1 に設定される。 S2 とS3 への書き換えは試せるが、S1 への書き換えをもう一度試したいと思ったとき、次のことに気づく、 ということに気づく。att==tループの最初に戻り、true が返される。Parameters:Type att再帰を検出するための型参照。null に初期化する必要がある。 Type tこのエイリアスの'型'を書き換える。 Returns:false 書き換えが安全であれば、 。true
Copyright © 1999-2025 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
サイト全体のドキュメントのdmdのバージョン: 2.109.1
最新のdmdのバージョン: 2.111.0 ダウンロード
翻訳日付:
HTML生成日時:
編集者: dokutoku