| Index: compiler/javatests/com/google/dart/compiler/type/TypeAnalyzerCompilerTest.java
|
| diff --git a/compiler/javatests/com/google/dart/compiler/type/TypeAnalyzerCompilerTest.java b/compiler/javatests/com/google/dart/compiler/type/TypeAnalyzerCompilerTest.java
|
| index cba5892d4dbcdcf5cdfad2494c178405a81e587a..e39ef928b92fdfc43ab5dcd21668b44052030de2 100644
|
| --- a/compiler/javatests/com/google/dart/compiler/type/TypeAnalyzerCompilerTest.java
|
| +++ b/compiler/javatests/com/google/dart/compiler/type/TypeAnalyzerCompilerTest.java
|
| @@ -1803,7 +1803,7 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| }
|
|
|
| public void test_typesPropagation_assignAtDeclaration() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "f() {",
|
| " var v0 = true;",
|
| " var v1 = true && false;",
|
| @@ -1830,47 +1830,50 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| // check each "v" type
|
| for (int i = 0; i < expectedList.size(); i++) {
|
| String expectedTypeString = expectedList.get(i);
|
| - assertInferredElementTypeString(libraryResult, "v" + i, expectedTypeString);
|
| + assertInferredElementTypeString(testUnit, "v" + i, expectedTypeString);
|
| }
|
| }
|
|
|
| public void test_typesPropagation_secondAssign_sameType() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f() {",
|
| " var v = true;",
|
| " v = false;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v", "bool");
|
| + assertInferredElementTypeString(testUnit, "v", "bool");
|
| }
|
|
|
| public void test_typesPropagation_secondAssign_differentType() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f() {",
|
| " var v = true;",
|
| " v = 0;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v", "<dynamic>");
|
| }
|
|
|
| /**
|
| * When we can not identify type of assigned value we should keep "Dynamic" as type of variable.
|
| */
|
| public void test_typesPropagation_assign_newUnknownType() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "// filler filler filler filler filler filler filler filler filler filler",
|
| "f() {",
|
| " var v1 = new Unknown();",
|
| " var v2 = new Unknown.name();",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "<dynamic>");
|
| - assertInferredElementTypeString(libraryResult, "v2", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v2", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_ifAsType() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " if ((v as String).length != 0) {",
|
| " var v1 = v;",
|
| @@ -1878,8 +1881,8 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v2 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "String");
|
| - assertInferredElementTypeString(libraryResult, "v2", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "String");
|
| + assertInferredElementTypeString(testUnit, "v2", "<dynamic>");
|
| }
|
|
|
| /**
|
| @@ -1887,7 +1890,8 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| * successful.
|
| */
|
| public void test_typesPropagation_ifAsType_negation() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " if (!(v as String).isEmpty()) {",
|
| " var v1 = v;",
|
| @@ -1895,12 +1899,12 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v2 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "String");
|
| - assertInferredElementTypeString(libraryResult, "v2", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "String");
|
| + assertInferredElementTypeString(testUnit, "v2", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_ifIsType() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "f(var v) {",
|
| " if (v is List<String>) {",
|
| " var v1 = v;",
|
| @@ -1911,16 +1915,16 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v3 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "List<String>");
|
| - assertInferredElementTypeString(libraryResult, "v2", "Map<int, String>");
|
| - assertInferredElementTypeString(libraryResult, "v3", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "List<String>");
|
| + assertInferredElementTypeString(testUnit, "v2", "Map<int, String>");
|
| + assertInferredElementTypeString(testUnit, "v3", "<dynamic>");
|
| }
|
|
|
| /**
|
| * We should not make variable type less specific, even if there is such (useless) user code.
|
| */
|
| public void test_typesPropagation_ifIsType_mostSpecific() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "f() {",
|
| " int a;",
|
| " num b;",
|
| @@ -1935,9 +1939,9 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " }",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "a1", "int");
|
| - assertInferredElementTypeString(libraryResult, "a2", "int");
|
| - assertInferredElementTypeString(libraryResult, "b1", "int");
|
| + assertInferredElementTypeString(testUnit, "a1", "int");
|
| + assertInferredElementTypeString(testUnit, "a2", "int");
|
| + assertInferredElementTypeString(testUnit, "b1", "int");
|
| }
|
|
|
| /**
|
| @@ -1945,18 +1949,19 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| * instead we fall back to "Dynamic".
|
| */
|
| public void test_typesPropagation_ifIsType_conflictingTypes() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(int v) {",
|
| " if (v is String) {",
|
| " var v1 = v;",
|
| " }",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_ifIsType_negation() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "f(var v) {",
|
| " if (v is! String) {",
|
| " var v1 = v;",
|
| @@ -1969,13 +1974,14 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " }",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "<dynamic>");
|
| - assertInferredElementTypeString(libraryResult, "v2", "<dynamic>");
|
| - assertInferredElementTypeString(libraryResult, "v3", "String");
|
| + assertInferredElementTypeString(testUnit, "v1", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v2", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v3", "String");
|
| }
|
|
|
| public void test_typesPropagation_ifIsType_and() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var a, var b) {",
|
| " if (a is String && b is List<String>) {",
|
| " var a1 = a;",
|
| @@ -1983,12 +1989,13 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " }",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "a1", "String");
|
| - assertInferredElementTypeString(libraryResult, "b1", "List<String>");
|
| + assertInferredElementTypeString(testUnit, "a1", "String");
|
| + assertInferredElementTypeString(testUnit, "b1", "List<String>");
|
| }
|
|
|
| public void test_typesPropagation_ifIsType_or() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " if (true || v is String) {",
|
| " var v1 = v;",
|
| @@ -1998,12 +2005,13 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " }",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "<dynamic>");
|
| - assertInferredElementTypeString(libraryResult, "v2", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v2", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_whileIsType() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " var v = null;",
|
| " while (v is String) {",
|
| @@ -2012,12 +2020,13 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v2 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "String");
|
| - assertInferredElementTypeString(libraryResult, "v2", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "String");
|
| + assertInferredElementTypeString(testUnit, "v2", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_forIsType() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " var v = null;",
|
| " for (; v is String; () {var v2 = v;} ()) {",
|
| @@ -2026,13 +2035,14 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v3 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "String");
|
| - assertInferredElementTypeString(libraryResult, "v2", "String");
|
| - assertInferredElementTypeString(libraryResult, "v3", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "String");
|
| + assertInferredElementTypeString(testUnit, "v2", "String");
|
| + assertInferredElementTypeString(testUnit, "v3", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_forEach() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " List<String> values = [];",
|
| " for (var v in values) {",
|
| @@ -2040,11 +2050,12 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " }",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "String");
|
| + assertInferredElementTypeString(testUnit, "v1", "String");
|
| }
|
|
|
| public void test_typesPropagation_ifIsNotType_withElse() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " if (v is! String) {",
|
| " var v1 = v;",
|
| @@ -2055,15 +2066,16 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| "}",
|
| "");
|
| // we don't know type, but not String
|
| - assertInferredElementTypeString(libraryResult, "v1", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "<dynamic>");
|
| // we know that String
|
| - assertInferredElementTypeString(libraryResult, "v2", "String");
|
| + assertInferredElementTypeString(testUnit, "v2", "String");
|
| // again, we don't know after "if"
|
| - assertInferredElementTypeString(libraryResult, "v3", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v3", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_ifIsNotType_hasThenReturn() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " var v1 = v;",
|
| " if (v is! String) {",
|
| @@ -2072,12 +2084,13 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v2 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "<dynamic>");
|
| - assertInferredElementTypeString(libraryResult, "v2", "String");
|
| + assertInferredElementTypeString(testUnit, "v1", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v2", "String");
|
| }
|
|
|
| public void test_typesPropagation_ifIsNotType_hasThenThrow() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " if (v is! String) {",
|
| " throw new Exception();",
|
| @@ -2085,22 +2098,24 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v1 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "String");
|
| + assertInferredElementTypeString(testUnit, "v1", "String");
|
| }
|
|
|
| public void test_typesPropagation_ifIsNotType_emptyThen() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " if (v is! String) {",
|
| " }",
|
| " var v1 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_ifIsNotType_otherThen() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " if (v is! String) {",
|
| " ;",
|
| @@ -2108,11 +2123,12 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v1 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_ifIsNotType_hasThenThrow_withCatch() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " try {",
|
| " if (v is! String) {",
|
| @@ -2123,11 +2139,12 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v1 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_ifIsNotType_or() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var p1, var p2) {",
|
| " if (p1 is! int || p2 is! String) {",
|
| " return;",
|
| @@ -2136,12 +2153,13 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v2 = p2;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "int");
|
| - assertInferredElementTypeString(libraryResult, "v2", "String");
|
| + assertInferredElementTypeString(testUnit, "v1", "int");
|
| + assertInferredElementTypeString(testUnit, "v2", "String");
|
| }
|
|
|
| public void test_typesPropagation_ifIsNotType_and() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " if (v is! String && true) {",
|
| " return;",
|
| @@ -2149,11 +2167,12 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v1 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_ifIsNotType_not() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " if (!(v is! String)) {",
|
| " return;",
|
| @@ -2161,11 +2180,12 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v1 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "<dynamic>");
|
| + assertInferredElementTypeString(testUnit, "v1", "<dynamic>");
|
| }
|
|
|
| public void test_typesPropagation_ifIsNotType_not2() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " if (!!(v is! String)) {",
|
| " return;",
|
| @@ -2173,11 +2193,12 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v1 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "String");
|
| + assertInferredElementTypeString(testUnit, "v1", "String");
|
| }
|
|
|
| public void test_typesPropagation_ifNotIsType() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| "f(var v) {",
|
| " if (!(v is String)) {",
|
| " return;",
|
| @@ -2185,11 +2206,11 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v1 = v;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "String");
|
| + assertInferredElementTypeString(testUnit, "v1", "String");
|
| }
|
|
|
| public void test_typesPropagation_field_inClass() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "// filler filler filler filler filler filler filler filler filler filler",
|
| "class A {",
|
| " var v1 = 123;",
|
| @@ -2197,25 +2218,25 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v3 = 1 + 2.0;",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "int");
|
| - assertInferredElementTypeString(libraryResult, "v2", "double");
|
| - assertInferredElementTypeString(libraryResult, "v3", "double");
|
| + assertInferredElementTypeString(testUnit, "v1", "int");
|
| + assertInferredElementTypeString(testUnit, "v2", "double");
|
| + assertInferredElementTypeString(testUnit, "v3", "double");
|
| }
|
|
|
| public void test_typesPropagation_field_topLevel() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "// filler filler filler filler filler filler filler filler filler filler",
|
| "var v1 = 123;",
|
| "var v2 = Math.random();",
|
| "var v3 = 1 + 2.0;",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "int");
|
| - assertInferredElementTypeString(libraryResult, "v2", "double");
|
| - assertInferredElementTypeString(libraryResult, "v3", "double");
|
| + assertInferredElementTypeString(testUnit, "v1", "int");
|
| + assertInferredElementTypeString(testUnit, "v2", "double");
|
| + assertInferredElementTypeString(testUnit, "v3", "double");
|
| }
|
|
|
| public void test_typesPropagation_FunctionAliasType() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "// filler filler filler filler filler filler filler filler filler filler",
|
| "typedef F();",
|
| "foo(F f) {",
|
| @@ -2224,7 +2245,7 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| "}",
|
| "",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v", "F");
|
| + assertInferredElementTypeString(testUnit, "v", "F");
|
| }
|
|
|
| /**
|
| @@ -2236,7 +2257,7 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| * http://code.google.com/p/dart/issues/detail?id=3712
|
| */
|
| public void test_typesPropagation_parameterOfClosure_invocationNormalParameter() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "// filler filler filler filler filler filler filler filler filler filler",
|
| "class Event {}",
|
| "typedef void EventListener(Event event);",
|
| @@ -2248,7 +2269,7 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " });",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v", "Event");
|
| + assertInferredElementTypeString(testUnit, "v", "Event");
|
| }
|
|
|
| /**
|
| @@ -2256,7 +2277,7 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| * http://code.google.com/p/dart/issues/detail?id=3712
|
| */
|
| public void test_typesPropagation_parameterOfClosure_invocationNamedPositionalParameter() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "// filler filler filler filler filler filler filler filler filler filler",
|
| "class Event {}",
|
| "typedef void EventListener(Event event);",
|
| @@ -2268,7 +2289,7 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " });",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v", "Event");
|
| + assertInferredElementTypeString(testUnit, "v", "Event");
|
| }
|
|
|
| /**
|
| @@ -2276,7 +2297,7 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| * http://code.google.com/p/dart/issues/detail?id=3712
|
| */
|
| public void test_typesPropagation_parameterOfClosure_invocationNamedParameter() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "// filler filler filler filler filler filler filler filler filler filler",
|
| "class Event {}",
|
| "typedef void EventListener(Event event);",
|
| @@ -2288,14 +2309,14 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " });",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v", "Event");
|
| + assertInferredElementTypeString(testUnit, "v", "Event");
|
| }
|
|
|
| /**
|
| * http://code.google.com/p/dart/issues/detail?id=3712
|
| */
|
| public void test_typesPropagation_parameterOfClosure_invocationOfMethod() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "// filler filler filler filler filler filler filler filler filler filler",
|
| "class Event {}",
|
| "typedef void EventListener(Event event);",
|
| @@ -2310,7 +2331,7 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " });",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v", "Event");
|
| + assertInferredElementTypeString(testUnit, "v", "Event");
|
| }
|
|
|
| /**
|
| @@ -2318,7 +2339,7 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| * without using {@link FunctionAliasType}.
|
| */
|
| public void test_typesPropagation_parameterOfClosure_functionType() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "// filler filler filler filler filler filler filler filler filler filler",
|
| "class Event {}",
|
| "class Button<T> {",
|
| @@ -2332,11 +2353,11 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " });",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v", "Event");
|
| + assertInferredElementTypeString(testUnit, "v", "Event");
|
| }
|
|
|
| public void test_getType_binaryExpression() throws Exception {
|
| - AnalyzeLibraryResult libraryResult = analyzeLibrary(
|
| + analyzeLibrary(
|
| "f(var arg) {",
|
| " var v1 = 1 + 2;",
|
| " var v2 = 1 - 2;",
|
| @@ -2357,23 +2378,23 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| " var v17 = arg as int",
|
| "}",
|
| "");
|
| - assertInferredElementTypeString(libraryResult, "v1", "int");
|
| - assertInferredElementTypeString(libraryResult, "v2", "int");
|
| - assertInferredElementTypeString(libraryResult, "v3", "int");
|
| - assertInferredElementTypeString(libraryResult, "v4", "int");
|
| - assertInferredElementTypeString(libraryResult, "v5", "int");
|
| - assertInferredElementTypeString(libraryResult, "v6", "double");
|
| - assertInferredElementTypeString(libraryResult, "v7", "double");
|
| - assertInferredElementTypeString(libraryResult, "v8", "double");
|
| - assertInferredElementTypeString(libraryResult, "v9", "double");
|
| - assertInferredElementTypeString(libraryResult, "v10", "double");
|
| - assertInferredElementTypeString(libraryResult, "v11", "double");
|
| - assertInferredElementTypeString(libraryResult, "v12", "double");
|
| - assertInferredElementTypeString(libraryResult, "v13", "double");
|
| - assertInferredElementTypeString(libraryResult, "v14", "double");
|
| - assertInferredElementTypeString(libraryResult, "v15", "double");
|
| - assertInferredElementTypeString(libraryResult, "v16", "double");
|
| - assertInferredElementTypeString(libraryResult, "v17", "int");
|
| + assertInferredElementTypeString(testUnit, "v1", "int");
|
| + assertInferredElementTypeString(testUnit, "v2", "int");
|
| + assertInferredElementTypeString(testUnit, "v3", "int");
|
| + assertInferredElementTypeString(testUnit, "v4", "int");
|
| + assertInferredElementTypeString(testUnit, "v5", "int");
|
| + assertInferredElementTypeString(testUnit, "v6", "double");
|
| + assertInferredElementTypeString(testUnit, "v7", "double");
|
| + assertInferredElementTypeString(testUnit, "v8", "double");
|
| + assertInferredElementTypeString(testUnit, "v9", "double");
|
| + assertInferredElementTypeString(testUnit, "v10", "double");
|
| + assertInferredElementTypeString(testUnit, "v11", "double");
|
| + assertInferredElementTypeString(testUnit, "v12", "double");
|
| + assertInferredElementTypeString(testUnit, "v13", "double");
|
| + assertInferredElementTypeString(testUnit, "v14", "double");
|
| + assertInferredElementTypeString(testUnit, "v15", "double");
|
| + assertInferredElementTypeString(testUnit, "v16", "double");
|
| + assertInferredElementTypeString(testUnit, "v17", "int");
|
| }
|
|
|
| /**
|
| @@ -2426,8 +2447,8 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| "}",
|
| "");
|
| assertErrors(libraryResult.getErrors());
|
| - assertInferredElementTypeString(libraryResult, "v1", "int");
|
| - assertInferredElementTypeString(libraryResult, "v2", "bool");
|
| + assertInferredElementTypeString(testUnit, "v1", "int");
|
| + assertInferredElementTypeString(testUnit, "v2", "bool");
|
| }
|
|
|
| public void test_getType_getterInNegation_generic() throws Exception {
|
| @@ -2451,8 +2472,8 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| "}",
|
| "");
|
| assertErrors(libraryResult.getErrors());
|
| - assertInferredElementTypeString(libraryResult, "v1", "bool");
|
| - assertInferredElementTypeString(libraryResult, "v2", "bool");
|
| + assertInferredElementTypeString(testUnit, "v1", "bool");
|
| + assertInferredElementTypeString(testUnit, "v2", "bool");
|
| }
|
|
|
| public void test_getType_getterInSwitch_default() throws Exception {
|
| @@ -2509,44 +2530,6 @@ public class TypeAnalyzerCompilerTest extends CompilerTestCase {
|
| }
|
|
|
| /**
|
| - * Asserts that {@link Element} with given name has expected type.
|
| - */
|
| - private void assertInferredElementTypeString(
|
| - AnalyzeLibraryResult libraryResult,
|
| - String variableName,
|
| - String expectedType) {
|
| - // find element
|
| - Element element = getNamedElement(libraryResult, variableName);
|
| - assertNotNull(element);
|
| - // check type
|
| - Type actualType = element.getType();
|
| - assertEquals(element.getName(), expectedType, actualType.toString());
|
| - // should be inferred
|
| - if (TypeKind.of(actualType) != TypeKind.DYNAMIC) {
|
| - assertTrue("Should be marked as inferred", actualType.isInferred());
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * @return the {@link Element} with given name, may be <code>null</code>.
|
| - */
|
| - private Element getNamedElement(AnalyzeLibraryResult libraryResult, final String name) {
|
| - DartUnit unit = libraryResult.getLibraryUnitResult().getUnit(getName());
|
| - final Element[] result = {null};
|
| - unit.accept(new ASTVisitor<Void>() {
|
| - @Override
|
| - public Void visitIdentifier(DartIdentifier node) {
|
| - Element element = node.getElement();
|
| - if (element != null && element.getName().equals(name)) {
|
| - result[0] = element;
|
| - }
|
| - return super.visitIdentifier(node);
|
| - }
|
| - });
|
| - return result[0];
|
| - }
|
| -
|
| - /**
|
| * <p>
|
| * http://code.google.com/p/dart/issues/detail?id=3272
|
| */
|
|
|