2014-01-22 30 views
2

這個小程序在飛鏢編輯器中生成此警告。飛鏢編輯器中的非常奇怪的警告。我可以以某種方式禁用它們嗎?

這只是示例,而不是真實的代碼。但真正的代碼是相似的(並且更大)。

void main() { 
    var what_I_if_not_want_compile_to_js; 
    var so_what = what_I_if_not_want_compile_to_js is double; 
} 

警告:

附言:「當編譯爲JS,這個測試可能會在左手邊是一個int返回true」

沒問題。但是在我的一個程序中,我有22條這樣的警告(在「Problems」視圖中)。

我可以以某種方式禁用它們嗎?

我無法避免這個測試。這裏是來自真實程序的代碼。 >提示並取消選中「啓用dart2js相關提示」複選框 -

dynamic _cast(value) { 
    if(value is double) { 
    value = value.toInt(); 
    } 

    if(value is int) { 
    if(value >= -2147483648 && value <= 2147483647) { 
     return value; 
    } 

    value &= 0xffffffff; 
    return value <= 2147483647 ? value : value - 0x100000000; 
    } else if(value is CData && value.type is ReferenceType) { 
    return _cast(value._address); 
    } else { 
    return super._cast(value); 
    } 
} 
+0

我不知道有什麼辦法來壓制警告。但是,你可以不用'if(value是num)'來代替嗎? 'toInt()'也可以在那裏使用。 – MarioP

+0

@MarioP這個測試'if(value是num)'添加了不必要的開銷,因爲它對'int'的計算結果爲'true'。所以,'intValue.toInt()'並不嚴重。我無法理解以下內容:有了這個警告,Dart開發者想要說他們不推薦使用這個測試,即使代碼永遠不會被編譯成Javascript?或者他們想要說每個Dart代碼都必須用Javascript編譯?我開始使用舊代碼工作,並對此警告感到非常驚訝。 – mezoni

+0

的確如此,但我猜這是性能與維護的關係。無論如何,這是一個有爭議的問題,因爲似乎有解決辦法。但是至於爲什麼這個警告被實現了:我的猜測是基本思路是在開發時警告更好,而不是獲得生產後很難追查的錯誤。畢竟,這個久已知道的bug有很多bug報告。 – MarioP

回答

4

您可以通過工具 - >首選項關閉在DART編輯器相關的提示dart2js。

也有計劃允許手動禁止某些警告。您可以關注the issue

相關問題