我无法理解Dart编辑器在考虑代码死机时如何评估表达式

时间:2014-02-08 09:52:50

标签: dart code-analysis dart-editor

此源代码在Dart编辑器中生成警告。 Dead code

1)

if(false) {
}

但是这个也计算为false的常量表达式不会产生警告。

2)

if("hello" is int) {
}

3)

if(false || false) {
}

4)

if(false == true) {
}

5)

if(0 > 0) {
}

在这些情况下,编辑如何帮助我?

你可能会认为我的所有例子都不是来自现实生活。

但我也可以认为这段代码不是来自现实生活。

if(false) {
}

那么,仅#1案例的支持以及案例#2,#3,#4,#5以及所有其他案例的支持缺乏如何帮助我在Dart编辑器中找到死代码?

P.S。

当然,这是Dart编辑器的一个很棒的功能,我不想淡化她的用处,但我仍然想知道:“这是否有可能使它变得更有用,更有用了?”。

1 个答案:

答案 0 :(得分:3)

通常,不可能证明代码“死”,因为它需要在编译时运行代码,并且该代码可能有大量运行时间或永远不会终止。

所以他们必须在某处绘制一条线,看起来他们已经决定使用简单的true / false值,但是在编译时不会评估任何更复杂的值。你可能会问他们在哪里划线,并且认为简单的表达式可以被有效地评估,但是因为通常不可能证明代码已经死了,所以他们必须在某个地方做出决定......