英語版
このページの英語版を見る
dmd.sideeffect
表現の副作用を見つける。
Authors:
License:
出典 sideeffect.d
- bool
isTrivialExp
(Expressione
); - フロントエンドの式書き換えは、次のような目的で、些細でない部分式のために一時変数を作成する必要がある。 を作成する必要がある:
- 評価順序を保存する
- ASTでの部分式の共有を防ぐ。
- bool
hasSideEffect
(Expressione
, boolassumeImpureCalls
= false); - 式に副作用があるかどうかを判断する。Parameters:
Expression e
式に副作用があるかどうかを判定する。 bool assumeImpureCalls
関数呼び出しが常に不純であると仮定するかどうか。 を常に不純であると仮定すべきかどうか(例えば、デバッグが不純であることを許容する)。 - int
callSideEffectLevel
(FuncDeclarationf
); - fの呼び出し、あるいは関数型やデリゲート型t1に副作用があるかどうかを判定する。Returns:0 副作用がある 1 nothrow + 強く純粋である。 2 nothrow + 強く純粋 + 返り値の不変間接のみ 型」である。
- bool
discardValue
(Expressione
); - この式の結果は破棄される。 演算に副作用がない(つまり意味がない)場合はエラーメッセージを表示する。Returns:式に副作用がない場合はtrueを返す。
- VarDeclaration
copyToTemp
(StorageClassstc
, const char[]name
, Expressione
); - eの値をコピーする一時変数を作成する。Parameters:
StorageClass stc
作成された一時変数にはストレージ・クラスが追加される。 char[] name
一時変数の名前 Expression e
元の式 Returns:新しく作られた一時変数。 - Expression
extractSideEffect
(Scope*sc
, const char[]name
, ref Expressione0
, Expressione
, boolalwaysCopy
= false); - eがトリビアルでない場合、eの評価を抽出するための一時変数を構築する。Parameters:
Scope* sc
スコープ char[] name
一時変数の名前 Expression e0
には、新しい副作用部分が付加される。 Expression e
オリジナル式 bool alwaysCopy
がtrueの場合、eが些細なものであっても新しい一時変数を作る。 Returns:e がトリビアルで alwaysCopy == false の場合、e 自身が返される。 そうでない場合は、新しい VarExp が返される。注釈 eのl値性はSTC.ref_またはSTC.r値によってうまく処理される。
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku