2016-07-11 13 views
2

コード契約の「静的チェック」オプションには、「外部APIに楽観的」というオプションがあります。。私はこのオプションが何をしているのかに関するドキュメンテーションを見つけることができません。分析計の動作にどのような影響を及ぼしますか?「外部APIで楽観的」オプションは何をしますか?

答えて

1

実際にこのオプションに関するドキュメントはありません。ソースを参照すると、いくつかの手掛かりが得られます。 Options.csでは、これはブールlowScoreForExternalにリンク:WarningScoresManagerで、これは初期化時に使用されている

[OptionDescription("Be optimistic on external API? 
        We will assign proof obligations depending on that a low score")] 
[DoNotHashInCache] 
public bool lowScoreForExternal = true; 

は、外部アセンブリ内の余分な情報のために割り当てられたスコアを設定します。このオプションをオンにすると、フレームワークアセンブリに適用されている別のアセンブリを参照する場合、同じスコアが適用されます。そうでない場合、非常に高いペナルティが適用されます。

private void InitializeDefaultValuesForContextsOfCalleeAssumeCanDischarge 
    (bool lowScoreForExternalAPI) 
{ 
    // ... 
ScoreCalleeAssumeExtraInfoDeclaredInAFrameworkAssembly = .05; 
ScoreCalleeAssumeExtraInfoDeclaredInADifferentAssembly = lowScoreForExternalAPI ? 
     ScoreCalleeAssumeExtraInfoDeclaredInAFrameworkAssembly : 100.0; 

この設定を使用すると、フレームワークアセンブリに与えられるように、外部のアセンブリのコードの品質に関する信頼の同様のレベルを想定して解析を強制することを思われます。

これはコンストラクタ内のWarningScoresManagerに渡され、他の場所では使用されないこの変数の唯一の使用方法です。

関連する問題