Index: tools/testing/dart/test_suite.dart |
diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart |
index 39a4844ed1e89febe94440d65f96d51b71e570b8..2e95a664bd2377dd58211a27d0d1bb1d808ad1a8 100644 |
--- a/tools/testing/dart/test_suite.dart |
+++ b/tools/testing/dart/test_suite.dart |
@@ -1572,13 +1572,38 @@ class StandardTestSuite extends TestSuite { |
subtestNames.add(fullMatch.substring(fullMatch.indexOf("'") + 1)); |
} |
+ // TODO(rnystrom): During the migration of the existing tests to Dart 2.0, |
+ // we have a number of tests that used to both generate static type warnings |
+ // and also validate some runtime behavior in an implementation that |
+ // ignores those warnings. Those warnings are now errors. The test code |
+ // validates the runtime behavior can and should be removed, but the code |
+ // that causes the static warning should still be preserved since that is |
+ // part of our coverage of the static type system. |
+ // |
+ // The test needs to indicate that it should have a static error. We could |
+ // put that in the status file, but that makes it confusing because it |
+ // would look like implementations that *don't* report the error are more |
+ // correct. Eventually, we want to have a notation similar to what front_end |
+ // is using for the inference tests where we can put a comment inside the |
+ // test that says "This specific static error should be reported right by |
+ // this token." |
+ // |
+ // That system isn't in place yet, so we do a crude approximation here in |
+ // test.dart. If a test contains `/*@compile-error=`, which matches the |
+ // beginning of the tag syntax that front_end uses, then we assume that |
+ // this test must have a static error somewhere in it. |
+ // |
+ // Redo this code once we have a more precise test framework for detecting |
+ // and locating these errors. |
+ var hasCompileError = contents.contains("/*@compile-error="); |
+ |
return { |
"vmOptions": result, |
"sharedOptions": sharedOptions ?? [], |
"dartOptions": dartOptions, |
"packageRoot": packageRoot, |
"packages": packages, |
- "hasCompileError": false, |
+ "hasCompileError": hasCompileError, |
"hasRuntimeError": false, |
"hasStaticWarning": false, |
"otherScripts": otherScripts, |