Index: pkg/analyzer_experimental/test/generated/resolver_test.dart |
diff --git a/pkg/analyzer_experimental/test/generated/resolver_test.dart b/pkg/analyzer_experimental/test/generated/resolver_test.dart |
deleted file mode 100644 |
index e816778bd03209fdd705f7e7203ef645bcb59405..0000000000000000000000000000000000000000 |
--- a/pkg/analyzer_experimental/test/generated/resolver_test.dart |
+++ /dev/null |
@@ -1,20004 +0,0 @@ |
-// This code was auto-generated, is not intended to be edited, and is subject to |
-// significant change. Please see the README file for more information. |
-library engine.resolver_test; |
-import 'package:analyzer_experimental/src/generated/java_core.dart'; |
-import 'package:analyzer_experimental/src/generated/java_junit.dart'; |
-import 'package:analyzer_experimental/src/generated/source_io.dart'; |
-import 'package:analyzer_experimental/src/generated/error.dart'; |
-import 'package:analyzer_experimental/src/generated/scanner.dart'; |
-import 'package:analyzer_experimental/src/generated/ast.dart'; |
-import 'package:analyzer_experimental/src/generated/parser.dart' show ParserErrorCode; |
-import 'package:analyzer_experimental/src/generated/element.dart'; |
-import 'package:analyzer_experimental/src/generated/resolver.dart'; |
-import 'package:analyzer_experimental/src/generated/engine.dart'; |
-import 'package:analyzer_experimental/src/generated/java_engine_io.dart'; |
-import 'package:analyzer_experimental/src/generated/sdk.dart' show DartSdk; |
-import 'package:analyzer_experimental/src/generated/sdk_io.dart' show DirectoryBasedDartSdk; |
-import 'package:unittest/unittest.dart' as _ut; |
-import 'test_support.dart'; |
-import 'ast_test.dart' show ASTFactory; |
-import 'element_test.dart' show ElementFactory; |
-class TypePropagationTest extends ResolverTestCase { |
- void fail_functionExpression_asInvocationArgument_functionExpressionInvocation() { |
- String code = EngineTestCase.createSource([ |
- "main() {", |
- " (f(String value)) {} ((v) {", |
- " v;", |
- " });", |
- "}"]); |
- Source source = addSource(code); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- Type2 dynamicType = typeProvider.dynamicType; |
- Type2 stringType = typeProvider.stringType; |
- FormalParameter vParameter = EngineTestCase.findNode(unit, code, "v)", FormalParameter); |
- JUnitTestCase.assertSame(stringType, vParameter.identifier.propagatedType); |
- JUnitTestCase.assertSame(dynamicType, vParameter.identifier.staticType); |
- SimpleIdentifier vIdentifier = EngineTestCase.findNode(unit, code, "v;", SimpleIdentifier); |
- JUnitTestCase.assertSame(stringType, vIdentifier.propagatedType); |
- JUnitTestCase.assertSame(dynamicType, vIdentifier.staticType); |
- } |
- void fail_propagatedReturnType_functionExpression() { |
- String code = EngineTestCase.createSource(["main() {", " var v = (() {return 42;})();", "}"]); |
- check_propagatedReturnType(code, typeProvider.dynamicType, typeProvider.intType); |
- } |
- void test_as() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " bool get g => true;", |
- "}", |
- "A f(var p) {", |
- " if ((p as A).g) {", |
- " return p;", |
- " } else {", |
- " return null;", |
- " }", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- IfStatement ifStatement = body.block.statements[0] as IfStatement; |
- ReturnStatement statement = ((ifStatement.thenStatement as Block)).statements[0] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_assert() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " assert (p is A);", |
- " return p;", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[1] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_assignment() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var v;", " v = 0;", " return v;", "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[2] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeProvider.intType, variableName.propagatedType); |
- } |
- void test_assignment_afterInitializer() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var v = 0;", " v = 1.0;", " return v;", "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[2] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeProvider.doubleType, variableName.propagatedType); |
- } |
- void test_forEach() { |
- String code = EngineTestCase.createSource([ |
- "f(List<String> p) {", |
- " for (var e in p) {", |
- " e;", |
- " }", |
- "}"]); |
- Source source = addSource(code); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- InterfaceType stringType = typeProvider.stringType; |
- { |
- SimpleIdentifier identifier = EngineTestCase.findNode(unit, code, "e in", SimpleIdentifier); |
- JUnitTestCase.assertSame(stringType, identifier.propagatedType); |
- } |
- { |
- SimpleIdentifier identifier = EngineTestCase.findNode(unit, code, "e;", SimpleIdentifier); |
- JUnitTestCase.assertSame(stringType, identifier.propagatedType); |
- } |
- } |
- void test_functionExpression_asInvocationArgument() { |
- String code = EngineTestCase.createSource([ |
- "class MyMap<K, V> {", |
- " forEach(f(K key, V value)) {}", |
- "}", |
- "f(MyMap<int, String> m) {", |
- " m.forEach((k, v) {", |
- " k;", |
- " v;", |
- " });", |
- "}"]); |
- Source source = addSource(code); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- Type2 intType = typeProvider.intType; |
- FormalParameter kParameter = EngineTestCase.findNode(unit, code, "k, ", SimpleFormalParameter); |
- JUnitTestCase.assertSame(intType, kParameter.identifier.propagatedType); |
- SimpleIdentifier kIdentifier = EngineTestCase.findNode(unit, code, "k;", SimpleIdentifier); |
- JUnitTestCase.assertSame(intType, kIdentifier.propagatedType); |
- JUnitTestCase.assertSame(typeProvider.dynamicType, kIdentifier.staticType); |
- Type2 stringType = typeProvider.stringType; |
- FormalParameter vParameter = EngineTestCase.findNode(unit, code, "v)", SimpleFormalParameter); |
- JUnitTestCase.assertSame(stringType, vParameter.identifier.propagatedType); |
- SimpleIdentifier vIdentifier = EngineTestCase.findNode(unit, code, "v;", SimpleIdentifier); |
- JUnitTestCase.assertSame(stringType, vIdentifier.propagatedType); |
- JUnitTestCase.assertSame(typeProvider.dynamicType, vIdentifier.staticType); |
- } |
- void test_functionExpression_asInvocationArgument_fromInferredInvocation() { |
- String code = EngineTestCase.createSource([ |
- "class MyMap<K, V> {", |
- " forEach(f(K key, V value)) {}", |
- "}", |
- "f(MyMap<int, String> m) {", |
- " var m2 = m;", |
- " m2.forEach((k, v) {});", |
- "}"]); |
- Source source = addSource(code); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- Type2 intType = typeProvider.intType; |
- FormalParameter kParameter = EngineTestCase.findNode(unit, code, "k, ", SimpleFormalParameter); |
- JUnitTestCase.assertSame(intType, kParameter.identifier.propagatedType); |
- Type2 stringType = typeProvider.stringType; |
- FormalParameter vParameter = EngineTestCase.findNode(unit, code, "v)", SimpleFormalParameter); |
- JUnitTestCase.assertSame(stringType, vParameter.identifier.propagatedType); |
- } |
- void test_functionExpression_asInvocationArgument_keepIfLessSpecific() { |
- String code = EngineTestCase.createSource([ |
- "class MyList {", |
- " forEach(f(Object value)) {}", |
- "}", |
- "f(MyList list) {", |
- " list.forEach((int v) {", |
- " v;", |
- " });", |
- "}"]); |
- Source source = addSource(code); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- Type2 intType = typeProvider.intType; |
- FormalParameter vParameter = EngineTestCase.findNode(unit, code, "v)", SimpleFormalParameter); |
- JUnitTestCase.assertSame(null, vParameter.identifier.propagatedType); |
- JUnitTestCase.assertSame(intType, vParameter.identifier.staticType); |
- SimpleIdentifier vIdentifier = EngineTestCase.findNode(unit, code, "v;", SimpleIdentifier); |
- JUnitTestCase.assertSame(intType, vIdentifier.staticType); |
- JUnitTestCase.assertSame(null, vIdentifier.propagatedType); |
- } |
- void test_functionExpression_asInvocationArgument_replaceIfMoreSpecific() { |
- String code = EngineTestCase.createSource([ |
- "class MyList<E> {", |
- " forEach(f(E value)) {}", |
- "}", |
- "f(MyList<String> list) {", |
- " list.forEach((Object v) {", |
- " v;", |
- " });", |
- "}"]); |
- Source source = addSource(code); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- Type2 stringType = typeProvider.stringType; |
- FormalParameter vParameter = EngineTestCase.findNode(unit, code, "v)", SimpleFormalParameter); |
- JUnitTestCase.assertSame(stringType, vParameter.identifier.propagatedType); |
- JUnitTestCase.assertSame(typeProvider.objectType, vParameter.identifier.staticType); |
- SimpleIdentifier vIdentifier = EngineTestCase.findNode(unit, code, "v;", SimpleIdentifier); |
- JUnitTestCase.assertSame(stringType, vIdentifier.propagatedType); |
- } |
- void test_Future_then() { |
- String code = EngineTestCase.createSource([ |
- "import 'dart:async';", |
- "main(Future<int> firstFuture) {", |
- " firstFuture.then((p1) {", |
- " return 1.0;", |
- " }).then((p2) {", |
- " return new Future<String>.value('str');", |
- " }).then((p3) {", |
- " });", |
- "}"]); |
- Source source = addSource(code); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FormalParameter p1 = EngineTestCase.findNode(unit, code, "p1) {", SimpleFormalParameter); |
- JUnitTestCase.assertSame(typeProvider.intType, p1.identifier.propagatedType); |
- FormalParameter p2 = EngineTestCase.findNode(unit, code, "p2) {", SimpleFormalParameter); |
- JUnitTestCase.assertSame(typeProvider.doubleType, p2.identifier.propagatedType); |
- FormalParameter p3 = EngineTestCase.findNode(unit, code, "p3) {", SimpleFormalParameter); |
- JUnitTestCase.assertSame(typeProvider.stringType, p3.identifier.propagatedType); |
- } |
- void test_initializer() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var v = 0;", " return v;", "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- NodeList<Statement> statements = body.block.statements; |
- { |
- VariableDeclarationStatement statement = statements[0] as VariableDeclarationStatement; |
- SimpleIdentifier variableName = statement.variables.variables[0].name; |
- JUnitTestCase.assertSame(typeProvider.dynamicType, variableName.staticType); |
- JUnitTestCase.assertSame(typeProvider.intType, variableName.propagatedType); |
- } |
- { |
- ReturnStatement statement = statements[1] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeProvider.intType, variableName.propagatedType); |
- } |
- } |
- void test_initializer_dereference() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var v = 'String';", " v.", "}"])); |
- LibraryElement library = resolve(source); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ExpressionStatement statement = body.block.statements[1] as ExpressionStatement; |
- PrefixedIdentifier invocation = statement.expression as PrefixedIdentifier; |
- SimpleIdentifier variableName = invocation.prefix; |
- JUnitTestCase.assertSame(typeProvider.stringType, variableName.propagatedType); |
- } |
- void test_is_conditional() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " return (p is A) ? p : null;", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[0] as ReturnStatement; |
- ConditionalExpression conditional = statement.expression as ConditionalExpression; |
- SimpleIdentifier variableName = conditional.thenExpression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_is_if() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " if (p is A) {", |
- " return p;", |
- " } else {", |
- " return null;", |
- " }", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- IfStatement ifStatement = body.block.statements[0] as IfStatement; |
- ReturnStatement statement = ((ifStatement.thenStatement as Block)).statements[0] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_is_if_lessSpecific() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(A p) {", |
- " if (p is String) {", |
- " return p;", |
- " } else {", |
- " return null;", |
- " }", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- IfStatement ifStatement = body.block.statements[0] as IfStatement; |
- ReturnStatement statement = ((ifStatement.thenStatement as Block)).statements[0] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(null, variableName.propagatedType); |
- } |
- void test_is_if_logicalAnd() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " if (p is A && p != null) {", |
- " return p;", |
- " } else {", |
- " return null;", |
- " }", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- IfStatement ifStatement = body.block.statements[0] as IfStatement; |
- ReturnStatement statement = ((ifStatement.thenStatement as Block)).statements[0] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_is_postConditional() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " A a = (p is A) ? p : throw null;", |
- " return p;", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[1] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_is_postIf() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " if (p is A) {", |
- " A a = p;", |
- " } else {", |
- " return null;", |
- " }", |
- " return p;", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[1] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_is_subclass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " B m() => this;", |
- "}", |
- "A f(A p) {", |
- " if (p is B) {", |
- " return p.m();", |
- " }", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FunctionDeclaration function = unit.declarations[2] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- IfStatement ifStatement = body.block.statements[0] as IfStatement; |
- ReturnStatement statement = ((ifStatement.thenStatement as Block)).statements[0] as ReturnStatement; |
- MethodInvocation invocation = statement.expression as MethodInvocation; |
- JUnitTestCase.assertNotNull(invocation.methodName.propagatedElement); |
- } |
- void test_is_while() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " while (p is A) {", |
- " return p;", |
- " }", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- WhileStatement whileStatement = body.block.statements[0] as WhileStatement; |
- ReturnStatement statement = ((whileStatement.body as Block)).statements[0] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_isNot_conditional() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " return (p is! A) ? null : p;", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[0] as ReturnStatement; |
- ConditionalExpression conditional = statement.expression as ConditionalExpression; |
- SimpleIdentifier variableName = conditional.elseExpression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_isNot_if() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " if (p is! A) {", |
- " return null;", |
- " } else {", |
- " return p;", |
- " }", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- IfStatement ifStatement = body.block.statements[0] as IfStatement; |
- ReturnStatement statement = ((ifStatement.elseStatement as Block)).statements[0] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_isNot_if_logicalOr() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " if (p is! A || null == p) {", |
- " return null;", |
- " } else {", |
- " return p;", |
- " }", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- IfStatement ifStatement = body.block.statements[0] as IfStatement; |
- ReturnStatement statement = ((ifStatement.elseStatement as Block)).statements[0] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_isNot_postConditional() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " A a = (p is! A) ? throw null : p;", |
- " return p;", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[1] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_isNot_postIf() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "A f(var p) {", |
- " if (p is! A) {", |
- " return null;", |
- " }", |
- " return p;", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- ClassDeclaration classA = unit.declarations[0] as ClassDeclaration; |
- InterfaceType typeA = classA.element.type; |
- FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[1] as ReturnStatement; |
- SimpleIdentifier variableName = statement.expression as SimpleIdentifier; |
- JUnitTestCase.assertSame(typeA, variableName.propagatedType); |
- } |
- void test_listLiteral_different() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var v = [0, '1', 2];", " return v[2];", "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[1] as ReturnStatement; |
- IndexExpression indexExpression = statement.expression as IndexExpression; |
- JUnitTestCase.assertNull(indexExpression.propagatedType); |
- } |
- void test_listLiteral_same() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var v = [0, 1, 2];", " return v[2];", "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[1] as ReturnStatement; |
- IndexExpression indexExpression = statement.expression as IndexExpression; |
- JUnitTestCase.assertSame(typeProvider.intType, indexExpression.propagatedType); |
- } |
- void test_mapLiteral_different() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " var v = {'0' : 0, 1 : '1', '2' : 2};", |
- " return v;", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[1] as ReturnStatement; |
- SimpleIdentifier identifier = statement.expression as SimpleIdentifier; |
- InterfaceType propagatedType = identifier.propagatedType as InterfaceType; |
- JUnitTestCase.assertSame(typeProvider.mapType.element, propagatedType.element); |
- List<Type2> typeArguments = propagatedType.typeArguments; |
- EngineTestCase.assertLength(2, typeArguments); |
- JUnitTestCase.assertSame(typeProvider.dynamicType, typeArguments[0]); |
- JUnitTestCase.assertSame(typeProvider.dynamicType, typeArguments[1]); |
- } |
- void test_mapLiteral_same() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " var v = {'a' : 0, 'b' : 1, 'c' : 2};", |
- " return v;", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration; |
- BlockFunctionBody body = function.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[1] as ReturnStatement; |
- SimpleIdentifier identifier = statement.expression as SimpleIdentifier; |
- InterfaceType propagatedType = identifier.propagatedType as InterfaceType; |
- JUnitTestCase.assertSame(typeProvider.mapType.element, propagatedType.element); |
- List<Type2> typeArguments = propagatedType.typeArguments; |
- EngineTestCase.assertLength(2, typeArguments); |
- JUnitTestCase.assertSame(typeProvider.stringType, typeArguments[0]); |
- JUnitTestCase.assertSame(typeProvider.intType, typeArguments[1]); |
- } |
- void test_propagatedReturnType_function_hasReturnType_returnsNull() { |
- String code = EngineTestCase.createSource(["String f() => null;", "main() {", " var v = f();", "}"]); |
- check_propagatedReturnType(code, typeProvider.dynamicType, typeProvider.stringType); |
- } |
- void test_propagatedReturnType_function_lessSpecificStaticReturnType() { |
- String code = EngineTestCase.createSource(["Object f() => 42;", "main() {", " var v = f();", "}"]); |
- check_propagatedReturnType(code, typeProvider.dynamicType, typeProvider.intType); |
- } |
- void test_propagatedReturnType_function_moreSpecificStaticReturnType() { |
- String code = EngineTestCase.createSource([ |
- "int f(v) => (v as num);", |
- "main() {", |
- " var v = f(3);", |
- "}"]); |
- check_propagatedReturnType(code, typeProvider.dynamicType, typeProvider.intType); |
- } |
- void test_propagatedReturnType_function_noReturnTypeName_blockBody_multipleReturns() { |
- String code = EngineTestCase.createSource([ |
- "f() {", |
- " if (true) return 0;", |
- " return 1.0;", |
- "}", |
- "main() {", |
- " var v = f();", |
- "}"]); |
- check_propagatedReturnType(code, typeProvider.dynamicType, typeProvider.numType); |
- } |
- void test_propagatedReturnType_function_noReturnTypeName_blockBody_oneReturn() { |
- String code = EngineTestCase.createSource([ |
- "f() {", |
- " var z = 42;", |
- " return z;", |
- "}", |
- "main() {", |
- " var v = f();", |
- "}"]); |
- check_propagatedReturnType(code, typeProvider.dynamicType, typeProvider.intType); |
- } |
- void test_propagatedReturnType_function_noReturnTypeName_expressionBody() { |
- String code = EngineTestCase.createSource(["f() => 42;", "main() {", " var v = f();", "}"]); |
- check_propagatedReturnType(code, typeProvider.dynamicType, typeProvider.intType); |
- } |
- void test_propagatedReturnType_localFunction() { |
- String code = EngineTestCase.createSource(["main() {", " f() => 42;", " var v = f();", "}"]); |
- check_propagatedReturnType(code, typeProvider.dynamicType, typeProvider.intType); |
- } |
- void test_query() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'dart:html';", |
- "", |
- "main() {", |
- " var v1 = query('a');", |
- " var v2 = query('A');", |
- " var v3 = query('body:active');", |
- " var v4 = query('button[foo=\"bar\"]');", |
- " var v5 = query('div.class');", |
- " var v6 = query('input#id');", |
- " var v7 = query('select#id');", |
- " // invocation of method", |
- " var m1 = document.query('div');", |
- " // unsupported currently", |
- " var b1 = query('noSuchTag');", |
- " var b2 = query('DART_EDITOR_NO_SUCH_TYPE');", |
- " var b3 = query('body div');", |
- " return [v1, v2, v3, v4, v5, v6, v7, m1, b1, b2, b3];", |
- "}"])); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- FunctionDeclaration main = unit.declarations[0] as FunctionDeclaration; |
- BlockFunctionBody body = main.functionExpression.body as BlockFunctionBody; |
- ReturnStatement statement = body.block.statements[11] as ReturnStatement; |
- NodeList<Expression> elements = ((statement.expression as ListLiteral)).elements; |
- JUnitTestCase.assertEquals("AnchorElement", elements[0].propagatedType.name); |
- JUnitTestCase.assertEquals("AnchorElement", elements[1].propagatedType.name); |
- JUnitTestCase.assertEquals("BodyElement", elements[2].propagatedType.name); |
- JUnitTestCase.assertEquals("ButtonElement", elements[3].propagatedType.name); |
- JUnitTestCase.assertEquals("DivElement", elements[4].propagatedType.name); |
- JUnitTestCase.assertEquals("InputElement", elements[5].propagatedType.name); |
- JUnitTestCase.assertEquals("SelectElement", elements[6].propagatedType.name); |
- JUnitTestCase.assertEquals("DivElement", elements[7].propagatedType.name); |
- JUnitTestCase.assertEquals("Element", elements[8].propagatedType.name); |
- JUnitTestCase.assertEquals("Element", elements[9].propagatedType.name); |
- JUnitTestCase.assertEquals("Element", elements[10].propagatedType.name); |
- } |
- |
- /** |
- * @param code the code that assigns the value to the variable "v", no matter how. We check that |
- * "v" has expected static and propagated type. |
- */ |
- void check_propagatedReturnType(String code, Type2 expectedStaticType, Type2 expectedPropagatedType) { |
- Source source = addSource(code); |
- LibraryElement library = resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- SimpleIdentifier identifier = EngineTestCase.findNode(unit, code, "v = ", SimpleIdentifier); |
- JUnitTestCase.assertSame(expectedStaticType, identifier.staticType); |
- JUnitTestCase.assertSame(expectedPropagatedType, identifier.propagatedType); |
- } |
- static dartSuite() { |
- _ut.group('TypePropagationTest', () { |
- _ut.test('test_Future_then', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_Future_then); |
- }); |
- _ut.test('test_as', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_as); |
- }); |
- _ut.test('test_assert', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_assert); |
- }); |
- _ut.test('test_assignment', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_assignment); |
- }); |
- _ut.test('test_assignment_afterInitializer', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_assignment_afterInitializer); |
- }); |
- _ut.test('test_forEach', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_forEach); |
- }); |
- _ut.test('test_functionExpression_asInvocationArgument', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_functionExpression_asInvocationArgument); |
- }); |
- _ut.test('test_functionExpression_asInvocationArgument_fromInferredInvocation', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_functionExpression_asInvocationArgument_fromInferredInvocation); |
- }); |
- _ut.test('test_functionExpression_asInvocationArgument_keepIfLessSpecific', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_functionExpression_asInvocationArgument_keepIfLessSpecific); |
- }); |
- _ut.test('test_functionExpression_asInvocationArgument_replaceIfMoreSpecific', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_functionExpression_asInvocationArgument_replaceIfMoreSpecific); |
- }); |
- _ut.test('test_initializer', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_initializer); |
- }); |
- _ut.test('test_initializer_dereference', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_initializer_dereference); |
- }); |
- _ut.test('test_isNot_conditional', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_isNot_conditional); |
- }); |
- _ut.test('test_isNot_if', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_isNot_if); |
- }); |
- _ut.test('test_isNot_if_logicalOr', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_isNot_if_logicalOr); |
- }); |
- _ut.test('test_isNot_postConditional', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_isNot_postConditional); |
- }); |
- _ut.test('test_isNot_postIf', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_isNot_postIf); |
- }); |
- _ut.test('test_is_conditional', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_is_conditional); |
- }); |
- _ut.test('test_is_if', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_is_if); |
- }); |
- _ut.test('test_is_if_lessSpecific', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_is_if_lessSpecific); |
- }); |
- _ut.test('test_is_if_logicalAnd', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_is_if_logicalAnd); |
- }); |
- _ut.test('test_is_postConditional', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_is_postConditional); |
- }); |
- _ut.test('test_is_postIf', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_is_postIf); |
- }); |
- _ut.test('test_is_subclass', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_is_subclass); |
- }); |
- _ut.test('test_is_while', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_is_while); |
- }); |
- _ut.test('test_listLiteral_different', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_listLiteral_different); |
- }); |
- _ut.test('test_listLiteral_same', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_listLiteral_same); |
- }); |
- _ut.test('test_mapLiteral_different', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_mapLiteral_different); |
- }); |
- _ut.test('test_mapLiteral_same', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_mapLiteral_same); |
- }); |
- _ut.test('test_propagatedReturnType_function_hasReturnType_returnsNull', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_propagatedReturnType_function_hasReturnType_returnsNull); |
- }); |
- _ut.test('test_propagatedReturnType_function_lessSpecificStaticReturnType', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_propagatedReturnType_function_lessSpecificStaticReturnType); |
- }); |
- _ut.test('test_propagatedReturnType_function_moreSpecificStaticReturnType', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_propagatedReturnType_function_moreSpecificStaticReturnType); |
- }); |
- _ut.test('test_propagatedReturnType_function_noReturnTypeName_blockBody_multipleReturns', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_propagatedReturnType_function_noReturnTypeName_blockBody_multipleReturns); |
- }); |
- _ut.test('test_propagatedReturnType_function_noReturnTypeName_blockBody_oneReturn', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_propagatedReturnType_function_noReturnTypeName_blockBody_oneReturn); |
- }); |
- _ut.test('test_propagatedReturnType_function_noReturnTypeName_expressionBody', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_propagatedReturnType_function_noReturnTypeName_expressionBody); |
- }); |
- _ut.test('test_propagatedReturnType_localFunction', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_propagatedReturnType_localFunction); |
- }); |
- _ut.test('test_query', () { |
- final __test = new TypePropagationTest(); |
- runJUnitTest(__test, __test.test_query); |
- }); |
- }); |
- } |
-} |
-class NonErrorResolverTest extends ResolverTestCase { |
- void test_ambiguousExport() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "export 'lib1.dart';", |
- "export 'lib2.dart';"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class M {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_ambiguousExport_combinators_hide() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "export 'lib1.dart';", |
- "export 'lib2.dart' hide B;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library L1;", "class A {}", "class B {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library L2;", "class B {}", "class C {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_ambiguousExport_combinators_show() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "export 'lib1.dart';", |
- "export 'lib2.dart' show C;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library L1;", "class A {}", "class B {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library L2;", "class B {}", "class C {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_argumentDefinitionTestNonParameter_formalParameter() { |
- Source source = addSource(EngineTestCase.createSource(["f(var v) {", " return ?v;", "}"])); |
- resolve(source); |
- assertErrors(source, [ParserErrorCode.DEPRECATED_ARGUMENT_DEFINITION_TEST]); |
- verify([source]); |
- } |
- void test_argumentDefinitionTestNonParameter_namedParameter() { |
- Source source = addSource(EngineTestCase.createSource(["f({var v : 0}) {", " return ?v;", "}"])); |
- resolve(source); |
- assertErrors(source, [ParserErrorCode.DEPRECATED_ARGUMENT_DEFINITION_TEST]); |
- verify([source]); |
- } |
- void test_argumentDefinitionTestNonParameter_optionalParameter() { |
- Source source = addSource(EngineTestCase.createSource(["f([var v]) {", " return ?v;", "}"])); |
- resolve(source); |
- assertErrors(source, [ParserErrorCode.DEPRECATED_ARGUMENT_DEFINITION_TEST]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_classWithCall_Function() { |
- Source source = addSource(EngineTestCase.createSource([ |
- " caller(Function callee) {", |
- " callee();", |
- " }", |
- "", |
- " class CallMeBack {", |
- " call() => 0;", |
- " }", |
- "", |
- " main() {", |
- " caller(new CallMeBack());", |
- " }"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_fieldFormalParameterElement_member() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class ObjectSink<T> {", |
- " void sink(T object) {", |
- " new TimestampedObject<T>(object);", |
- " }", |
- "}", |
- "class TimestampedObject<E> {", |
- " E object2;", |
- " TimestampedObject(this.object2);", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_functionParameter_generic() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<K> {", |
- " m(f(K k), K v) {", |
- " f(v);", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_typedef_generic() { |
- Source source = addSource(EngineTestCase.createSource(["typedef A<T>(T p);", "f(A<int> a) {", " a(1);", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_Object_Function() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main() {", |
- " process(() {});", |
- "}", |
- "process(Object x) {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_typedef_local() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "typedef A(int p1, String p2);", |
- "A getA() => null;", |
- "f() {", |
- " A a = getA();", |
- " a(1, '2');", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_typedef_parameter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "typedef A(int p1, String p2);", |
- "f(A a) {", |
- " a(1, '2');", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_assignmentToFinal_prefixNegate() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " final x = 0;", " -x;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_assignmentToFinals_importWithPrefix() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library lib;", |
- "import 'lib1.dart' as foo;", |
- "main() {", |
- " foo.x = true;", |
- "}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "bool x = false;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_breakWithoutLabelInSwitch() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void m(int i) {", |
- " switch (i) {", |
- " case 0:", |
- " break;", |
- " }", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_builtInIdentifierAsType_dynamic() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " dynamic x;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_caseBlockNotTerminated() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(int p) {", |
- " for (int i = 0; i < 10; i++) {", |
- " switch (p) {", |
- " case 0:", |
- " break;", |
- " case 1:", |
- " continue;", |
- " case 2:", |
- " return;", |
- " case 3:", |
- " throw new Object();", |
- " case 4:", |
- " case 5:", |
- " return;", |
- " case 6:", |
- " default:", |
- " return;", |
- " }", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_caseBlockNotTerminated_lastCase() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(int p) {", |
- " switch (p) {", |
- " case 0:", |
- " p = p + 1;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_caseExpressionTypeImplementsEquals_int() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(int i) {", |
- " switch(i) {", |
- " case(1) : return 1;", |
- " default: return 0;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_caseExpressionTypeImplementsEquals_Object() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class IntWrapper {", |
- " final int value;", |
- " const IntWrapper(this.value);", |
- "}", |
- "", |
- "f(IntWrapper intWrapper) {", |
- " switch(intWrapper) {", |
- " case(const IntWrapper(1)) : return 1;", |
- " default: return 0;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_caseExpressionTypeImplementsEquals_String() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(String s) {", |
- " switch(s) {", |
- " case('1') : return 1;", |
- " default: return 0;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_concreteClassWithAbstractMember() { |
- Source source = addSource(EngineTestCase.createSource(["abstract class A {", " m();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_conflictingInstanceGetterAndSuperclassMember_instance() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " get v => 0;", |
- "}", |
- "class B extends A {", |
- " get v => 1;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_conflictingStaticGetterAndInstanceSetter_thisClass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static get x => 0;", |
- " static set x(int p) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_conflictingStaticSetterAndInstanceMember_thisClass_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static x() {}", |
- " static set x(int p) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constConstructorWithNonConstSuper_redirectingFactory() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A();", |
- "}", |
- "class B implements C {", |
- " const B();", |
- "}", |
- "class C extends A {", |
- " const factory C() = B;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constConstructorWithNonFinalField_finalInstanceVar() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final int x = 0;", " const A();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constConstructorWithNonFinalField_mixin() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " a() {}", |
- "}", |
- "class B extends Object with A {", |
- " const B();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constConstructorWithNonFinalField_static() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " static int x;", " const A();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constConstructorWithNonFinalField_syntheticField() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- " set x(value) {}", |
- " get x {return 0;}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constEval_propertyExtraction_fieldStatic_targetType() { |
- addSource2("/math.dart", EngineTestCase.createSource(["library math;", "const PI = 3.14;"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'math.dart' as math;", "const C = math.PI;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constEval_propertyExtraction_methodStatic_targetType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- " static m() {}", |
- "}", |
- "const C = A.m;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constEval_symbol() { |
- addSource2("/math.dart", EngineTestCase.createSource(["library math;", "const PI = 3.14;"])); |
- Source source = addSource(EngineTestCase.createSource(["const C = #foo;", "foo() {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constEvalTypeBoolNumString_equal() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- "}", |
- "class B {", |
- " final v;", |
- " const B.a1(bool p) : v = p == true;", |
- " const B.a2(bool p) : v = p == false;", |
- " const B.a3(bool p) : v = p == 0;", |
- " const B.a4(bool p) : v = p == 0.0;", |
- " const B.a5(bool p) : v = p == '';", |
- " const B.b1(int p) : v = p == true;", |
- " const B.b2(int p) : v = p == false;", |
- " const B.b3(int p) : v = p == 0;", |
- " const B.b4(int p) : v = p == 0.0;", |
- " const B.b5(int p) : v = p == '';", |
- " const B.c1(String p) : v = p == true;", |
- " const B.c2(String p) : v = p == false;", |
- " const B.c3(String p) : v = p == 0;", |
- " const B.c4(String p) : v = p == 0.0;", |
- " const B.c5(String p) : v = p == '';", |
- " const B.n1(num p) : v = p == null;", |
- " const B.n2(num p) : v = null == p;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_constEvalTypeBoolNumString_notEqual() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- "}", |
- "class B {", |
- " final v;", |
- " const B.a1(bool p) : v = p != true;", |
- " const B.a2(bool p) : v = p != false;", |
- " const B.a3(bool p) : v = p != 0;", |
- " const B.a4(bool p) : v = p != 0.0;", |
- " const B.a5(bool p) : v = p != '';", |
- " const B.b1(int p) : v = p != true;", |
- " const B.b2(int p) : v = p != false;", |
- " const B.b3(int p) : v = p != 0;", |
- " const B.b4(int p) : v = p != 0.0;", |
- " const B.b5(int p) : v = p != '';", |
- " const B.c1(String p) : v = p != true;", |
- " const B.c2(String p) : v = p != false;", |
- " const B.c3(String p) : v = p != 0;", |
- " const B.c4(String p) : v = p != 0.0;", |
- " const B.c5(String p) : v = p != '';", |
- " const B.n1(num p) : v = p != null;", |
- " const B.n2(num p) : v = null != p;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constNotInitialized_field() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " static const int x = 0;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constNotInitialized_local() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " const int x = 0;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constructorDeclaration_scope_signature() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "const app = 0;", |
- "class A {", |
- " A(@app int app) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constWithNonConstantArgument_literals() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A(a, b, c, d);", |
- "}", |
- "f() { return const A(true, 0, 1.0, '2'); }"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constWithTypeParameters_direct() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<T> {", |
- " static const V = const A<int>();", |
- " const A();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constWithUndefinedConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A.name();", |
- "}", |
- "f() {", |
- " return const A.name();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_constWithUndefinedConstructorDefault() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- "}", |
- "f() {", |
- " return const A();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_defaultValueInFunctionTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource(["typedef F([x]);"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_defaultValueInFunctionTypedParameter_named() { |
- Source source = addSource(EngineTestCase.createSource(["f(g({p})) {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_defaultValueInFunctionTypedParameter_optional() { |
- Source source = addSource(EngineTestCase.createSource(["f(g([p])) {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_duplicateDefinition_emptyName() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "Map _globalMap = {", |
- " 'a' : () {},", |
- " 'b' : () {}", |
- "};"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_duplicateDefinition_getter() { |
- Source source = addSource(EngineTestCase.createSource(["bool get a => true;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_dynamicIdentifier() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " var v = dynamic;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_expectedOneListTypeArgument() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " <int> [];", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_expectedTwoMapTypeArguments() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " <int, int> {};", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_exportOfNonLibrary_libraryDeclared() { |
- Source source = addSource(EngineTestCase.createSource(["library L;", "export 'lib1.dart';"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_exportOfNonLibrary_libraryNotDeclared() { |
- Source source = addSource(EngineTestCase.createSource(["library L;", "export 'lib1.dart';"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource([""])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_extraPositionalArguments_function() { |
- Source source = addSource(EngineTestCase.createSource(["f(p1, p2) {}", "main() {", " f(1, 2);", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_extraPositionalArguments_Function() { |
- Source source = addSource(EngineTestCase.createSource(["f(Function a) {", " a(1, 2);", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_extraPositionalArguments_typedef_local() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "typedef A(p1, p2);", |
- "A getA() => null;", |
- "f() {", |
- " A a = getA();", |
- " a(1, 2);", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_extraPositionalArguments_typedef_parameter() { |
- Source source = addSource(EngineTestCase.createSource(["typedef A(p1, p2);", "f(A a) {", " a(1, 2);", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_fieldInitializedByMultipleInitializers() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int x;", |
- " int y;", |
- " A() : x = 0, y = 0 {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_fieldInitializedInInitializerAndDeclaration_fieldNotFinal() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x = 0;", " A() : x = 1 {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_fieldInitializedInInitializerAndDeclaration_finalFieldNotSet() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final int x;", " A() : x = 1 {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_fieldInitializerOutsideConstructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " A(this.x) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_fieldInitializerOutsideConstructor_defaultParameters() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " A([this.x]) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_fieldInitializerRedirectingConstructor_super() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A() {}", |
- "}", |
- "class B extends A {", |
- " int x;", |
- " B(this.x) : super();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_finalInitializedInDeclarationAndConstructor_initializer() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final x;", " A() : x = 1 {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_finalInitializedInDeclarationAndConstructor_initializingFormal() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final x;", " A(this.x) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_finalNotInitialized_atDeclaration() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final int x = 0;", " A() {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_finalNotInitialized_fieldFormal() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final int x = 0;", " A() {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_finalNotInitialized_functionTypedFieldFormal() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final Function x;", |
- " A(int this.x(int p)) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_finalNotInitialized_hasNativeClause_hasConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A native 'something' {", |
- " final int x;", |
- " A() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ParserErrorCode.NATIVE_CLAUSE_IN_NON_SDK_CODE]); |
- verify([source]); |
- } |
- void test_finalNotInitialized_hasNativeClause_noConstructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A native 'something' {", " final int x;", "}"])); |
- resolve(source); |
- assertErrors(source, [ParserErrorCode.NATIVE_CLAUSE_IN_NON_SDK_CODE]); |
- verify([source]); |
- } |
- void test_finalNotInitialized_initializer() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final int x;", " A() : x = 0 {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_finalNotInitialized_redirectingConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final int x;", |
- " A(this.x);", |
- " A.named() : this (42);", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_functionDeclaration_scope_returnType() { |
- Source source = addSource(EngineTestCase.createSource(["int f(int) {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_functionDeclaration_scope_signature() { |
- Source source = addSource(EngineTestCase.createSource(["const app = 0;", "f(@app int app) {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_functionTypeAlias_scope_returnType() { |
- Source source = addSource(EngineTestCase.createSource(["typedef int f(int);"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_functionTypeAlias_scope_signature() { |
- Source source = addSource(EngineTestCase.createSource(["const app = 0;", "typedef int f(@app int app);"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_functionWithoutCall() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A implements Function {", |
- "}", |
- "class B implements A {", |
- " void call() {}", |
- "}", |
- "class C extends A {", |
- " void call() {}", |
- "}", |
- "class D extends C {", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_constructorName() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.named() {}", |
- "}", |
- "class B {", |
- " var v;", |
- " B() : v = new A.named();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_prefixedIdentifier() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var f;", |
- "}", |
- "class B {", |
- " var v;", |
- " B(A a) : v = a.f;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_qualifiedMethodInvocation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " f() {}", |
- "}", |
- "class B {", |
- " var v;", |
- " B() : v = new A().f();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_qualifiedPropertyAccess() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var f;", |
- "}", |
- "class B {", |
- " var v;", |
- " B() : v = new A().f;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_staticField_thisClass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var v;", |
- " A() : v = f;", |
- " static var f;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_staticGetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var v;", |
- " A() : v = f;", |
- " static get f => 42;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_staticMethod() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var v;", |
- " A() : v = f();", |
- " static f() => 42;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_topLevelField() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var v;", |
- " A() : v = f;", |
- "}", |
- "var f = 42;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_topLevelFunction() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var v;", |
- " A() : v = f();", |
- "}", |
- "f() => 42;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_topLevelGetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var v;", |
- " A() : v = f;", |
- "}", |
- "get f => 42;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_typeParameter() { |
- Source source = addSource(EngineTestCase.createSource(["class A<T> {", " var v;", " A(p) : v = (p is T);", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_importDuplicatedLibraryName() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library test;", |
- "import 'lib.dart';", |
- "import 'lib.dart';"])); |
- addSource2("/lib.dart", "library lib;"); |
- resolve(source); |
- assertErrors(source, [ |
- HintCode.UNUSED_IMPORT, |
- HintCode.UNUSED_IMPORT, |
- HintCode.DUPLICATE_IMPORT]); |
- verify([source]); |
- } |
- void test_importOfNonLibrary_libraryDeclared() { |
- Source source = addSource(EngineTestCase.createSource(["library lib;", "import 'part.dart';", "A a;"])); |
- addSource2("/part.dart", EngineTestCase.createSource(["library lib1;", "class A {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_importOfNonLibrary_libraryNotDeclared() { |
- Source source = addSource(EngineTestCase.createSource(["library lib;", "import 'part.dart';", "A a;"])); |
- addSource2("/part.dart", EngineTestCase.createSource(["class A {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_importPrefixes_withFirstLetterDifference() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart' as math;", |
- "import 'lib2.dart' as path;", |
- "main() {", |
- " math.test1();", |
- " path.test2();", |
- "}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "test1() {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "test2() {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_inconsistentCaseExpressionTypes() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(var p) {", |
- " switch (p) {", |
- " case 1:", |
- " break;", |
- " case 2:", |
- " break;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_inconsistentMethodInheritance_accessors_typeParameter2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A<E> {", |
- " E get x {return 1;}", |
- "}", |
- "class B<E> {", |
- " E get x {return 1;}", |
- "}", |
- "class C<E> extends A<E> implements B<E> {", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_inconsistentMethodInheritance_accessors_typeParameters_diamond() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class F<E> extends B<E> {}", |
- "class D<E> extends F<E> {", |
- " external E get g;", |
- "}", |
- "abstract class C<E> {", |
- " E get g;", |
- "}", |
- "abstract class B<E> implements C<E> {", |
- " E get g { return null; }", |
- "}", |
- "class A<E> extends B<E> implements D<E> {", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_inconsistentMethodInheritance_accessors_typeParameters1() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A<E> {", |
- " E get x;", |
- "}", |
- "abstract class B<E> {", |
- " E get x;", |
- "}", |
- "class C<E> implements A<E>, B<E> {", |
- " E get x => 1;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_inconsistentMethodInheritance_methods_typeParameter2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<E> {", |
- " x(E e) {}", |
- "}", |
- "class B<E> {", |
- " x(E e) {}", |
- "}", |
- "class C<E> extends A<E> implements B<E> {", |
- " x(E e) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_inconsistentMethodInheritance_methods_typeParameters1() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<E> {", |
- " x(E e) {}", |
- "}", |
- "class B<E> {", |
- " x(E e) {}", |
- "}", |
- "class C<E> implements A<E>, B<E> {", |
- " x(E e) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_inconsistentMethodInheritance_simple() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " x();", |
- "}", |
- "abstract class B {", |
- " x();", |
- "}", |
- "class C implements A, B {", |
- " x() {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_initializingFormalForNonExistantField() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " A(this.x) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_instanceAccessToStaticMember_fromComment() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static m() {}", |
- "}", |
- "/// [A.m]", |
- "main() {", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_instanceAccessToStaticMember_topLevel() { |
- Source source = addSource(EngineTestCase.createSource(["m() {}", "main() {", " m();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_instanceMemberAccessFromStatic_fromComment() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {}", |
- " /// [m]", |
- " static foo() {", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_instanceMethodNameCollidesWithSuperclassStatic_field() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib.dart';", |
- "class B extends A {", |
- " _m() {}", |
- "}"])); |
- addSource2("/lib.dart", EngineTestCase.createSource(["library L;", "class A {", " static var _m;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_instanceMethodNameCollidesWithSuperclassStatic_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib.dart';", |
- "class B extends A {", |
- " _m() {}", |
- "}"])); |
- addSource2("/lib.dart", EngineTestCase.createSource(["library L;", "class A {", " static _m() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.OVERRIDDING_PRIVATE_MEMBER]); |
- verify([source]); |
- } |
- void test_invalidAnnotation_constantVariable() { |
- Source source = addSource(EngineTestCase.createSource(["const C = 0;", "@C", "main() {", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidAnnotation_importWithPrefix_constantVariable() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "const C = 0;"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as p;", "@p.C", "main() {", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidAnnotation_importWithPrefix_constConstructor() { |
- addSource2("/lib.dart", EngineTestCase.createSource([ |
- "library lib;", |
- "class A {", |
- " const A.named(int p);", |
- "}"])); |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib.dart' as p;", |
- "@p.A.named(42)", |
- "main() {", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidAssignment() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var x;", " var y;", " x = y;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidAssignment_compoundAssignment() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class byte {", |
- " int _value;", |
- " byte(this._value);", |
- " byte operator +(int val) {}", |
- "}", |
- "", |
- "void main() {", |
- " byte b = new byte(52);", |
- " b += 3;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidAssignment_defaultValue_named() { |
- Source source = addSource(EngineTestCase.createSource(["f({String x: '0'}) {", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidAssignment_defaultValue_optional() { |
- Source source = addSource(EngineTestCase.createSource(["f([String x = '0']) {", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidAssignment_toDynamic() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var g;", " g = () => 0;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidFactoryNameNotAClass() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " factory A() {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidMethodOverrideNamedParamType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m({int a}) {}", |
- "}", |
- "class B implements A {", |
- " m({int a, int b}) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideDifferentDefaultValues_named() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m({int p : 0}) {}", |
- "}", |
- "class B extends A {", |
- " m({int p : 0}) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideDifferentDefaultValues_positional() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m([int p = 0]) {}", |
- "}", |
- "class B extends A {", |
- " m([int p = 0]) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideDifferentDefaultValues_positional_changedOrder() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m([int a = 0, String b = '0']) {}", |
- "}", |
- "class B extends A {", |
- " m([int b = 0, String a = '0']) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideNamed_unorderedNamedParameter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m({a, b}) {}", |
- "}", |
- "class B extends A {", |
- " m({b, a}) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideRequired_less() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m(a, b) {}", |
- "}", |
- "class B extends A {", |
- " m(a, [b]) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideRequired_same() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m(a) {}", |
- "}", |
- "class B extends A {", |
- " m(a) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideReturnType_returnType_interface() { |
- Source source = addSource2("/test.dart", EngineTestCase.createSource([ |
- "abstract class A {", |
- " num m();", |
- "}", |
- "class B implements A {", |
- " int m() { return 1; }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideReturnType_returnType_interface2() { |
- Source source = addSource2("/test.dart", EngineTestCase.createSource([ |
- "abstract class A {", |
- " num m();", |
- "}", |
- "abstract class B implements A {", |
- "}", |
- "class C implements B {", |
- " int m() { return 1; }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideReturnType_returnType_mixin() { |
- Source source = addSource2("/test.dart", EngineTestCase.createSource([ |
- "class A {", |
- " num m() { return 0; }", |
- "}", |
- "class B extends Object with A {", |
- " int m() { return 1; }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideReturnType_returnType_parameterizedTypes() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A<E> {", |
- " List<E> m();", |
- "}", |
- "class B extends A<dynamic> {", |
- " List<dynamic> m() { return new List<dynamic>(); }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideReturnType_returnType_sameType() { |
- Source source = addSource2("/test.dart", EngineTestCase.createSource([ |
- "class A {", |
- " int m() { return 0; }", |
- "}", |
- "class B extends A {", |
- " int m() { return 1; }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideReturnType_returnType_superclass() { |
- Source source = addSource2("/test.dart", EngineTestCase.createSource([ |
- "class A {", |
- " num m() { return 0; }", |
- "}", |
- "class B extends A {", |
- " int m() { return 1; }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideReturnType_returnType_superclass2() { |
- Source source = addSource2("/test.dart", EngineTestCase.createSource([ |
- "class A {", |
- " num m() { return 0; }", |
- "}", |
- "class B extends A {", |
- "}", |
- "class C extends B {", |
- " int m() { return 1; }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidOverrideReturnType_returnType_void() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void m() {}", |
- "}", |
- "class B extends A {", |
- " int m() {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidReferenceToThis_constructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A() {", " var v = this;", " }", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidReferenceToThis_instanceMethod() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " m() {", " var v = this;", " }", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidTypeArgumentForKey() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {", |
- " return const <int, int>{};", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidTypeArgumentInConstList() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<E> {", |
- " m() {", |
- " return <E>[];", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invalidTypeArgumentInConstMap() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<E> {", |
- " m() {", |
- " return <String, E>{};", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invocationOfNonFunction_dynamic() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var f;", |
- "}", |
- "class B extends A {", |
- " g() {", |
- " f();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invocationOfNonFunction_getter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var g;", |
- "}", |
- "f() {", |
- " A a;", |
- " a.g();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invocationOfNonFunction_localVariable() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var g;", " g();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invocationOfNonFunction_localVariable_dynamic() { |
- Source source = addSource(EngineTestCase.createSource(["f() {}", "main() {", " var v = f;", " v();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invocationOfNonFunction_localVariable_dynamic2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {}", |
- "main() {", |
- " var v = f;", |
- " v = 1;", |
- " v();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invocationOfNonFunction_Object() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " Object v = null;", " v();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_listElementTypeNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource(["var v1 = <int> [42];", "var v2 = const <int> [42];"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_mapKeyTypeNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource(["var v = <String, int > {'a' : 1};"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_memberWithClassName_setter() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " set A(v) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_methodDeclaration_scope_signature() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "const app = 0;", |
- "class A {", |
- " foo(@app int app) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_misMatchedGetterAndSetterTypes_instance_sameTypes() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class C {", |
- " int get x => 0;", |
- " set x(int v) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_misMatchedGetterAndSetterTypes_instance_unspecifiedGetter() { |
- Source source = addSource(EngineTestCase.createSource(["class C {", " get x => 0;", " set x(String v) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_misMatchedGetterAndSetterTypes_instance_unspecifiedSetter() { |
- Source source = addSource(EngineTestCase.createSource(["class C {", " int get x => 0;", " set x(v) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_misMatchedGetterAndSetterTypes_topLevel_sameTypes() { |
- Source source = addSource(EngineTestCase.createSource(["int get x => 0;", "set x(int v) {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_misMatchedGetterAndSetterTypes_topLevel_unspecifiedGetter() { |
- Source source = addSource(EngineTestCase.createSource(["get x => 0;", "set x(String v) {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_misMatchedGetterAndSetterTypes_topLevel_unspecifiedSetter() { |
- Source source = addSource(EngineTestCase.createSource(["int get x => 0;", "set x(v) {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_mixedReturnTypes_differentScopes() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class C {", |
- " m(int x) {", |
- " f(int y) {", |
- " return;", |
- " }", |
- " f(x);", |
- " return 0;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_mixedReturnTypes_sameKind() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class C {", |
- " m(int x) {", |
- " if (x < 0) {", |
- " return 1;", |
- " }", |
- " return 0;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_mixinDeclaresConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {}", |
- "}", |
- "class B extends Object with A {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_mixinDeclaresConstructor_factory() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " factory A() {}", |
- "}", |
- "class B extends Object with A {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_mixinInheritsFromNotObject_classDeclaration_mixTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B = Object with A;", |
- "class C extends Object with B {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_mixinInheritsFromNotObject_typedef_mixTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B = Object with A;", |
- "class C = Object with B;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_multipleSuperInitializers_no() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "class B extends A {", " B() {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_multipleSuperInitializers_single() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " B() : super() {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_newWithAbstractClass_factory() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " factory A() { return new B(); }", |
- "}", |
- "class B implements A {", |
- " B() {}", |
- "}", |
- "A f() {", |
- " return new A();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_newWithUndefinedConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.name() {}", |
- "}", |
- "f() {", |
- " new A.name();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_newWithUndefinedConstructorDefault() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A() {}", "}", "f() {", " new A();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_abstractOverridesConcrete_accessor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int get g => 0;", |
- "}", |
- "abstract class B extends A {", |
- " int get g;", |
- "}", |
- "class C extends B {", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_abstractOverridesConcrete_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m(p) {}", |
- "}", |
- "abstract class B extends A {", |
- " m(p);", |
- "}", |
- "class C extends B {", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_noSuchMethod_accessor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " int get g;", |
- "}", |
- "class B extends A {", |
- " noSuchMethod(v) => '';", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_noSuchMethod_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " m(p);", |
- "}", |
- "class B extends A {", |
- " noSuchMethod(v) => '';", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonBoolExpression_functionType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "bool makeAssertion() => true;", |
- "f() {", |
- " assert(makeAssertion);", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonBoolExpression_interfaceType() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " assert(true);", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_function_named() { |
- Source source = addSource(EngineTestCase.createSource(["f({x : 2 + 3}) {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_function_positional() { |
- Source source = addSource(EngineTestCase.createSource(["f([x = 2 + 3]) {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_inConstructor_named() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A({x : 2 + 3}) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_inConstructor_positional() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A([x = 2 + 3]) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_method_named() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " m({x : 2 + 3}) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_method_positional() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " m([x = 2 + 3]) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstantValueInInitializer_namedArgument() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final a;", |
- " const A({this.a});", |
- "}", |
- "class B extends A {", |
- " const B({b}) : super(a: b);", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstCaseExpression() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(Type t) {", |
- " switch (t) {", |
- " case bool:", |
- " case int:", |
- " return true;", |
- " default:", |
- " return false;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstMapAsExpressionStatement_const() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " const {'a' : 0, 'b' : 1};", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstMapAsExpressionStatement_notExpressionStatement() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var m = {'a' : 0, 'b' : 1};", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstMapAsExpressionStatement_typeArguments() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " <String, int> {'a' : 0, 'b' : 1};", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_binary_bool() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final v;", |
- " const A.a1(bool p) : v = p && true;", |
- " const A.a2(bool p) : v = true && p;", |
- " const A.b1(bool p) : v = p || true;", |
- " const A.b2(bool p) : v = true || p;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_binary_dynamic() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final v;", |
- " const A.a1(p) : v = p + 5;", |
- " const A.a2(p) : v = 5 + p;", |
- " const A.b1(p) : v = p - 5;", |
- " const A.b2(p) : v = 5 - p;", |
- " const A.c1(p) : v = p * 5;", |
- " const A.c2(p) : v = 5 * p;", |
- " const A.d1(p) : v = p / 5;", |
- " const A.d2(p) : v = 5 / p;", |
- " const A.e1(p) : v = p ~/ 5;", |
- " const A.e2(p) : v = 5 ~/ p;", |
- " const A.f1(p) : v = p > 5;", |
- " const A.f2(p) : v = 5 > p;", |
- " const A.g1(p) : v = p < 5;", |
- " const A.g2(p) : v = 5 < p;", |
- " const A.h1(p) : v = p >= 5;", |
- " const A.h2(p) : v = 5 >= p;", |
- " const A.i1(p) : v = p <= 5;", |
- " const A.i2(p) : v = 5 <= p;", |
- " const A.j1(p) : v = p % 5;", |
- " const A.j2(p) : v = 5 % p;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_nonConstValueInInitializer_binary_int() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final v;", |
- " const A.a1(int p) : v = p ^ 5;", |
- " const A.a2(int p) : v = 5 ^ p;", |
- " const A.b1(int p) : v = p & 5;", |
- " const A.b2(int p) : v = 5 & p;", |
- " const A.c1(int p) : v = p | 5;", |
- " const A.c2(int p) : v = 5 | p;", |
- " const A.d1(int p) : v = p >> 5;", |
- " const A.d2(int p) : v = 5 >> p;", |
- " const A.e1(int p) : v = p << 5;", |
- " const A.e2(int p) : v = 5 << p;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_binary_num() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final v;", |
- " const A.a1(num p) : v = p + 5;", |
- " const A.a2(num p) : v = 5 + p;", |
- " const A.b1(num p) : v = p - 5;", |
- " const A.b2(num p) : v = 5 - p;", |
- " const A.c1(num p) : v = p * 5;", |
- " const A.c2(num p) : v = 5 * p;", |
- " const A.d1(num p) : v = p / 5;", |
- " const A.d2(num p) : v = 5 / p;", |
- " const A.e1(num p) : v = p ~/ 5;", |
- " const A.e2(num p) : v = 5 ~/ p;", |
- " const A.f1(num p) : v = p > 5;", |
- " const A.f2(num p) : v = 5 > p;", |
- " const A.g1(num p) : v = p < 5;", |
- " const A.g2(num p) : v = 5 < p;", |
- " const A.h1(num p) : v = p >= 5;", |
- " const A.h2(num p) : v = 5 >= p;", |
- " const A.i1(num p) : v = p <= 5;", |
- " const A.i2(num p) : v = 5 <= p;", |
- " const A.j1(num p) : v = p % 5;", |
- " const A.j2(num p) : v = 5 % p;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_field() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final int a;", |
- " const A() : a = 5;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_redirecting() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A.named(p);", |
- " const A() : this.named(42);", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_super() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A(p);", |
- "}", |
- "class B extends A {", |
- " const B() : super(42);", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_unary() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final v;", |
- " const A.a(bool p) : v = !p;", |
- " const A.b(int p) : v = ~p;", |
- " const A.c(num p) : v = -p;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonGenerativeConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.named() {}", |
- " factory A() {}", |
- "}", |
- "class B extends A {", |
- " B() : super.named();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonTypeInCatchClause_isClass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " try {", |
- " } on String catch (e) {", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonTypeInCatchClause_isFunctionTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "typedef F();", |
- "f() {", |
- " try {", |
- " } on F catch (e) {", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonTypeInCatchClause_isTypeParameter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<T> {", |
- " f() {", |
- " try {", |
- " } on T catch (e) {", |
- " }", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonTypeInCatchClause_noType() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " try {", " } catch (e) {", " }", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonVoidReturnForOperator_no() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " operator []=(a, b) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonVoidReturnForOperator_void() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " void operator []=(a, b) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonVoidReturnForSetter_function_no() { |
- Source source = addSource("set x(v) {}"); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonVoidReturnForSetter_function_void() { |
- Source source = addSource("void set x(v) {}"); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonVoidReturnForSetter_method_no() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " set x(v) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_nonVoidReturnForSetter_method_void() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " void set x(v) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_null_callMethod() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " null.m();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_null_callOperator() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main() {", |
- " null + 5;", |
- " null == 5;", |
- " null[0];", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_optionalParameterInOperator_required() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " operator +(p) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_prefixCollidesWithTopLevelMembers() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "class A {}"])); |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib.dart' as p;", |
- "typedef P();", |
- "p2() {}", |
- "var p3;", |
- "class p4 {}", |
- "p.A a;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_propagateTypeArgs_intoBounds() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A<E> {}", |
- "abstract class B<F> implements A<F>{}", |
- "abstract class C<G, H extends A<G>> {}", |
- "class D<I> extends C<I, B<I>> {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_propagateTypeArgs_intoSupertype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<T> {", |
- " A(T p);", |
- " A.named(T p);", |
- "}", |
- "class B<S> extends A<S> {", |
- " B(S p) : super(p);", |
- " B.named(S p) : super.named(p);", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_proxy_annotation_prefixed() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'meta.dart';", |
- "@proxy", |
- "class A {}", |
- "f(A a) {", |
- " a.m();", |
- " var x = a.g;", |
- " a.s = 1;", |
- " var y = a + a;", |
- " a++;", |
- " ++a;", |
- "}"])); |
- addSource2("/meta.dart", EngineTestCase.createSource([ |
- "library meta;", |
- "const proxy = const _Proxy();", |
- "class _Proxy { const _Proxy(); }"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_proxy_annotation_prefixed2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'meta.dart';", |
- "@proxy", |
- "class A {}", |
- "class B {", |
- " f(A a) {", |
- " a.m();", |
- " var x = a.g;", |
- " a.s = 1;", |
- " var y = a + a;", |
- " a++;", |
- " ++a;", |
- " }", |
- "}"])); |
- addSource2("/meta.dart", EngineTestCase.createSource([ |
- "library meta;", |
- "const proxy = const _Proxy();", |
- "class _Proxy { const _Proxy(); }"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_proxy_annotation_prefixed3() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'meta.dart';", |
- "class B {", |
- " f(A a) {", |
- " a.m();", |
- " var x = a.g;", |
- " a.s = 1;", |
- " var y = a + a;", |
- " a++;", |
- " ++a;", |
- " }", |
- "}", |
- "@proxy", |
- "class A {}"])); |
- addSource2("/meta.dart", EngineTestCase.createSource([ |
- "library meta;", |
- "const proxy = const _Proxy();", |
- "class _Proxy { const _Proxy(); }"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_proxy_annotation_simple() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'meta.dart';", |
- "@proxy", |
- "class B {", |
- " m() {", |
- " n();", |
- " var x = g;", |
- " s = 1;", |
- " var y = this + this;", |
- " }", |
- "}"])); |
- addSource2("/meta.dart", EngineTestCase.createSource([ |
- "library meta;", |
- "const proxy = const _Proxy();", |
- "class _Proxy { const _Proxy(); }"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_recursiveConstructorRedirect() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.a() : this.b();", |
- " A.b() : this.c();", |
- " A.c() {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_recursiveFactoryRedirect() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " factory A() = B;", |
- "}", |
- "class B implements A {", |
- " factory B() = C;", |
- "}", |
- "class C implements B {", |
- " factory C() {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_redirectToInvalidFunctionType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A implements B {", |
- " A(int p) {}", |
- "}", |
- "class B {", |
- " factory B(int p) = A;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_redirectToInvalidReturnType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A() {}", |
- "}", |
- "class B extends A {", |
- " factory B() = A;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_redirectToNonConstConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A.a();", |
- " const factory A.b() = A.a;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_referenceToDeclaredVariableInInitializer_constructorName() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.x() {}", |
- "}", |
- "f() {", |
- " var x = new A.x();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_referenceToDeclaredVariableInInitializer_methodName() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " x() {}", |
- "}", |
- "f(A a) {", |
- " var x = a.x();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_referenceToDeclaredVariableInInitializer_propertyName() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var x;", |
- "}", |
- "f(A a) {", |
- " var x = a.x;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_rethrowOutsideCatch() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void m() {", |
- " try {} catch (e) {rethrow;}", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_returnInGenerativeConstructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A() { return; }", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_dynamic() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class TypeError {}", |
- "class A {", |
- " static void testLogicalOp() {", |
- " testOr(a, b, onTypeError) {", |
- " try {", |
- " return a || b;", |
- " } on TypeError catch (t) {", |
- " return onTypeError;", |
- " }", |
- " }", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_dynamicAsTypeArgument() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class I<T> {", |
- " factory I() => new A<T>();", |
- "}", |
- "class A<T> implements I {", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_subtype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {}", |
- "A f(B b) { return b; }"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_supertype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {}", |
- "B f(A a) { return a; }"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_void() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "void f1() {}", |
- "void f2() { return; }", |
- "void f3() { return null; }", |
- "void f4() { return g1(); }", |
- "void f5() { return g2(); }", |
- "g1() {}", |
- "void g2() {}", |
- ""])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_returnWithoutValue_noReturnType() { |
- Source source = addSource(EngineTestCase.createSource(["f() { return; }"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_returnWithoutValue_void() { |
- Source source = addSource(EngineTestCase.createSource(["void f() { return; }"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_staticAccessToInstanceMember_annotation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A.name();", |
- "}", |
- "@A.name()", |
- "main() {", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_staticAccessToInstanceMember_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static m() {}", |
- "}", |
- "main() {", |
- " A.m;", |
- " A.m();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_staticAccessToInstanceMember_propertyAccess_field() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static var f;", |
- "}", |
- "main() {", |
- " A.f;", |
- " A.f = 1;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_staticAccessToInstanceMember_propertyAccess_propertyAccessor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static get f => 42;", |
- " static set f(x) {}", |
- "}", |
- "main() {", |
- " A.f;", |
- " A.f = 1;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_superInInvalidContext() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {}", |
- "}", |
- "class B extends A {", |
- " B() {", |
- " var v = super.m();", |
- " }", |
- " n() {", |
- " var v = super.m();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typeAliasCannotReferenceItself_returnClass_withTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource(["typedef B A();", "class B {", " A a;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_const() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {}", |
- "class G<E extends A> {", |
- " const G();", |
- "}", |
- "f() { return const G<B>(); }"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_new() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {}", |
- "class G<E extends A> {}", |
- "f() { return new G<B>(); }"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_typeArgumentList_0() { |
- Source source = addSource(EngineTestCase.createSource(["abstract class A<T extends A>{}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_typeArgumentList_1() { |
- Source source = addSource(EngineTestCase.createSource(["abstract class A<T extends A<A>>{}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_typeArgumentList_20() { |
- Source source = addSource(EngineTestCase.createSource(["abstract class A<T extends A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A>>>>>>>>>>>>>>>>>>>>>{}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_booleanAnd_useInRight() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main(Object p) {", |
- " p is String && p.length != 0;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_booleanAnd_useInRight_accessedInClosureRight_noAssignment() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "callMe(f()) { f(); }", |
- "main(Object p) {", |
- " (p is String) && callMe(() { p.length; });", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_conditional_useInThen() { |
- Source source = addSource(EngineTestCase.createSource(["main(Object p) {", " p is String ? p.length : 0;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_conditional_useInThen_accessedInClosure_noAssignment() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "callMe(f()) { f(); }", |
- "main(Object p) {", |
- " p is String ? callMe(() { p.length; }) : 0;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_functionType_arg_ignoreIfNotMoreSpecific() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "typedef FuncB(B b);", |
- "typedef FuncA(A a);", |
- "class A {}", |
- "class B {}", |
- "main(FuncA f) {", |
- " if (f is FuncB) {", |
- " f(new A());", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_functionType_return_ignoreIfNotMoreSpecific() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "typedef FuncDynToDyn(x);", |
- "typedef void FuncDynToVoid(x);", |
- "class A {}", |
- "main(FuncDynToDyn f) {", |
- " if (f is FuncDynToVoid) {", |
- " A a = f(null);", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_functionType_return_voidToDynamic() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "typedef FuncDynToDyn(x);", |
- "typedef void FuncDynToVoid(x);", |
- "class A {}", |
- "main(FuncDynToVoid f) {", |
- " if (f is FuncDynToDyn) {", |
- " A a = f(null);", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_if_accessedInClosure_noAssignment() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "callMe(f()) { f(); }", |
- "main(Object p) {", |
- " if (p is String) {", |
- " callMe(() {", |
- " p.length;", |
- " });", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_if_hasAssignment_outsideAfter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main(Object p) {", |
- " if (p is String) {", |
- " p.length;", |
- " }", |
- " p = 0;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_if_hasAssignment_outsideBefore() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main(Object p, Object p2) {", |
- " p = p2;", |
- " if (p is String) {", |
- " p.length;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_if_is_and_left() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "bool tt() => true;", |
- "main(Object p) {", |
- " if (p is String && tt()) {", |
- " p.length;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_if_is_and_right() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "bool tt() => true;", |
- "main(Object p) {", |
- " if (tt() && p is String) {", |
- " p.length;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_if_is_and_subThenSuper() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var a;", |
- "}", |
- "class B extends A {", |
- " var b;", |
- "}", |
- "main(Object p) {", |
- " if (p is B && p is A) {", |
- " p.a;", |
- " p.b;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_if_is_parenthesized() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main(Object p) {", |
- " if ((p is String)) {", |
- " p.length;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_typePromotion_if_is_single() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main(Object p) {", |
- " if (p is String) {", |
- " p.length;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedConstructorInInitializer_explicit_named() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.named() {}", |
- "}", |
- "class B extends A {", |
- " B() : super.named();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedConstructorInInitializer_explicit_unnamed() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A() {}", |
- "}", |
- "class B extends A {", |
- " B() : super();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedConstructorInInitializer_hasOptionalParameters() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A([p]) {}", |
- "}", |
- "class B extends A {", |
- " B();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedConstructorInInitializer_implicit() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A() {}", |
- "}", |
- "class B extends A {", |
- " B();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedConstructorInInitializer_implicit_typeAlias() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class M {}", |
- "class A = Object with M;", |
- "class B extends A {", |
- " B();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedConstructorInInitializer_redirecting() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class Foo {", |
- " Foo.ctor();", |
- "}", |
- "class Bar extends Foo {", |
- " Bar() : this.ctor();", |
- " Bar.ctor() : super.ctor();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedGetter_typeSubstitution() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<E> {", |
- " E element;", |
- "}", |
- "class B extends A<List> {", |
- " m() {", |
- " element.last;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedIdentifier_hide() { |
- Source source = addSource(EngineTestCase.createSource(["library L;", "export 'lib1.dart' hide a;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedIdentifier_show() { |
- Source source = addSource(EngineTestCase.createSource(["library L;", "export 'lib1.dart' show a;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedMethod_functionExpression_callMethod() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " (() => null).call();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedMethod_functionExpression_directCall() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " (() => null)();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedOperator_index() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " operator [](a) {}", |
- " operator []=(a, b) {}", |
- "}", |
- "f(A a) {", |
- " a[0];", |
- " a[0] = 1;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedOperator_tilde() { |
- Source source = addSource(EngineTestCase.createSource(["const A = 3;", "const B = ~((1 << A) - 1);"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedSetter_importWithPrefix() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "set y(int value) {}"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as x;", "main() {", " x.y = 0;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedSuperMethod_field() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var m;", |
- "}", |
- "class B extends A {", |
- " f() {", |
- " super.m();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_undefinedSuperMethod_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {}", |
- "}", |
- "class B extends A {", |
- " f() {", |
- " super.m();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_wrongNumberOfParametersForOperator_index() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " operator []=(a, b) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_wrongNumberOfParametersForOperator_minus() { |
- check_wrongNumberOfParametersForOperator("-", ""); |
- check_wrongNumberOfParametersForOperator("-", "a"); |
- } |
- void test_wrongNumberOfParametersForOperator1() { |
- check_wrongNumberOfParametersForOperator1("<"); |
- check_wrongNumberOfParametersForOperator1(">"); |
- check_wrongNumberOfParametersForOperator1("<="); |
- check_wrongNumberOfParametersForOperator1(">="); |
- check_wrongNumberOfParametersForOperator1("+"); |
- check_wrongNumberOfParametersForOperator1("/"); |
- check_wrongNumberOfParametersForOperator1("~/"); |
- check_wrongNumberOfParametersForOperator1("*"); |
- check_wrongNumberOfParametersForOperator1("%"); |
- check_wrongNumberOfParametersForOperator1("|"); |
- check_wrongNumberOfParametersForOperator1("^"); |
- check_wrongNumberOfParametersForOperator1("&"); |
- check_wrongNumberOfParametersForOperator1("<<"); |
- check_wrongNumberOfParametersForOperator1(">>"); |
- check_wrongNumberOfParametersForOperator1("[]"); |
- } |
- void test_wrongNumberOfParametersForSetter() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " set x(a) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void check_wrongNumberOfParametersForOperator(String name, String parameters) { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " operator ${name}(${parameters}) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- reset(); |
- } |
- void check_wrongNumberOfParametersForOperator1(String name) { |
- check_wrongNumberOfParametersForOperator(name, "a"); |
- } |
- static dartSuite() { |
- _ut.group('NonErrorResolverTest', () { |
- _ut.test('test_ambiguousExport', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_ambiguousExport); |
- }); |
- _ut.test('test_ambiguousExport_combinators_hide', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_ambiguousExport_combinators_hide); |
- }); |
- _ut.test('test_ambiguousExport_combinators_show', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_ambiguousExport_combinators_show); |
- }); |
- _ut.test('test_argumentDefinitionTestNonParameter_formalParameter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_argumentDefinitionTestNonParameter_formalParameter); |
- }); |
- _ut.test('test_argumentDefinitionTestNonParameter_namedParameter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_argumentDefinitionTestNonParameter_namedParameter); |
- }); |
- _ut.test('test_argumentDefinitionTestNonParameter_optionalParameter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_argumentDefinitionTestNonParameter_optionalParameter); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_Object_Function', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_Object_Function); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_classWithCall_Function', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_classWithCall_Function); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_fieldFormalParameterElement_member', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_fieldFormalParameterElement_member); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_functionParameter_generic', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_functionParameter_generic); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_typedef_generic', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_typedef_generic); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_typedef_local', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_typedef_local); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_typedef_parameter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_typedef_parameter); |
- }); |
- _ut.test('test_assignmentToFinal_prefixNegate', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_assignmentToFinal_prefixNegate); |
- }); |
- _ut.test('test_assignmentToFinals_importWithPrefix', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_assignmentToFinals_importWithPrefix); |
- }); |
- _ut.test('test_breakWithoutLabelInSwitch', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_breakWithoutLabelInSwitch); |
- }); |
- _ut.test('test_builtInIdentifierAsType_dynamic', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_builtInIdentifierAsType_dynamic); |
- }); |
- _ut.test('test_caseBlockNotTerminated', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_caseBlockNotTerminated); |
- }); |
- _ut.test('test_caseBlockNotTerminated_lastCase', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_caseBlockNotTerminated_lastCase); |
- }); |
- _ut.test('test_caseExpressionTypeImplementsEquals_Object', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_caseExpressionTypeImplementsEquals_Object); |
- }); |
- _ut.test('test_caseExpressionTypeImplementsEquals_String', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_caseExpressionTypeImplementsEquals_String); |
- }); |
- _ut.test('test_caseExpressionTypeImplementsEquals_int', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_caseExpressionTypeImplementsEquals_int); |
- }); |
- _ut.test('test_concreteClassWithAbstractMember', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_concreteClassWithAbstractMember); |
- }); |
- _ut.test('test_conflictingInstanceGetterAndSuperclassMember_instance', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_conflictingInstanceGetterAndSuperclassMember_instance); |
- }); |
- _ut.test('test_conflictingStaticGetterAndInstanceSetter_thisClass', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_conflictingStaticGetterAndInstanceSetter_thisClass); |
- }); |
- _ut.test('test_conflictingStaticSetterAndInstanceMember_thisClass_method', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_conflictingStaticSetterAndInstanceMember_thisClass_method); |
- }); |
- _ut.test('test_constConstructorWithNonConstSuper_redirectingFactory', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constConstructorWithNonConstSuper_redirectingFactory); |
- }); |
- _ut.test('test_constConstructorWithNonFinalField_finalInstanceVar', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constConstructorWithNonFinalField_finalInstanceVar); |
- }); |
- _ut.test('test_constConstructorWithNonFinalField_mixin', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constConstructorWithNonFinalField_mixin); |
- }); |
- _ut.test('test_constConstructorWithNonFinalField_static', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constConstructorWithNonFinalField_static); |
- }); |
- _ut.test('test_constConstructorWithNonFinalField_syntheticField', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constConstructorWithNonFinalField_syntheticField); |
- }); |
- _ut.test('test_constEvalTypeBoolNumString_equal', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constEvalTypeBoolNumString_equal); |
- }); |
- _ut.test('test_constEvalTypeBoolNumString_notEqual', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constEvalTypeBoolNumString_notEqual); |
- }); |
- _ut.test('test_constEval_propertyExtraction_fieldStatic_targetType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constEval_propertyExtraction_fieldStatic_targetType); |
- }); |
- _ut.test('test_constEval_propertyExtraction_methodStatic_targetType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constEval_propertyExtraction_methodStatic_targetType); |
- }); |
- _ut.test('test_constEval_symbol', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constEval_symbol); |
- }); |
- _ut.test('test_constNotInitialized_field', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constNotInitialized_field); |
- }); |
- _ut.test('test_constNotInitialized_local', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constNotInitialized_local); |
- }); |
- _ut.test('test_constWithNonConstantArgument_literals', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constWithNonConstantArgument_literals); |
- }); |
- _ut.test('test_constWithTypeParameters_direct', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constWithTypeParameters_direct); |
- }); |
- _ut.test('test_constWithUndefinedConstructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constWithUndefinedConstructor); |
- }); |
- _ut.test('test_constWithUndefinedConstructorDefault', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constWithUndefinedConstructorDefault); |
- }); |
- _ut.test('test_constructorDeclaration_scope_signature', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_constructorDeclaration_scope_signature); |
- }); |
- _ut.test('test_defaultValueInFunctionTypeAlias', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_defaultValueInFunctionTypeAlias); |
- }); |
- _ut.test('test_defaultValueInFunctionTypedParameter_named', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_defaultValueInFunctionTypedParameter_named); |
- }); |
- _ut.test('test_defaultValueInFunctionTypedParameter_optional', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_defaultValueInFunctionTypedParameter_optional); |
- }); |
- _ut.test('test_duplicateDefinition_emptyName', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinition_emptyName); |
- }); |
- _ut.test('test_duplicateDefinition_getter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinition_getter); |
- }); |
- _ut.test('test_dynamicIdentifier', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_dynamicIdentifier); |
- }); |
- _ut.test('test_expectedOneListTypeArgument', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_expectedOneListTypeArgument); |
- }); |
- _ut.test('test_expectedTwoMapTypeArguments', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_expectedTwoMapTypeArguments); |
- }); |
- _ut.test('test_exportOfNonLibrary_libraryDeclared', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_exportOfNonLibrary_libraryDeclared); |
- }); |
- _ut.test('test_exportOfNonLibrary_libraryNotDeclared', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_exportOfNonLibrary_libraryNotDeclared); |
- }); |
- _ut.test('test_extraPositionalArguments_Function', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_extraPositionalArguments_Function); |
- }); |
- _ut.test('test_extraPositionalArguments_function', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_extraPositionalArguments_function); |
- }); |
- _ut.test('test_extraPositionalArguments_typedef_local', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_extraPositionalArguments_typedef_local); |
- }); |
- _ut.test('test_extraPositionalArguments_typedef_parameter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_extraPositionalArguments_typedef_parameter); |
- }); |
- _ut.test('test_fieldInitializedByMultipleInitializers', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_fieldInitializedByMultipleInitializers); |
- }); |
- _ut.test('test_fieldInitializedInInitializerAndDeclaration_fieldNotFinal', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_fieldInitializedInInitializerAndDeclaration_fieldNotFinal); |
- }); |
- _ut.test('test_fieldInitializedInInitializerAndDeclaration_finalFieldNotSet', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_fieldInitializedInInitializerAndDeclaration_finalFieldNotSet); |
- }); |
- _ut.test('test_fieldInitializerOutsideConstructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_fieldInitializerOutsideConstructor); |
- }); |
- _ut.test('test_fieldInitializerOutsideConstructor_defaultParameters', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_fieldInitializerOutsideConstructor_defaultParameters); |
- }); |
- _ut.test('test_fieldInitializerRedirectingConstructor_super', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_fieldInitializerRedirectingConstructor_super); |
- }); |
- _ut.test('test_finalInitializedInDeclarationAndConstructor_initializer', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_finalInitializedInDeclarationAndConstructor_initializer); |
- }); |
- _ut.test('test_finalInitializedInDeclarationAndConstructor_initializingFormal', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_finalInitializedInDeclarationAndConstructor_initializingFormal); |
- }); |
- _ut.test('test_finalNotInitialized_atDeclaration', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_atDeclaration); |
- }); |
- _ut.test('test_finalNotInitialized_fieldFormal', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_fieldFormal); |
- }); |
- _ut.test('test_finalNotInitialized_functionTypedFieldFormal', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_functionTypedFieldFormal); |
- }); |
- _ut.test('test_finalNotInitialized_hasNativeClause_hasConstructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_hasNativeClause_hasConstructor); |
- }); |
- _ut.test('test_finalNotInitialized_hasNativeClause_noConstructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_hasNativeClause_noConstructor); |
- }); |
- _ut.test('test_finalNotInitialized_initializer', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_initializer); |
- }); |
- _ut.test('test_finalNotInitialized_redirectingConstructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_redirectingConstructor); |
- }); |
- _ut.test('test_functionDeclaration_scope_returnType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_functionDeclaration_scope_returnType); |
- }); |
- _ut.test('test_functionDeclaration_scope_signature', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_functionDeclaration_scope_signature); |
- }); |
- _ut.test('test_functionTypeAlias_scope_returnType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_functionTypeAlias_scope_returnType); |
- }); |
- _ut.test('test_functionTypeAlias_scope_signature', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_functionTypeAlias_scope_signature); |
- }); |
- _ut.test('test_functionWithoutCall', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_functionWithoutCall); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_constructorName', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_constructorName); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_prefixedIdentifier', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_prefixedIdentifier); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_qualifiedMethodInvocation', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_qualifiedMethodInvocation); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_qualifiedPropertyAccess', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_qualifiedPropertyAccess); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_staticField_thisClass', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_staticField_thisClass); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_staticGetter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_staticGetter); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_staticMethod', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_staticMethod); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_topLevelField', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_topLevelField); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_topLevelFunction', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_topLevelFunction); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_topLevelGetter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_topLevelGetter); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_typeParameter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_typeParameter); |
- }); |
- _ut.test('test_importDuplicatedLibraryName', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_importDuplicatedLibraryName); |
- }); |
- _ut.test('test_importOfNonLibrary_libraryDeclared', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_importOfNonLibrary_libraryDeclared); |
- }); |
- _ut.test('test_importOfNonLibrary_libraryNotDeclared', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_importOfNonLibrary_libraryNotDeclared); |
- }); |
- _ut.test('test_importPrefixes_withFirstLetterDifference', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_importPrefixes_withFirstLetterDifference); |
- }); |
- _ut.test('test_inconsistentCaseExpressionTypes', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_inconsistentCaseExpressionTypes); |
- }); |
- _ut.test('test_inconsistentMethodInheritance_accessors_typeParameter2', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_inconsistentMethodInheritance_accessors_typeParameter2); |
- }); |
- _ut.test('test_inconsistentMethodInheritance_accessors_typeParameters1', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_inconsistentMethodInheritance_accessors_typeParameters1); |
- }); |
- _ut.test('test_inconsistentMethodInheritance_accessors_typeParameters_diamond', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_inconsistentMethodInheritance_accessors_typeParameters_diamond); |
- }); |
- _ut.test('test_inconsistentMethodInheritance_methods_typeParameter2', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_inconsistentMethodInheritance_methods_typeParameter2); |
- }); |
- _ut.test('test_inconsistentMethodInheritance_methods_typeParameters1', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_inconsistentMethodInheritance_methods_typeParameters1); |
- }); |
- _ut.test('test_inconsistentMethodInheritance_simple', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_inconsistentMethodInheritance_simple); |
- }); |
- _ut.test('test_initializingFormalForNonExistantField', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_initializingFormalForNonExistantField); |
- }); |
- _ut.test('test_instanceAccessToStaticMember_fromComment', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_instanceAccessToStaticMember_fromComment); |
- }); |
- _ut.test('test_instanceAccessToStaticMember_topLevel', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_instanceAccessToStaticMember_topLevel); |
- }); |
- _ut.test('test_instanceMemberAccessFromStatic_fromComment', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_instanceMemberAccessFromStatic_fromComment); |
- }); |
- _ut.test('test_instanceMethodNameCollidesWithSuperclassStatic_field', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_instanceMethodNameCollidesWithSuperclassStatic_field); |
- }); |
- _ut.test('test_instanceMethodNameCollidesWithSuperclassStatic_method', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_instanceMethodNameCollidesWithSuperclassStatic_method); |
- }); |
- _ut.test('test_invalidAnnotation_constantVariable', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidAnnotation_constantVariable); |
- }); |
- _ut.test('test_invalidAnnotation_importWithPrefix_constConstructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidAnnotation_importWithPrefix_constConstructor); |
- }); |
- _ut.test('test_invalidAnnotation_importWithPrefix_constantVariable', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidAnnotation_importWithPrefix_constantVariable); |
- }); |
- _ut.test('test_invalidAssignment', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment); |
- }); |
- _ut.test('test_invalidAssignment_compoundAssignment', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_compoundAssignment); |
- }); |
- _ut.test('test_invalidAssignment_defaultValue_named', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_defaultValue_named); |
- }); |
- _ut.test('test_invalidAssignment_defaultValue_optional', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_defaultValue_optional); |
- }); |
- _ut.test('test_invalidAssignment_toDynamic', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_toDynamic); |
- }); |
- _ut.test('test_invalidFactoryNameNotAClass', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidFactoryNameNotAClass); |
- }); |
- _ut.test('test_invalidMethodOverrideNamedParamType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidMethodOverrideNamedParamType); |
- }); |
- _ut.test('test_invalidOverrideDifferentDefaultValues_named', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideDifferentDefaultValues_named); |
- }); |
- _ut.test('test_invalidOverrideDifferentDefaultValues_positional', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideDifferentDefaultValues_positional); |
- }); |
- _ut.test('test_invalidOverrideDifferentDefaultValues_positional_changedOrder', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideDifferentDefaultValues_positional_changedOrder); |
- }); |
- _ut.test('test_invalidOverrideNamed_unorderedNamedParameter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideNamed_unorderedNamedParameter); |
- }); |
- _ut.test('test_invalidOverrideRequired_less', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideRequired_less); |
- }); |
- _ut.test('test_invalidOverrideRequired_same', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideRequired_same); |
- }); |
- _ut.test('test_invalidOverrideReturnType_returnType_interface', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideReturnType_returnType_interface); |
- }); |
- _ut.test('test_invalidOverrideReturnType_returnType_interface2', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideReturnType_returnType_interface2); |
- }); |
- _ut.test('test_invalidOverrideReturnType_returnType_mixin', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideReturnType_returnType_mixin); |
- }); |
- _ut.test('test_invalidOverrideReturnType_returnType_parameterizedTypes', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideReturnType_returnType_parameterizedTypes); |
- }); |
- _ut.test('test_invalidOverrideReturnType_returnType_sameType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideReturnType_returnType_sameType); |
- }); |
- _ut.test('test_invalidOverrideReturnType_returnType_superclass', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideReturnType_returnType_superclass); |
- }); |
- _ut.test('test_invalidOverrideReturnType_returnType_superclass2', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideReturnType_returnType_superclass2); |
- }); |
- _ut.test('test_invalidOverrideReturnType_returnType_void', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideReturnType_returnType_void); |
- }); |
- _ut.test('test_invalidReferenceToThis_constructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidReferenceToThis_constructor); |
- }); |
- _ut.test('test_invalidReferenceToThis_instanceMethod', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidReferenceToThis_instanceMethod); |
- }); |
- _ut.test('test_invalidTypeArgumentForKey', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidTypeArgumentForKey); |
- }); |
- _ut.test('test_invalidTypeArgumentInConstList', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidTypeArgumentInConstList); |
- }); |
- _ut.test('test_invalidTypeArgumentInConstMap', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invalidTypeArgumentInConstMap); |
- }); |
- _ut.test('test_invocationOfNonFunction_Object', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunction_Object); |
- }); |
- _ut.test('test_invocationOfNonFunction_dynamic', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunction_dynamic); |
- }); |
- _ut.test('test_invocationOfNonFunction_getter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunction_getter); |
- }); |
- _ut.test('test_invocationOfNonFunction_localVariable', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunction_localVariable); |
- }); |
- _ut.test('test_invocationOfNonFunction_localVariable_dynamic', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunction_localVariable_dynamic); |
- }); |
- _ut.test('test_invocationOfNonFunction_localVariable_dynamic2', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunction_localVariable_dynamic2); |
- }); |
- _ut.test('test_listElementTypeNotAssignable', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_listElementTypeNotAssignable); |
- }); |
- _ut.test('test_mapKeyTypeNotAssignable', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_mapKeyTypeNotAssignable); |
- }); |
- _ut.test('test_memberWithClassName_setter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_memberWithClassName_setter); |
- }); |
- _ut.test('test_methodDeclaration_scope_signature', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_methodDeclaration_scope_signature); |
- }); |
- _ut.test('test_misMatchedGetterAndSetterTypes_instance_sameTypes', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_misMatchedGetterAndSetterTypes_instance_sameTypes); |
- }); |
- _ut.test('test_misMatchedGetterAndSetterTypes_instance_unspecifiedGetter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_misMatchedGetterAndSetterTypes_instance_unspecifiedGetter); |
- }); |
- _ut.test('test_misMatchedGetterAndSetterTypes_instance_unspecifiedSetter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_misMatchedGetterAndSetterTypes_instance_unspecifiedSetter); |
- }); |
- _ut.test('test_misMatchedGetterAndSetterTypes_topLevel_sameTypes', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_misMatchedGetterAndSetterTypes_topLevel_sameTypes); |
- }); |
- _ut.test('test_misMatchedGetterAndSetterTypes_topLevel_unspecifiedGetter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_misMatchedGetterAndSetterTypes_topLevel_unspecifiedGetter); |
- }); |
- _ut.test('test_misMatchedGetterAndSetterTypes_topLevel_unspecifiedSetter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_misMatchedGetterAndSetterTypes_topLevel_unspecifiedSetter); |
- }); |
- _ut.test('test_mixedReturnTypes_differentScopes', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_mixedReturnTypes_differentScopes); |
- }); |
- _ut.test('test_mixedReturnTypes_sameKind', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_mixedReturnTypes_sameKind); |
- }); |
- _ut.test('test_mixinDeclaresConstructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_mixinDeclaresConstructor); |
- }); |
- _ut.test('test_mixinDeclaresConstructor_factory', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_mixinDeclaresConstructor_factory); |
- }); |
- _ut.test('test_mixinInheritsFromNotObject_classDeclaration_mixTypeAlias', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_classDeclaration_mixTypeAlias); |
- }); |
- _ut.test('test_mixinInheritsFromNotObject_typedef_mixTypeAlias', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_typedef_mixTypeAlias); |
- }); |
- _ut.test('test_multipleSuperInitializers_no', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_multipleSuperInitializers_no); |
- }); |
- _ut.test('test_multipleSuperInitializers_single', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_multipleSuperInitializers_single); |
- }); |
- _ut.test('test_newWithAbstractClass_factory', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_newWithAbstractClass_factory); |
- }); |
- _ut.test('test_newWithUndefinedConstructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_newWithUndefinedConstructor); |
- }); |
- _ut.test('test_newWithUndefinedConstructorDefault', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_newWithUndefinedConstructorDefault); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_abstractOverridesConcrete_accessor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_abstractOverridesConcrete_accessor); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_abstractOverridesConcrete_method', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_abstractOverridesConcrete_method); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_noSuchMethod_accessor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_noSuchMethod_accessor); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_noSuchMethod_method', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_noSuchMethod_method); |
- }); |
- _ut.test('test_nonBoolExpression_functionType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonBoolExpression_functionType); |
- }); |
- _ut.test('test_nonBoolExpression_interfaceType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonBoolExpression_interfaceType); |
- }); |
- _ut.test('test_nonConstCaseExpression', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstCaseExpression); |
- }); |
- _ut.test('test_nonConstMapAsExpressionStatement_const', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstMapAsExpressionStatement_const); |
- }); |
- _ut.test('test_nonConstMapAsExpressionStatement_notExpressionStatement', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstMapAsExpressionStatement_notExpressionStatement); |
- }); |
- _ut.test('test_nonConstMapAsExpressionStatement_typeArguments', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstMapAsExpressionStatement_typeArguments); |
- }); |
- _ut.test('test_nonConstValueInInitializer_binary_bool', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_binary_bool); |
- }); |
- _ut.test('test_nonConstValueInInitializer_binary_dynamic', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_binary_dynamic); |
- }); |
- _ut.test('test_nonConstValueInInitializer_binary_int', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_binary_int); |
- }); |
- _ut.test('test_nonConstValueInInitializer_binary_num', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_binary_num); |
- }); |
- _ut.test('test_nonConstValueInInitializer_field', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_field); |
- }); |
- _ut.test('test_nonConstValueInInitializer_redirecting', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_redirecting); |
- }); |
- _ut.test('test_nonConstValueInInitializer_super', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_super); |
- }); |
- _ut.test('test_nonConstValueInInitializer_unary', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_unary); |
- }); |
- _ut.test('test_nonConstantDefaultValue_function_named', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_function_named); |
- }); |
- _ut.test('test_nonConstantDefaultValue_function_positional', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_function_positional); |
- }); |
- _ut.test('test_nonConstantDefaultValue_inConstructor_named', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_inConstructor_named); |
- }); |
- _ut.test('test_nonConstantDefaultValue_inConstructor_positional', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_inConstructor_positional); |
- }); |
- _ut.test('test_nonConstantDefaultValue_method_named', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_method_named); |
- }); |
- _ut.test('test_nonConstantDefaultValue_method_positional', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_method_positional); |
- }); |
- _ut.test('test_nonConstantValueInInitializer_namedArgument', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonConstantValueInInitializer_namedArgument); |
- }); |
- _ut.test('test_nonGenerativeConstructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonGenerativeConstructor); |
- }); |
- _ut.test('test_nonTypeInCatchClause_isClass', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonTypeInCatchClause_isClass); |
- }); |
- _ut.test('test_nonTypeInCatchClause_isFunctionTypeAlias', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonTypeInCatchClause_isFunctionTypeAlias); |
- }); |
- _ut.test('test_nonTypeInCatchClause_isTypeParameter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonTypeInCatchClause_isTypeParameter); |
- }); |
- _ut.test('test_nonTypeInCatchClause_noType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonTypeInCatchClause_noType); |
- }); |
- _ut.test('test_nonVoidReturnForOperator_no', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonVoidReturnForOperator_no); |
- }); |
- _ut.test('test_nonVoidReturnForOperator_void', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonVoidReturnForOperator_void); |
- }); |
- _ut.test('test_nonVoidReturnForSetter_function_no', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonVoidReturnForSetter_function_no); |
- }); |
- _ut.test('test_nonVoidReturnForSetter_function_void', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonVoidReturnForSetter_function_void); |
- }); |
- _ut.test('test_nonVoidReturnForSetter_method_no', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonVoidReturnForSetter_method_no); |
- }); |
- _ut.test('test_nonVoidReturnForSetter_method_void', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_nonVoidReturnForSetter_method_void); |
- }); |
- _ut.test('test_null_callMethod', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_null_callMethod); |
- }); |
- _ut.test('test_null_callOperator', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_null_callOperator); |
- }); |
- _ut.test('test_optionalParameterInOperator_required', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_optionalParameterInOperator_required); |
- }); |
- _ut.test('test_prefixCollidesWithTopLevelMembers', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_prefixCollidesWithTopLevelMembers); |
- }); |
- _ut.test('test_propagateTypeArgs_intoBounds', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_propagateTypeArgs_intoBounds); |
- }); |
- _ut.test('test_propagateTypeArgs_intoSupertype', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_propagateTypeArgs_intoSupertype); |
- }); |
- _ut.test('test_proxy_annotation_prefixed', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_proxy_annotation_prefixed); |
- }); |
- _ut.test('test_proxy_annotation_prefixed2', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_proxy_annotation_prefixed2); |
- }); |
- _ut.test('test_proxy_annotation_prefixed3', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_proxy_annotation_prefixed3); |
- }); |
- _ut.test('test_proxy_annotation_simple', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_proxy_annotation_simple); |
- }); |
- _ut.test('test_recursiveConstructorRedirect', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_recursiveConstructorRedirect); |
- }); |
- _ut.test('test_recursiveFactoryRedirect', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_recursiveFactoryRedirect); |
- }); |
- _ut.test('test_redirectToInvalidFunctionType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_redirectToInvalidFunctionType); |
- }); |
- _ut.test('test_redirectToInvalidReturnType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_redirectToInvalidReturnType); |
- }); |
- _ut.test('test_redirectToNonConstConstructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_redirectToNonConstConstructor); |
- }); |
- _ut.test('test_referenceToDeclaredVariableInInitializer_constructorName', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_referenceToDeclaredVariableInInitializer_constructorName); |
- }); |
- _ut.test('test_referenceToDeclaredVariableInInitializer_methodName', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_referenceToDeclaredVariableInInitializer_methodName); |
- }); |
- _ut.test('test_referenceToDeclaredVariableInInitializer_propertyName', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_referenceToDeclaredVariableInInitializer_propertyName); |
- }); |
- _ut.test('test_rethrowOutsideCatch', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_rethrowOutsideCatch); |
- }); |
- _ut.test('test_returnInGenerativeConstructor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_returnInGenerativeConstructor); |
- }); |
- _ut.test('test_returnOfInvalidType_dynamic', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_dynamic); |
- }); |
- _ut.test('test_returnOfInvalidType_dynamicAsTypeArgument', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_dynamicAsTypeArgument); |
- }); |
- _ut.test('test_returnOfInvalidType_subtype', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_subtype); |
- }); |
- _ut.test('test_returnOfInvalidType_supertype', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_supertype); |
- }); |
- _ut.test('test_returnOfInvalidType_void', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_void); |
- }); |
- _ut.test('test_returnWithoutValue_noReturnType', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_returnWithoutValue_noReturnType); |
- }); |
- _ut.test('test_returnWithoutValue_void', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_returnWithoutValue_void); |
- }); |
- _ut.test('test_staticAccessToInstanceMember_annotation', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_staticAccessToInstanceMember_annotation); |
- }); |
- _ut.test('test_staticAccessToInstanceMember_method', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_staticAccessToInstanceMember_method); |
- }); |
- _ut.test('test_staticAccessToInstanceMember_propertyAccess_field', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_staticAccessToInstanceMember_propertyAccess_field); |
- }); |
- _ut.test('test_staticAccessToInstanceMember_propertyAccess_propertyAccessor', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_staticAccessToInstanceMember_propertyAccess_propertyAccessor); |
- }); |
- _ut.test('test_superInInvalidContext', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_superInInvalidContext); |
- }); |
- _ut.test('test_typeAliasCannotReferenceItself_returnClass_withTypeAlias', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typeAliasCannotReferenceItself_returnClass_withTypeAlias); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_const', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_const); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_new', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_new); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_typeArgumentList_0', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_typeArgumentList_0); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_typeArgumentList_1', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_typeArgumentList_1); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_typeArgumentList_20', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_typeArgumentList_20); |
- }); |
- _ut.test('test_typePromotion_booleanAnd_useInRight', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_booleanAnd_useInRight); |
- }); |
- _ut.test('test_typePromotion_booleanAnd_useInRight_accessedInClosureRight_noAssignment', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_booleanAnd_useInRight_accessedInClosureRight_noAssignment); |
- }); |
- _ut.test('test_typePromotion_conditional_useInThen', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_conditional_useInThen); |
- }); |
- _ut.test('test_typePromotion_conditional_useInThen_accessedInClosure_noAssignment', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_conditional_useInThen_accessedInClosure_noAssignment); |
- }); |
- _ut.test('test_typePromotion_functionType_arg_ignoreIfNotMoreSpecific', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_functionType_arg_ignoreIfNotMoreSpecific); |
- }); |
- _ut.test('test_typePromotion_functionType_return_ignoreIfNotMoreSpecific', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_functionType_return_ignoreIfNotMoreSpecific); |
- }); |
- _ut.test('test_typePromotion_functionType_return_voidToDynamic', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_functionType_return_voidToDynamic); |
- }); |
- _ut.test('test_typePromotion_if_accessedInClosure_noAssignment', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_accessedInClosure_noAssignment); |
- }); |
- _ut.test('test_typePromotion_if_hasAssignment_outsideAfter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_hasAssignment_outsideAfter); |
- }); |
- _ut.test('test_typePromotion_if_hasAssignment_outsideBefore', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_hasAssignment_outsideBefore); |
- }); |
- _ut.test('test_typePromotion_if_is_and_left', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_is_and_left); |
- }); |
- _ut.test('test_typePromotion_if_is_and_right', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_is_and_right); |
- }); |
- _ut.test('test_typePromotion_if_is_and_subThenSuper', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_is_and_subThenSuper); |
- }); |
- _ut.test('test_typePromotion_if_is_parenthesized', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_is_parenthesized); |
- }); |
- _ut.test('test_typePromotion_if_is_single', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_is_single); |
- }); |
- _ut.test('test_undefinedConstructorInInitializer_explicit_named', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_explicit_named); |
- }); |
- _ut.test('test_undefinedConstructorInInitializer_explicit_unnamed', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_explicit_unnamed); |
- }); |
- _ut.test('test_undefinedConstructorInInitializer_hasOptionalParameters', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_hasOptionalParameters); |
- }); |
- _ut.test('test_undefinedConstructorInInitializer_implicit', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_implicit); |
- }); |
- _ut.test('test_undefinedConstructorInInitializer_implicit_typeAlias', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_implicit_typeAlias); |
- }); |
- _ut.test('test_undefinedConstructorInInitializer_redirecting', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_redirecting); |
- }); |
- _ut.test('test_undefinedGetter_typeSubstitution', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedGetter_typeSubstitution); |
- }); |
- _ut.test('test_undefinedIdentifier_hide', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedIdentifier_hide); |
- }); |
- _ut.test('test_undefinedIdentifier_show', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedIdentifier_show); |
- }); |
- _ut.test('test_undefinedMethod_functionExpression_callMethod', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedMethod_functionExpression_callMethod); |
- }); |
- _ut.test('test_undefinedMethod_functionExpression_directCall', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedMethod_functionExpression_directCall); |
- }); |
- _ut.test('test_undefinedOperator_index', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_index); |
- }); |
- _ut.test('test_undefinedOperator_tilde', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_tilde); |
- }); |
- _ut.test('test_undefinedSetter_importWithPrefix', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedSetter_importWithPrefix); |
- }); |
- _ut.test('test_undefinedSuperMethod_field', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedSuperMethod_field); |
- }); |
- _ut.test('test_undefinedSuperMethod_method', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_undefinedSuperMethod_method); |
- }); |
- _ut.test('test_wrongNumberOfParametersForOperator1', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForOperator1); |
- }); |
- _ut.test('test_wrongNumberOfParametersForOperator_index', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForOperator_index); |
- }); |
- _ut.test('test_wrongNumberOfParametersForOperator_minus', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForOperator_minus); |
- }); |
- _ut.test('test_wrongNumberOfParametersForSetter', () { |
- final __test = new NonErrorResolverTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForSetter); |
- }); |
- }); |
- } |
-} |
-class LibraryTest extends EngineTestCase { |
- |
- /** |
- * The error listener to which all errors will be reported. |
- */ |
- GatheringErrorListener _errorListener; |
- |
- /** |
- * The source factory used to create libraries. |
- */ |
- SourceFactory _sourceFactory; |
- |
- /** |
- * The analysis context to pass in to all libraries created by the tests. |
- */ |
- AnalysisContextImpl _analysisContext; |
- |
- /** |
- * The library used by the tests. |
- */ |
- Library _library5; |
- void setUp() { |
- _sourceFactory = new SourceFactory.con2([new FileUriResolver()]); |
- _analysisContext = new AnalysisContextImpl(); |
- _analysisContext.sourceFactory = _sourceFactory; |
- _errorListener = new GatheringErrorListener(); |
- _library5 = library("/lib.dart"); |
- } |
- void test_getExplicitlyImportsCore() { |
- JUnitTestCase.assertFalse(_library5.explicitlyImportsCore); |
- _errorListener.assertNoErrors(); |
- } |
- void test_getExports() { |
- EngineTestCase.assertLength(0, _library5.exports); |
- _errorListener.assertNoErrors(); |
- } |
- void test_getImports() { |
- EngineTestCase.assertLength(0, _library5.imports); |
- _errorListener.assertNoErrors(); |
- } |
- void test_getImportsAndExports() { |
- _library5.importedLibraries = <Library> [library("/imported.dart")]; |
- _library5.exportedLibraries = <Library> [library("/exported.dart")]; |
- EngineTestCase.assertLength(2, _library5.importsAndExports); |
- _errorListener.assertNoErrors(); |
- } |
- void test_getLibraryScope() { |
- LibraryElementImpl element = new LibraryElementImpl(_analysisContext, ASTFactory.libraryIdentifier2(["lib"])); |
- element.definingCompilationUnit = new CompilationUnitElementImpl("lib.dart"); |
- _library5.libraryElement = element; |
- JUnitTestCase.assertNotNull(_library5.libraryScope); |
- _errorListener.assertNoErrors(); |
- } |
- void test_getLibrarySource() { |
- JUnitTestCase.assertNotNull(_library5.librarySource); |
- } |
- void test_setExplicitlyImportsCore() { |
- _library5.explicitlyImportsCore = true; |
- JUnitTestCase.assertTrue(_library5.explicitlyImportsCore); |
- _errorListener.assertNoErrors(); |
- } |
- void test_setExportedLibraries() { |
- Library exportLibrary = library("/exported.dart"); |
- _library5.exportedLibraries = <Library> [exportLibrary]; |
- List<Library> exports = _library5.exports; |
- EngineTestCase.assertLength(1, exports); |
- JUnitTestCase.assertSame(exportLibrary, exports[0]); |
- _errorListener.assertNoErrors(); |
- } |
- void test_setImportedLibraries() { |
- Library importLibrary = library("/imported.dart"); |
- _library5.importedLibraries = <Library> [importLibrary]; |
- List<Library> imports = _library5.imports; |
- EngineTestCase.assertLength(1, imports); |
- JUnitTestCase.assertSame(importLibrary, imports[0]); |
- _errorListener.assertNoErrors(); |
- } |
- void test_setLibraryElement() { |
- LibraryElementImpl element = new LibraryElementImpl(_analysisContext, ASTFactory.libraryIdentifier2(["lib"])); |
- _library5.libraryElement = element; |
- JUnitTestCase.assertSame(element, _library5.libraryElement); |
- } |
- Library library(String definingCompilationUnitPath) => new Library(_analysisContext, _errorListener, new FileBasedSource.con1(_sourceFactory.contentCache, FileUtilities2.createFile(definingCompilationUnitPath))); |
- static dartSuite() { |
- _ut.group('LibraryTest', () { |
- _ut.test('test_getExplicitlyImportsCore', () { |
- final __test = new LibraryTest(); |
- runJUnitTest(__test, __test.test_getExplicitlyImportsCore); |
- }); |
- _ut.test('test_getExports', () { |
- final __test = new LibraryTest(); |
- runJUnitTest(__test, __test.test_getExports); |
- }); |
- _ut.test('test_getImports', () { |
- final __test = new LibraryTest(); |
- runJUnitTest(__test, __test.test_getImports); |
- }); |
- _ut.test('test_getImportsAndExports', () { |
- final __test = new LibraryTest(); |
- runJUnitTest(__test, __test.test_getImportsAndExports); |
- }); |
- _ut.test('test_getLibraryScope', () { |
- final __test = new LibraryTest(); |
- runJUnitTest(__test, __test.test_getLibraryScope); |
- }); |
- _ut.test('test_getLibrarySource', () { |
- final __test = new LibraryTest(); |
- runJUnitTest(__test, __test.test_getLibrarySource); |
- }); |
- _ut.test('test_setExplicitlyImportsCore', () { |
- final __test = new LibraryTest(); |
- runJUnitTest(__test, __test.test_setExplicitlyImportsCore); |
- }); |
- _ut.test('test_setExportedLibraries', () { |
- final __test = new LibraryTest(); |
- runJUnitTest(__test, __test.test_setExportedLibraries); |
- }); |
- _ut.test('test_setImportedLibraries', () { |
- final __test = new LibraryTest(); |
- runJUnitTest(__test, __test.test_setImportedLibraries); |
- }); |
- _ut.test('test_setLibraryElement', () { |
- final __test = new LibraryTest(); |
- runJUnitTest(__test, __test.test_setLibraryElement); |
- }); |
- }); |
- } |
-} |
-class StaticTypeWarningCodeTest extends ResolverTestCase { |
- void fail_inaccessibleSetter() { |
- Source source = addSource(EngineTestCase.createSource([])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INACCESSIBLE_SETTER]); |
- verify([source]); |
- } |
- void test_expectedOneListTypeArgument() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " <int, int> [];", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.EXPECTED_ONE_LIST_TYPE_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_expectedTwoMapTypeArguments_one() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " <int> {};", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_expectedTwoMapTypeArguments_three() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " <int, int, int> {};", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_inconsistentMethodInheritance_paramCount() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " int x();", |
- "}", |
- "abstract class B {", |
- " int x(int y);", |
- "}", |
- "class C implements A, B {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); |
- verify([source]); |
- } |
- void test_inconsistentMethodInheritance_paramType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " x(int i);", |
- "}", |
- "abstract class B {", |
- " x(String s);", |
- "}", |
- "abstract class C implements A, B {}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); |
- verify([source]); |
- } |
- void test_inconsistentMethodInheritance_returnType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " int x();", |
- "}", |
- "abstract class B {", |
- " String x();", |
- "}", |
- "abstract class C implements A, B {}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); |
- verify([source]); |
- } |
- void test_instanceAccessToStaticMember_method_invocation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static m() {}", |
- "}", |
- "main(A a) {", |
- " a.m();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
- verify([source]); |
- } |
- void test_instanceAccessToStaticMember_method_reference() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static m() {}", |
- "}", |
- "main(A a) {", |
- " a.m;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
- verify([source]); |
- } |
- void test_instanceAccessToStaticMember_propertyAccess_field() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static var f;", |
- "}", |
- "main(A a) {", |
- " a.f;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
- verify([source]); |
- } |
- void test_instanceAccessToStaticMember_propertyAccess_getter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static get f => 42;", |
- "}", |
- "main(A a) {", |
- " a.f;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
- verify([source]); |
- } |
- void test_instanceAccessToStaticMember_propertyAccess_setter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static set f(x) {}", |
- "}", |
- "main(A a) {", |
- " a.f = 42;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
- verify([source]); |
- } |
- void test_invalidAssignment_compoundAssignment() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class byte {", |
- " int _value;", |
- " byte(this._value);", |
- " int operator +(int val) {}", |
- "}", |
- "", |
- "void main() {", |
- " byte b = new byte(52);", |
- " b += 3;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
- verify([source]); |
- } |
- void test_invalidAssignment_defaultValue_named() { |
- Source source = addSource(EngineTestCase.createSource(["f({String x: 0}) {", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
- verify([source]); |
- } |
- void test_invalidAssignment_defaultValue_optional() { |
- Source source = addSource(EngineTestCase.createSource(["f([String x = 0]) {", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
- verify([source]); |
- } |
- void test_invalidAssignment_instanceVariable() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int x;", |
- "}", |
- "f() {", |
- " A a;", |
- " a.x = '0';", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
- verify([source]); |
- } |
- void test_invalidAssignment_localVariable() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " int x;", " x = '0';", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
- verify([source]); |
- } |
- void test_invalidAssignment_staticVariable() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static int x;", |
- "}", |
- "f() {", |
- " A.x = '0';", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
- verify([source]); |
- } |
- void test_invalidAssignment_topLevelVariableDeclaration() { |
- Source source = addSource(EngineTestCase.createSource(["int x = 'string';"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
- verify([source]); |
- } |
- void test_invalidAssignment_variableDeclaration() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x = 'string';", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
- verify([source]); |
- } |
- void test_invocationOfNonFunction_class() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " void m() {", " A();", " }", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
- } |
- void test_invocationOfNonFunction_localVariable() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " int x;", " return x();", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
- verify([source]); |
- } |
- void test_invocationOfNonFunction_ordinaryInvocation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static int x;", |
- "}", |
- "class B {", |
- " m() {", |
- " A.x();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
- } |
- void test_invocationOfNonFunction_staticInvocation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static int get g => 0;", |
- " f() {", |
- " A.g();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
- } |
- void test_invocationOfNonFunction_superExpression() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int get g => 0;", |
- "}", |
- "class B extends A {", |
- " m() {", |
- " var v = super.g();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
- verify([source]); |
- } |
- void test_invocationOfNonFunctionExpression_literal() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " 3(5);", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION]); |
- verify([source]); |
- } |
- void test_nonBoolCondition_conditional() { |
- Source source = addSource(EngineTestCase.createSource(["f() { return 3 ? 2 : 1; }"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
- verify([source]); |
- } |
- void test_nonBoolCondition_do() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " do {} while (3);", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
- verify([source]); |
- } |
- void test_nonBoolCondition_if() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " if (3) return 2; else return 1;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
- verify([source]); |
- } |
- void test_nonBoolCondition_while() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " while (3) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
- verify([source]); |
- } |
- void test_nonBoolExpression_functionType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int makeAssertion() => 1;", |
- "f() {", |
- " assert(makeAssertion);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.NON_BOOL_EXPRESSION]); |
- verify([source]); |
- } |
- void test_nonBoolExpression_interfaceType() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " assert(0);", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.NON_BOOL_EXPRESSION]); |
- verify([source]); |
- } |
- void test_nonTypeAsTypeArgument_notAType() { |
- Source source = addSource(EngineTestCase.createSource(["int A;", "class B<E> {}", "f(B<A> b) {}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]); |
- verify([source]); |
- } |
- void test_nonTypeAsTypeArgument_undefinedIdentifier() { |
- Source source = addSource(EngineTestCase.createSource(["class B<E> {}", "f(B<A> b) {}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_expressionFunctionBody_function() { |
- Source source = addSource(EngineTestCase.createSource(["int f() => '0';"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_expressionFunctionBody_getter() { |
- Source source = addSource(EngineTestCase.createSource(["int get g => '0';"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_expressionFunctionBody_localFunction() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " String m() {", |
- " int f() => '0';", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_expressionFunctionBody_method() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int f() => '0';", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_expressionFunctionBody_void() { |
- Source source = addSource(EngineTestCase.createSource(["void f() => 42;"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_function() { |
- Source source = addSource(EngineTestCase.createSource(["int f() { return '0'; }"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_getter() { |
- Source source = addSource(EngineTestCase.createSource(["int get g { return '0'; }"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_localFunction() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " String m() {", |
- " int f() { return '0'; }", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_method() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int f() { return '0'; }", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
- verify([source]); |
- } |
- void test_returnOfInvalidType_void() { |
- Source source = addSource(EngineTestCase.createSource(["void f() { return 42; }"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_classTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class C {}", |
- "class G<E extends A> {}", |
- "class D = G<B> with C;"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_extends() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "class C extends G<B>{}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_fieldFormalParameter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "class C {", |
- " var f;", |
- " C(G<B> this.f) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_functionReturnType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "G<B> f() {}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_functionTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "typedef G<B> f();"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_functionTypedFormalParameter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "f(G<B> h()) {}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_implements() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "class C implements G<B>{}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_is() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "var b = 1 is G<B>;"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_methodReturnType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "class C {", |
- " G<B> m() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_new() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "f() { return new G<B>(); }"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_new_superTypeOfUpperBound() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {}", |
- "class C extends B {}", |
- "class G<E extends B> {}", |
- "f() { return new G<A>(); }"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_parameter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "f(G<B> g) {}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_redirectingConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class X<T extends A> {", |
- " X(int x, int y) {}", |
- " factory X.name(int x, int y) = X<B>;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_typeArgumentList() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class C<E> {}", |
- "class D<E extends A> {}", |
- "C<D<B>> Var;"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_typeParameter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class C {}", |
- "class G<E extends A> {}", |
- "class D<F extends G<B>> {}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_variableDeclaration() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "G<B> g;"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_with() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {}", |
- "class C extends Object with G<B>{}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_typeParameterSupertypeOfItsBound() { |
- Source source = addSource(EngineTestCase.createSource(["class A<T extends T> {", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.TYPE_PARAMETER_SUPERTYPE_OF_ITS_BOUND]); |
- verify([source]); |
- } |
- void test_typePromotion_booleanAnd_useInRight_accessedInClosureRight_mutated() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "callMe(f()) { f(); }", |
- "main(Object p) {", |
- " (p is String) && callMe(() { p.length; });", |
- " p = 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_typePromotion_booleanAnd_useInRight_mutatedInLeft() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main(Object p) {", |
- " ((p is String) && ((p = 42) == 42)) && p.length != 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_typePromotion_booleanAnd_useInRight_mutatedInRight() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main(Object p) {", |
- " (p is String) && (((p = 42) == 42) && p.length != 0);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_typePromotion_conditional_useInThen_accessedInClosure_hasAssignment_after() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "callMe(f()) { f(); }", |
- "main(Object p) {", |
- " p is String ? callMe(() { p.length; }) : 0;", |
- " p = 42;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_typePromotion_conditional_useInThen_accessedInClosure_hasAssignment_before() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "callMe(f()) { f(); }", |
- "main(Object p) {", |
- " p = 42;", |
- " p is String ? callMe(() { p.length; }) : 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_typePromotion_conditional_useInThen_hasAssignment() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main(Object p) {", |
- " p is String ? (p.length + (p = 42)) : 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_typePromotion_if_accessedInClosure_hasAssignment() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "callMe(f()) { f(); }", |
- "main(Object p) {", |
- " if (p is String) {", |
- " callMe(() {", |
- " p.length;", |
- " });", |
- " }", |
- " p = 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_typePromotion_if_and_right_hasAssignment() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main(Object p) {", |
- " if (p is String && (p = null) == null) {", |
- " p.length;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_typePromotion_if_hasAssignment_after() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main(Object p) {", |
- " if (p is String) {", |
- " p.length;", |
- " p = 0;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_typePromotion_if_hasAssignment_before() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "main(Object p) {", |
- " if (p is String) {", |
- " p = 0;", |
- " p.length;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_undefinedGetter() { |
- Source source = addSource(EngineTestCase.createSource(["class T {}", "f(T e) { return e.m; }"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_undefinedGetter_static() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "var a = A.B;"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]); |
- } |
- void test_undefinedMethod() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " void m() {", " n();", " }", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]); |
- } |
- void test_undefinedMethod_assignmentExpression() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {", |
- " f(A a) {", |
- " A a2 = new A();", |
- " a += a2;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]); |
- } |
- void test_undefinedMethod_ignoreTypePropagation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " m() {}", |
- "}", |
- "class C {", |
- " f() {", |
- " A a = new B();", |
- " a.m();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]); |
- } |
- void test_undefinedMethod_private() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "class A {", " _foo() {}", "}"])); |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib.dart';", |
- "class B extends A {", |
- " test() {", |
- " _foo();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]); |
- } |
- void test_undefinedOperator_indexBoth() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "f(A a) {", " a[0]++;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedOperator_indexGetter() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "f(A a) {", " a[0];", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedOperator_indexSetter() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "f(A a) {", " a[0] = 1;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedOperator_plus() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "f(A a) {", " a + 1;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedOperator_postfixExpression() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "f(A a) {", " a++;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedOperator_prefixExpression() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "f(A a) {", " ++a;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedSetter() { |
- Source source = addSource(EngineTestCase.createSource(["class T {}", "f(T e1) { e1.m = 0; }"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SETTER]); |
- } |
- void test_undefinedSetter_static() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "f() { A.B = 0;}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SETTER]); |
- } |
- void test_undefinedSuperMethod() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " m() { return super.m(); }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SUPER_METHOD]); |
- } |
- void test_unqualifiedReferenceToNonLocalStaticMember_getter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static int get a => 0;", |
- "}", |
- "class B extends A {", |
- " int b() {", |
- " return a;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER]); |
- verify([source]); |
- } |
- void test_unqualifiedReferenceToNonLocalStaticMember_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static void a() {}", |
- "}", |
- "class B extends A {", |
- " void b() {", |
- " a();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER]); |
- verify([source]); |
- } |
- void test_unqualifiedReferenceToNonLocalStaticMember_setter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static set a(x) {}", |
- "}", |
- "class B extends A {", |
- " b(y) {", |
- " a = y;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER]); |
- verify([source]); |
- } |
- void test_wrongNumberOfTypeArguments_tooFew() { |
- Source source = addSource(EngineTestCase.createSource(["class A<E, F> {}", "A<A> a = null;"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_wrongNumberOfTypeArguments_tooMany() { |
- Source source = addSource(EngineTestCase.createSource(["class A<E> {}", "A<A, A> a = null;"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_wrongNumberOfTypeArguments_typeTest_tooFew() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class C<K, V> {}", |
- "f(p) {", |
- " return p is C<A>;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_wrongNumberOfTypeArguments_typeTest_tooMany() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class C<E> {}", |
- "f(p) {", |
- " return p is C<A, A>;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
- verify([source]); |
- } |
- static dartSuite() { |
- _ut.group('StaticTypeWarningCodeTest', () { |
- _ut.test('test_expectedOneListTypeArgument', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_expectedOneListTypeArgument); |
- }); |
- _ut.test('test_expectedTwoMapTypeArguments_one', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_expectedTwoMapTypeArguments_one); |
- }); |
- _ut.test('test_expectedTwoMapTypeArguments_three', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_expectedTwoMapTypeArguments_three); |
- }); |
- _ut.test('test_inconsistentMethodInheritance_paramCount', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_inconsistentMethodInheritance_paramCount); |
- }); |
- _ut.test('test_inconsistentMethodInheritance_paramType', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_inconsistentMethodInheritance_paramType); |
- }); |
- _ut.test('test_inconsistentMethodInheritance_returnType', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_inconsistentMethodInheritance_returnType); |
- }); |
- _ut.test('test_instanceAccessToStaticMember_method_invocation', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceAccessToStaticMember_method_invocation); |
- }); |
- _ut.test('test_instanceAccessToStaticMember_method_reference', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceAccessToStaticMember_method_reference); |
- }); |
- _ut.test('test_instanceAccessToStaticMember_propertyAccess_field', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceAccessToStaticMember_propertyAccess_field); |
- }); |
- _ut.test('test_instanceAccessToStaticMember_propertyAccess_getter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceAccessToStaticMember_propertyAccess_getter); |
- }); |
- _ut.test('test_instanceAccessToStaticMember_propertyAccess_setter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceAccessToStaticMember_propertyAccess_setter); |
- }); |
- _ut.test('test_invalidAssignment_compoundAssignment', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_compoundAssignment); |
- }); |
- _ut.test('test_invalidAssignment_defaultValue_named', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_defaultValue_named); |
- }); |
- _ut.test('test_invalidAssignment_defaultValue_optional', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_defaultValue_optional); |
- }); |
- _ut.test('test_invalidAssignment_instanceVariable', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_instanceVariable); |
- }); |
- _ut.test('test_invalidAssignment_localVariable', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_localVariable); |
- }); |
- _ut.test('test_invalidAssignment_staticVariable', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_staticVariable); |
- }); |
- _ut.test('test_invalidAssignment_topLevelVariableDeclaration', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_topLevelVariableDeclaration); |
- }); |
- _ut.test('test_invalidAssignment_variableDeclaration', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAssignment_variableDeclaration); |
- }); |
- _ut.test('test_invocationOfNonFunctionExpression_literal', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunctionExpression_literal); |
- }); |
- _ut.test('test_invocationOfNonFunction_class', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunction_class); |
- }); |
- _ut.test('test_invocationOfNonFunction_localVariable', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunction_localVariable); |
- }); |
- _ut.test('test_invocationOfNonFunction_ordinaryInvocation', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunction_ordinaryInvocation); |
- }); |
- _ut.test('test_invocationOfNonFunction_staticInvocation', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunction_staticInvocation); |
- }); |
- _ut.test('test_invocationOfNonFunction_superExpression', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invocationOfNonFunction_superExpression); |
- }); |
- _ut.test('test_nonBoolCondition_conditional', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonBoolCondition_conditional); |
- }); |
- _ut.test('test_nonBoolCondition_do', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonBoolCondition_do); |
- }); |
- _ut.test('test_nonBoolCondition_if', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonBoolCondition_if); |
- }); |
- _ut.test('test_nonBoolCondition_while', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonBoolCondition_while); |
- }); |
- _ut.test('test_nonBoolExpression_functionType', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonBoolExpression_functionType); |
- }); |
- _ut.test('test_nonBoolExpression_interfaceType', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonBoolExpression_interfaceType); |
- }); |
- _ut.test('test_nonTypeAsTypeArgument_notAType', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonTypeAsTypeArgument_notAType); |
- }); |
- _ut.test('test_nonTypeAsTypeArgument_undefinedIdentifier', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonTypeAsTypeArgument_undefinedIdentifier); |
- }); |
- _ut.test('test_returnOfInvalidType_expressionFunctionBody_function', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_expressionFunctionBody_function); |
- }); |
- _ut.test('test_returnOfInvalidType_expressionFunctionBody_getter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_expressionFunctionBody_getter); |
- }); |
- _ut.test('test_returnOfInvalidType_expressionFunctionBody_localFunction', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_expressionFunctionBody_localFunction); |
- }); |
- _ut.test('test_returnOfInvalidType_expressionFunctionBody_method', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_expressionFunctionBody_method); |
- }); |
- _ut.test('test_returnOfInvalidType_expressionFunctionBody_void', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_expressionFunctionBody_void); |
- }); |
- _ut.test('test_returnOfInvalidType_function', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_function); |
- }); |
- _ut.test('test_returnOfInvalidType_getter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_getter); |
- }); |
- _ut.test('test_returnOfInvalidType_localFunction', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_localFunction); |
- }); |
- _ut.test('test_returnOfInvalidType_method', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_method); |
- }); |
- _ut.test('test_returnOfInvalidType_void', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_returnOfInvalidType_void); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_classTypeAlias', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_classTypeAlias); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_extends', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_extends); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_fieldFormalParameter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_fieldFormalParameter); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_functionReturnType', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_functionReturnType); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_functionTypeAlias', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_functionTypeAlias); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_functionTypedFormalParameter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_functionTypedFormalParameter); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_implements', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_implements); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_is', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_is); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_methodReturnType', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_methodReturnType); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_new', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_new); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_new_superTypeOfUpperBound', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_new_superTypeOfUpperBound); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_parameter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_parameter); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_redirectingConstructor', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_redirectingConstructor); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_typeArgumentList', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_typeArgumentList); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_typeParameter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_typeParameter); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_variableDeclaration', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_variableDeclaration); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_with', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_with); |
- }); |
- _ut.test('test_typeParameterSupertypeOfItsBound', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeParameterSupertypeOfItsBound); |
- }); |
- _ut.test('test_typePromotion_booleanAnd_useInRight_accessedInClosureRight_mutated', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typePromotion_booleanAnd_useInRight_accessedInClosureRight_mutated); |
- }); |
- _ut.test('test_typePromotion_booleanAnd_useInRight_mutatedInLeft', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typePromotion_booleanAnd_useInRight_mutatedInLeft); |
- }); |
- _ut.test('test_typePromotion_booleanAnd_useInRight_mutatedInRight', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typePromotion_booleanAnd_useInRight_mutatedInRight); |
- }); |
- _ut.test('test_typePromotion_conditional_useInThen_accessedInClosure_hasAssignment_after', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typePromotion_conditional_useInThen_accessedInClosure_hasAssignment_after); |
- }); |
- _ut.test('test_typePromotion_conditional_useInThen_accessedInClosure_hasAssignment_before', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typePromotion_conditional_useInThen_accessedInClosure_hasAssignment_before); |
- }); |
- _ut.test('test_typePromotion_conditional_useInThen_hasAssignment', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typePromotion_conditional_useInThen_hasAssignment); |
- }); |
- _ut.test('test_typePromotion_if_accessedInClosure_hasAssignment', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_accessedInClosure_hasAssignment); |
- }); |
- _ut.test('test_typePromotion_if_and_right_hasAssignment', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_and_right_hasAssignment); |
- }); |
- _ut.test('test_typePromotion_if_hasAssignment_after', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_hasAssignment_after); |
- }); |
- _ut.test('test_typePromotion_if_hasAssignment_before', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typePromotion_if_hasAssignment_before); |
- }); |
- _ut.test('test_undefinedGetter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedGetter); |
- }); |
- _ut.test('test_undefinedGetter_static', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedGetter_static); |
- }); |
- _ut.test('test_undefinedMethod', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedMethod); |
- }); |
- _ut.test('test_undefinedMethod_assignmentExpression', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedMethod_assignmentExpression); |
- }); |
- _ut.test('test_undefinedMethod_ignoreTypePropagation', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedMethod_ignoreTypePropagation); |
- }); |
- _ut.test('test_undefinedMethod_private', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedMethod_private); |
- }); |
- _ut.test('test_undefinedOperator_indexBoth', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_indexBoth); |
- }); |
- _ut.test('test_undefinedOperator_indexGetter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_indexGetter); |
- }); |
- _ut.test('test_undefinedOperator_indexSetter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_indexSetter); |
- }); |
- _ut.test('test_undefinedOperator_plus', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_plus); |
- }); |
- _ut.test('test_undefinedOperator_postfixExpression', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_postfixExpression); |
- }); |
- _ut.test('test_undefinedOperator_prefixExpression', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_prefixExpression); |
- }); |
- _ut.test('test_undefinedSetter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedSetter); |
- }); |
- _ut.test('test_undefinedSetter_static', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedSetter_static); |
- }); |
- _ut.test('test_undefinedSuperMethod', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedSuperMethod); |
- }); |
- _ut.test('test_unqualifiedReferenceToNonLocalStaticMember_getter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_unqualifiedReferenceToNonLocalStaticMember_getter); |
- }); |
- _ut.test('test_unqualifiedReferenceToNonLocalStaticMember_method', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_unqualifiedReferenceToNonLocalStaticMember_method); |
- }); |
- _ut.test('test_unqualifiedReferenceToNonLocalStaticMember_setter', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_unqualifiedReferenceToNonLocalStaticMember_setter); |
- }); |
- _ut.test('test_wrongNumberOfTypeArguments_tooFew', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfTypeArguments_tooFew); |
- }); |
- _ut.test('test_wrongNumberOfTypeArguments_tooMany', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfTypeArguments_tooMany); |
- }); |
- _ut.test('test_wrongNumberOfTypeArguments_typeTest_tooFew', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfTypeArguments_typeTest_tooFew); |
- }); |
- _ut.test('test_wrongNumberOfTypeArguments_typeTest_tooMany', () { |
- final __test = new StaticTypeWarningCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfTypeArguments_typeTest_tooMany); |
- }); |
- }); |
- } |
-} |
-class HintCodeTest extends ResolverTestCase { |
- void fail_isInt() { |
- Source source = addSource(EngineTestCase.createSource(["var v = 1 is int;"])); |
- resolve(source); |
- assertErrors(source, [HintCode.IS_INT]); |
- verify([source]); |
- } |
- void fail_isNotInt() { |
- Source source = addSource(EngineTestCase.createSource(["var v = 1 is! int;"])); |
- resolve(source); |
- assertErrors(source, [HintCode.IS_NOT_INT]); |
- verify([source]); |
- } |
- void fail_overrideEqualsButNotHashCode() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " bool operator ==(x) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.OVERRIDE_EQUALS_BUT_NOT_HASH_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_conditionalElse() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " true ? 1 : 2;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_conditionalElse_nested() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " true ? true : false && false;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_conditionalIf() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " false ? 1 : 2;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_conditionalIf_nested() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " false ? false && false : true;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_else() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " if(true) {} else {}", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_else_nested() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " if(true) {} else {if (false) {}}", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_if() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " if(false) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_if_nested() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " if(false) {if(false) {}}", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_while() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " while(false) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_while_nested() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " while(false) {if(false) {}}", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadCatch_catchFollowingCatch() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "f() {", |
- " try {} catch (e) {} catch (e) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH]); |
- verify([source]); |
- } |
- void test_deadCode_deadCatch_catchFollowingCatch_nested() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "f() {", |
- " try {} catch (e) {} catch (e) {if(false) {}}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH]); |
- verify([source]); |
- } |
- void test_deadCode_deadCatch_catchFollowingCatch_object() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " try {} on Object catch (e) {} catch (e) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH]); |
- verify([source]); |
- } |
- void test_deadCode_deadCatch_catchFollowingCatch_object_nested() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " try {} on Object catch (e) {} catch (e) {if(false) {}}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH]); |
- verify([source]); |
- } |
- void test_deadCode_deadCatch_onCatchSubtype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {}", |
- "f() {", |
- " try {} on A catch (e) {} on B catch (e) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE_ON_CATCH_SUBTYPE]); |
- verify([source]); |
- } |
- void test_deadCode_deadCatch_onCatchSubtype_nested() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {}", |
- "f() {", |
- " try {} on A catch (e) {} on B catch (e) {if(false) {}}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE_ON_CATCH_SUBTYPE]); |
- verify([source]); |
- } |
- void test_deadCode_deadOperandLHS_and() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " bool b = false && false;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadOperandLHS_and_nested() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " bool b = false && (false && false);", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadOperandLHS_or() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " bool b = true || true;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_deadOperandLHS_or_nested() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " bool b = true || (false && false);", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_statementAfterReturn_function() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " var one = 1;", |
- " return;", |
- " var two = 2;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_statementAfterReturn_ifStatement() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(bool b) {", |
- " if(b) {", |
- " var one = 1;", |
- " return;", |
- " var two = 2;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_statementAfterReturn_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {", |
- " var one = 1;", |
- " return;", |
- " var two = 2;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_statementAfterReturn_nested() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " var one = 1;", |
- " return;", |
- " if(false) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_deadCode_statementAfterReturn_twoReturns() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " var one = 1;", |
- " return;", |
- " var two = 2;", |
- " return;", |
- " var three = 3;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_divisionOptimization_double() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(double x, double y) {", |
- " var v = (x / y).toInt();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DIVISION_OPTIMIZATION]); |
- verify([source]); |
- } |
- void test_divisionOptimization_int() { |
- Source source = addSource(EngineTestCase.createSource(["f(int x, int y) {", " var v = (x / y).toInt();", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DIVISION_OPTIMIZATION]); |
- verify([source]); |
- } |
- void test_divisionOptimization_propagatedType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(x, y) {", |
- " x = 1;", |
- " y = 1;", |
- " var v = (x / y).toInt();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DIVISION_OPTIMIZATION]); |
- verify([source]); |
- } |
- void test_divisionOptimization_wrappedBinaryExpression() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(int x, int y) {", |
- " var v = (((x / y))).toInt();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DIVISION_OPTIMIZATION]); |
- verify([source]); |
- } |
- void test_duplicateImport() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart';", |
- "import 'lib1.dart';", |
- "A a;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DUPLICATE_IMPORT]); |
- verify([source]); |
- } |
- void test_duplicateImport2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart';", |
- "import 'lib1.dart';", |
- "import 'lib1.dart';", |
- "A a;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DUPLICATE_IMPORT, HintCode.DUPLICATE_IMPORT]); |
- verify([source]); |
- } |
- void test_duplicateImport3() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart' as M show A hide B;", |
- "import 'lib1.dart' as M show A hide B;", |
- "M.A a;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}", "class B {}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.DUPLICATE_IMPORT, HintCode.UNUSED_IMPORT]); |
- verify([source]); |
- } |
- void test_isDouble() { |
- Source source = addSource(EngineTestCase.createSource(["var v = 1 is double;"])); |
- resolve(source); |
- assertErrors(source, [HintCode.IS_DOUBLE]); |
- verify([source]); |
- } |
- void test_isNotDouble() { |
- Source source = addSource(EngineTestCase.createSource(["var v = 1 is! double;"])); |
- resolve(source); |
- assertErrors(source, [HintCode.IS_NOT_DOUBLE]); |
- verify([source]); |
- } |
- void test_overriddingPrivateMember_getter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "class B extends A {", |
- " get _g => 0;", |
- "}"])); |
- Source source2 = addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {", " get _g => 0;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.OVERRIDDING_PRIVATE_MEMBER]); |
- verify([source, source2]); |
- } |
- void test_overriddingPrivateMember_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "class B extends A {", |
- " _m(int x) => 0;", |
- "}"])); |
- Source source2 = addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {", " _m(int x) => 0;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.OVERRIDDING_PRIVATE_MEMBER]); |
- verify([source, source2]); |
- } |
- void test_overriddingPrivateMember_method2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "class B extends A {}", |
- "class C extends B {", |
- " _m(int x) => 0;", |
- "}"])); |
- Source source2 = addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {", " _m(int x) => 0;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.OVERRIDDING_PRIVATE_MEMBER]); |
- verify([source, source2]); |
- } |
- void test_overriddingPrivateMember_setter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "class B extends A {", |
- " set _s(int x) {}", |
- "}"])); |
- Source source2 = addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {", " set _s(int x) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.OVERRIDDING_PRIVATE_MEMBER]); |
- verify([source, source2]); |
- } |
- void test_typeCheck_type_is_Null() { |
- Source source = addSource(EngineTestCase.createSource(["m(i) {", " bool b = i is Null;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.TYPE_CHECK_IS_NULL]); |
- verify([source]); |
- } |
- void test_typeCheck_type_not_Null() { |
- Source source = addSource(EngineTestCase.createSource(["m(i) {", " bool b = i is! Null;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.TYPE_CHECK_IS_NOT_NULL]); |
- verify([source]); |
- } |
- void test_undefinedGetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "f(var a) {", |
- " if(a is A) {", |
- " return a.m;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNDEFINED_GETTER]); |
- } |
- void test_undefinedGetter_message() { |
- JUnitTestCase.assertEquals(StaticTypeWarningCode.UNDEFINED_GETTER.message, StaticWarningCode.UNDEFINED_GETTER.message); |
- } |
- void test_undefinedMethod() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " var a = 'str';", |
- " a.notAMethodOnString();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNDEFINED_METHOD]); |
- } |
- void test_undefinedMethod_assignmentExpression() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {", |
- " f(var a, var a2) {", |
- " a = new A();", |
- " a2 = new A();", |
- " a += a2;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNDEFINED_METHOD]); |
- } |
- void test_undefinedOperator_binaryExpression() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a + 1;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedOperator_indexBoth() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a[0]++;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedOperator_indexGetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a[0];", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedOperator_indexSetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a[0] = 1;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedOperator_postfixExpression() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a++;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedOperator_prefixExpression() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "f(var a) {", |
- " if(a is A) {", |
- " ++a;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNDEFINED_OPERATOR]); |
- } |
- void test_undefinedSetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a.m = 0;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNDEFINED_SETTER]); |
- } |
- void test_undefinedSetter_message() { |
- JUnitTestCase.assertEquals(StaticTypeWarningCode.UNDEFINED_SETTER.message, StaticWarningCode.UNDEFINED_SETTER.message); |
- } |
- void test_unnecessaryCast_type_supertype() { |
- Source source = addSource(EngineTestCase.createSource(["m(int i) {", " var b = i as Object;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNNECESSARY_CAST]); |
- verify([source]); |
- } |
- void test_unnecessaryCast_type_type() { |
- Source source = addSource(EngineTestCase.createSource(["m(num i) {", " var b = i as num;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNNECESSARY_CAST]); |
- verify([source]); |
- } |
- void test_unnecessaryTypeCheck_null_is_Null() { |
- Source source = addSource(EngineTestCase.createSource(["bool b = null is Null;"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_TRUE]); |
- verify([source]); |
- } |
- void test_unnecessaryTypeCheck_null_not_Null() { |
- Source source = addSource(EngineTestCase.createSource(["bool b = null is! Null;"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_FALSE]); |
- verify([source]); |
- } |
- void test_unnecessaryTypeCheck_type_is_dynamic() { |
- Source source = addSource(EngineTestCase.createSource(["m(i) {", " bool b = i is dynamic;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_TRUE]); |
- verify([source]); |
- } |
- void test_unnecessaryTypeCheck_type_is_object() { |
- Source source = addSource(EngineTestCase.createSource(["m(i) {", " bool b = i is Object;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_TRUE]); |
- verify([source]); |
- } |
- void test_unnecessaryTypeCheck_type_not_dynamic() { |
- Source source = addSource(EngineTestCase.createSource(["m(i) {", " bool b = i is! dynamic;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_FALSE]); |
- verify([source]); |
- } |
- void test_unnecessaryTypeCheck_type_not_object() { |
- Source source = addSource(EngineTestCase.createSource(["m(i) {", " bool b = i is! Object;", "}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_FALSE]); |
- verify([source]); |
- } |
- void test_unusedImport() { |
- Source source = addSource(EngineTestCase.createSource(["library L;", "import 'lib1.dart';"])); |
- Source source2 = addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNUSED_IMPORT]); |
- assertNoErrors(source2); |
- verify([source, source2]); |
- } |
- void test_unusedImport_as() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart';", |
- "import 'lib1.dart' as one;", |
- "one.A a;"])); |
- Source source2 = addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNUSED_IMPORT]); |
- assertNoErrors(source2); |
- verify([source, source2]); |
- } |
- void test_unusedImport_hide() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart';", |
- "import 'lib1.dart' hide A;", |
- "A a;"])); |
- Source source2 = addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNUSED_IMPORT]); |
- assertNoErrors(source2); |
- verify([source, source2]); |
- } |
- void test_unusedImport_show() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart' show A;", |
- "import 'lib1.dart' show B;", |
- "A a;"])); |
- Source source2 = addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}", "class B {}"])); |
- resolve(source); |
- assertErrors(source, [HintCode.UNUSED_IMPORT]); |
- assertNoErrors(source2); |
- verify([source, source2]); |
- } |
- static dartSuite() { |
- _ut.group('HintCodeTest', () { |
- _ut.test('test_deadCode_deadBlock_conditionalElse', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_conditionalElse); |
- }); |
- _ut.test('test_deadCode_deadBlock_conditionalElse_nested', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_conditionalElse_nested); |
- }); |
- _ut.test('test_deadCode_deadBlock_conditionalIf', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_conditionalIf); |
- }); |
- _ut.test('test_deadCode_deadBlock_conditionalIf_nested', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_conditionalIf_nested); |
- }); |
- _ut.test('test_deadCode_deadBlock_else', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_else); |
- }); |
- _ut.test('test_deadCode_deadBlock_else_nested', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_else_nested); |
- }); |
- _ut.test('test_deadCode_deadBlock_if', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_if); |
- }); |
- _ut.test('test_deadCode_deadBlock_if_nested', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_if_nested); |
- }); |
- _ut.test('test_deadCode_deadBlock_while', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_while); |
- }); |
- _ut.test('test_deadCode_deadBlock_while_nested', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_while_nested); |
- }); |
- _ut.test('test_deadCode_deadCatch_catchFollowingCatch', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadCatch_catchFollowingCatch); |
- }); |
- _ut.test('test_deadCode_deadCatch_catchFollowingCatch_nested', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadCatch_catchFollowingCatch_nested); |
- }); |
- _ut.test('test_deadCode_deadCatch_catchFollowingCatch_object', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadCatch_catchFollowingCatch_object); |
- }); |
- _ut.test('test_deadCode_deadCatch_catchFollowingCatch_object_nested', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadCatch_catchFollowingCatch_object_nested); |
- }); |
- _ut.test('test_deadCode_deadCatch_onCatchSubtype', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadCatch_onCatchSubtype); |
- }); |
- _ut.test('test_deadCode_deadCatch_onCatchSubtype_nested', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadCatch_onCatchSubtype_nested); |
- }); |
- _ut.test('test_deadCode_deadOperandLHS_and', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadOperandLHS_and); |
- }); |
- _ut.test('test_deadCode_deadOperandLHS_and_nested', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadOperandLHS_and_nested); |
- }); |
- _ut.test('test_deadCode_deadOperandLHS_or', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadOperandLHS_or); |
- }); |
- _ut.test('test_deadCode_deadOperandLHS_or_nested', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadOperandLHS_or_nested); |
- }); |
- _ut.test('test_deadCode_statementAfterReturn_function', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_statementAfterReturn_function); |
- }); |
- _ut.test('test_deadCode_statementAfterReturn_ifStatement', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_statementAfterReturn_ifStatement); |
- }); |
- _ut.test('test_deadCode_statementAfterReturn_method', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_statementAfterReturn_method); |
- }); |
- _ut.test('test_deadCode_statementAfterReturn_nested', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_statementAfterReturn_nested); |
- }); |
- _ut.test('test_deadCode_statementAfterReturn_twoReturns', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_statementAfterReturn_twoReturns); |
- }); |
- _ut.test('test_divisionOptimization_double', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_divisionOptimization_double); |
- }); |
- _ut.test('test_divisionOptimization_int', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_divisionOptimization_int); |
- }); |
- _ut.test('test_divisionOptimization_propagatedType', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_divisionOptimization_propagatedType); |
- }); |
- _ut.test('test_divisionOptimization_wrappedBinaryExpression', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_divisionOptimization_wrappedBinaryExpression); |
- }); |
- _ut.test('test_duplicateImport', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateImport); |
- }); |
- _ut.test('test_duplicateImport2', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateImport2); |
- }); |
- _ut.test('test_duplicateImport3', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateImport3); |
- }); |
- _ut.test('test_isDouble', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_isDouble); |
- }); |
- _ut.test('test_isNotDouble', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_isNotDouble); |
- }); |
- _ut.test('test_overriddingPrivateMember_getter', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_overriddingPrivateMember_getter); |
- }); |
- _ut.test('test_overriddingPrivateMember_method', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_overriddingPrivateMember_method); |
- }); |
- _ut.test('test_overriddingPrivateMember_method2', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_overriddingPrivateMember_method2); |
- }); |
- _ut.test('test_overriddingPrivateMember_setter', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_overriddingPrivateMember_setter); |
- }); |
- _ut.test('test_typeCheck_type_is_Null', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_typeCheck_type_is_Null); |
- }); |
- _ut.test('test_typeCheck_type_not_Null', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_typeCheck_type_not_Null); |
- }); |
- _ut.test('test_undefinedGetter', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedGetter); |
- }); |
- _ut.test('test_undefinedGetter_message', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedGetter_message); |
- }); |
- _ut.test('test_undefinedMethod', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedMethod); |
- }); |
- _ut.test('test_undefinedMethod_assignmentExpression', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedMethod_assignmentExpression); |
- }); |
- _ut.test('test_undefinedOperator_binaryExpression', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_binaryExpression); |
- }); |
- _ut.test('test_undefinedOperator_indexBoth', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_indexBoth); |
- }); |
- _ut.test('test_undefinedOperator_indexGetter', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_indexGetter); |
- }); |
- _ut.test('test_undefinedOperator_indexSetter', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_indexSetter); |
- }); |
- _ut.test('test_undefinedOperator_postfixExpression', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_postfixExpression); |
- }); |
- _ut.test('test_undefinedOperator_prefixExpression', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_prefixExpression); |
- }); |
- _ut.test('test_undefinedSetter', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedSetter); |
- }); |
- _ut.test('test_undefinedSetter_message', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedSetter_message); |
- }); |
- _ut.test('test_unnecessaryCast_type_supertype', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unnecessaryCast_type_supertype); |
- }); |
- _ut.test('test_unnecessaryCast_type_type', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unnecessaryCast_type_type); |
- }); |
- _ut.test('test_unnecessaryTypeCheck_null_is_Null', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unnecessaryTypeCheck_null_is_Null); |
- }); |
- _ut.test('test_unnecessaryTypeCheck_null_not_Null', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unnecessaryTypeCheck_null_not_Null); |
- }); |
- _ut.test('test_unnecessaryTypeCheck_type_is_dynamic', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unnecessaryTypeCheck_type_is_dynamic); |
- }); |
- _ut.test('test_unnecessaryTypeCheck_type_is_object', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unnecessaryTypeCheck_type_is_object); |
- }); |
- _ut.test('test_unnecessaryTypeCheck_type_not_dynamic', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unnecessaryTypeCheck_type_not_dynamic); |
- }); |
- _ut.test('test_unnecessaryTypeCheck_type_not_object', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unnecessaryTypeCheck_type_not_object); |
- }); |
- _ut.test('test_unusedImport', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unusedImport); |
- }); |
- _ut.test('test_unusedImport_as', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unusedImport_as); |
- }); |
- _ut.test('test_unusedImport_hide', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unusedImport_hide); |
- }); |
- _ut.test('test_unusedImport_show', () { |
- final __test = new HintCodeTest(); |
- runJUnitTest(__test, __test.test_unusedImport_show); |
- }); |
- }); |
- } |
-} |
-class TypeResolverVisitorTest extends EngineTestCase { |
- |
- /** |
- * The error listener to which errors will be reported. |
- */ |
- GatheringErrorListener _listener; |
- |
- /** |
- * The object representing the information about the library in which the types are being |
- * resolved. |
- */ |
- Library _library; |
- |
- /** |
- * The type provider used to access the types. |
- */ |
- TestTypeProvider _typeProvider; |
- |
- /** |
- * The visitor used to resolve types needed to form the type hierarchy. |
- */ |
- TypeResolverVisitor _visitor; |
- void fail_visitConstructorDeclaration() { |
- JUnitTestCase.fail("Not yet tested"); |
- _listener.assertNoErrors(); |
- } |
- void fail_visitFunctionDeclaration() { |
- JUnitTestCase.fail("Not yet tested"); |
- _listener.assertNoErrors(); |
- } |
- void fail_visitFunctionTypeAlias() { |
- JUnitTestCase.fail("Not yet tested"); |
- _listener.assertNoErrors(); |
- } |
- void fail_visitFunctionTypedFormalParameter() { |
- JUnitTestCase.fail("Not yet tested"); |
- _listener.assertNoErrors(); |
- } |
- void fail_visitMethodDeclaration() { |
- JUnitTestCase.fail("Not yet tested"); |
- _listener.assertNoErrors(); |
- } |
- void fail_visitVariableDeclaration() { |
- JUnitTestCase.fail("Not yet tested"); |
- ClassElement type = ElementFactory.classElement2("A", []); |
- VariableDeclaration node = ASTFactory.variableDeclaration("a"); |
- ASTFactory.variableDeclarationList(null, ASTFactory.typeName(type, []), [node]); |
- JUnitTestCase.assertSame(type.type, node.name.staticType); |
- _listener.assertNoErrors(); |
- } |
- void setUp() { |
- _listener = new GatheringErrorListener(); |
- SourceFactory factory = new SourceFactory.con2([new FileUriResolver()]); |
- AnalysisContextImpl context = new AnalysisContextImpl(); |
- context.sourceFactory = factory; |
- Source librarySource = new FileBasedSource.con1(factory.contentCache, FileUtilities2.createFile("/lib.dart")); |
- _library = new Library(context, _listener, librarySource); |
- LibraryElementImpl element = new LibraryElementImpl(context, ASTFactory.libraryIdentifier2(["lib"])); |
- element.definingCompilationUnit = new CompilationUnitElementImpl("lib.dart"); |
- _library.libraryElement = element; |
- _typeProvider = new TestTypeProvider(); |
- _visitor = new TypeResolverVisitor.con1(_library, librarySource, _typeProvider); |
- } |
- void test_visitCatchClause_exception() { |
- CatchClause clause = ASTFactory.catchClause("e", []); |
- SimpleIdentifier exceptionParameter = clause.exceptionParameter; |
- exceptionParameter.staticElement = new LocalVariableElementImpl(exceptionParameter); |
- resolve(clause, _typeProvider.dynamicType, null, []); |
- _listener.assertNoErrors(); |
- } |
- void test_visitCatchClause_exception_stackTrace() { |
- CatchClause clause = ASTFactory.catchClause2("e", "s", []); |
- SimpleIdentifier exceptionParameter = clause.exceptionParameter; |
- exceptionParameter.staticElement = new LocalVariableElementImpl(exceptionParameter); |
- SimpleIdentifier stackTraceParameter = clause.stackTraceParameter; |
- stackTraceParameter.staticElement = new LocalVariableElementImpl(stackTraceParameter); |
- resolve(clause, _typeProvider.dynamicType, _typeProvider.stackTraceType, []); |
- _listener.assertNoErrors(); |
- } |
- void test_visitCatchClause_on_exception() { |
- ClassElement exceptionElement = ElementFactory.classElement2("E", []); |
- TypeName exceptionType = ASTFactory.typeName(exceptionElement, []); |
- CatchClause clause = ASTFactory.catchClause4(exceptionType, "e", []); |
- SimpleIdentifier exceptionParameter = clause.exceptionParameter; |
- exceptionParameter.staticElement = new LocalVariableElementImpl(exceptionParameter); |
- resolve(clause, exceptionElement.type, null, [exceptionElement]); |
- _listener.assertNoErrors(); |
- } |
- void test_visitCatchClause_on_exception_stackTrace() { |
- ClassElement exceptionElement = ElementFactory.classElement2("E", []); |
- TypeName exceptionType = ASTFactory.typeName(exceptionElement, []); |
- ((exceptionType.name as SimpleIdentifier)).staticElement = exceptionElement; |
- CatchClause clause = ASTFactory.catchClause5(exceptionType, "e", "s", []); |
- SimpleIdentifier exceptionParameter = clause.exceptionParameter; |
- exceptionParameter.staticElement = new LocalVariableElementImpl(exceptionParameter); |
- SimpleIdentifier stackTraceParameter = clause.stackTraceParameter; |
- stackTraceParameter.staticElement = new LocalVariableElementImpl(stackTraceParameter); |
- resolve(clause, exceptionElement.type, _typeProvider.stackTraceType, [exceptionElement]); |
- _listener.assertNoErrors(); |
- } |
- void test_visitClassDeclaration() { |
- ClassElement elementA = ElementFactory.classElement2("A", []); |
- ClassElement elementB = ElementFactory.classElement2("B", []); |
- ClassElement elementC = ElementFactory.classElement2("C", []); |
- ClassElement elementD = ElementFactory.classElement2("D", []); |
- ExtendsClause extendsClause = ASTFactory.extendsClause(ASTFactory.typeName(elementB, [])); |
- WithClause withClause = ASTFactory.withClause([ASTFactory.typeName(elementC, [])]); |
- ImplementsClause implementsClause = ASTFactory.implementsClause([ASTFactory.typeName(elementD, [])]); |
- ClassDeclaration declaration = ASTFactory.classDeclaration(null, "A", null, extendsClause, withClause, implementsClause, []); |
- declaration.name.staticElement = elementA; |
- resolveNode(declaration, [elementA, elementB, elementC, elementD]); |
- JUnitTestCase.assertSame(elementB.type, elementA.supertype); |
- List<InterfaceType> mixins = elementA.mixins; |
- EngineTestCase.assertLength(1, mixins); |
- JUnitTestCase.assertSame(elementC.type, mixins[0]); |
- List<InterfaceType> interfaces = elementA.interfaces; |
- EngineTestCase.assertLength(1, interfaces); |
- JUnitTestCase.assertSame(elementD.type, interfaces[0]); |
- _listener.assertNoErrors(); |
- } |
- void test_visitClassTypeAlias() { |
- ClassElement elementA = ElementFactory.classElement2("A", []); |
- ClassElement elementB = ElementFactory.classElement2("B", []); |
- ClassElement elementC = ElementFactory.classElement2("C", []); |
- ClassElement elementD = ElementFactory.classElement2("D", []); |
- WithClause withClause = ASTFactory.withClause([ASTFactory.typeName(elementC, [])]); |
- ImplementsClause implementsClause = ASTFactory.implementsClause([ASTFactory.typeName(elementD, [])]); |
- ClassTypeAlias alias = ASTFactory.classTypeAlias("A", null, null, ASTFactory.typeName(elementB, []), withClause, implementsClause); |
- alias.name.staticElement = elementA; |
- resolveNode(alias, [elementA, elementB, elementC, elementD]); |
- JUnitTestCase.assertSame(elementB.type, elementA.supertype); |
- List<InterfaceType> mixins = elementA.mixins; |
- EngineTestCase.assertLength(1, mixins); |
- JUnitTestCase.assertSame(elementC.type, mixins[0]); |
- List<InterfaceType> interfaces = elementA.interfaces; |
- EngineTestCase.assertLength(1, interfaces); |
- JUnitTestCase.assertSame(elementD.type, interfaces[0]); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFieldFormalParameter_functionType() { |
- InterfaceType intType = _typeProvider.intType; |
- TypeName intTypeName = ASTFactory.typeName4("int", []); |
- String innerParameterName = "a"; |
- SimpleFormalParameter parameter = ASTFactory.simpleFormalParameter3(innerParameterName); |
- parameter.identifier.staticElement = ElementFactory.requiredParameter(innerParameterName); |
- String outerParameterName = "p"; |
- FormalParameter node = ASTFactory.fieldFormalParameter2(null, intTypeName, outerParameterName, ASTFactory.formalParameterList([parameter])); |
- node.identifier.staticElement = ElementFactory.requiredParameter(outerParameterName); |
- Type2 parameterType = resolve6(node, [intType.element]); |
- EngineTestCase.assertInstanceOf(FunctionType, parameterType); |
- FunctionType functionType = parameterType as FunctionType; |
- JUnitTestCase.assertSame(intType, functionType.returnType); |
- EngineTestCase.assertLength(1, functionType.parameters); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFieldFormalParameter_noType() { |
- String parameterName = "p"; |
- FormalParameter node = ASTFactory.fieldFormalParameter(Keyword.VAR, null, parameterName); |
- node.identifier.staticElement = ElementFactory.requiredParameter(parameterName); |
- JUnitTestCase.assertSame(_typeProvider.dynamicType, resolve6(node, [])); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFieldFormalParameter_type() { |
- InterfaceType intType = _typeProvider.intType; |
- TypeName intTypeName = ASTFactory.typeName4("int", []); |
- String parameterName = "p"; |
- FormalParameter node = ASTFactory.fieldFormalParameter(null, intTypeName, parameterName); |
- node.identifier.staticElement = ElementFactory.requiredParameter(parameterName); |
- JUnitTestCase.assertSame(intType, resolve6(node, [intType.element])); |
- _listener.assertNoErrors(); |
- } |
- void test_visitSimpleFormalParameter_noType() { |
- FormalParameter node = ASTFactory.simpleFormalParameter3("p"); |
- node.identifier.staticElement = new ParameterElementImpl.con1(ASTFactory.identifier3("p")); |
- JUnitTestCase.assertSame(_typeProvider.dynamicType, resolve6(node, [])); |
- _listener.assertNoErrors(); |
- } |
- void test_visitSimpleFormalParameter_type() { |
- InterfaceType intType = _typeProvider.intType; |
- ClassElement intElement = intType.element; |
- FormalParameter node = ASTFactory.simpleFormalParameter4(ASTFactory.typeName(intElement, []), "p"); |
- SimpleIdentifier identifier = node.identifier; |
- ParameterElementImpl element = new ParameterElementImpl.con1(identifier); |
- identifier.staticElement = element; |
- JUnitTestCase.assertSame(intType, resolve6(node, [intElement])); |
- _listener.assertNoErrors(); |
- } |
- void test_visitTypeName_noParameters_noArguments() { |
- ClassElement classA = ElementFactory.classElement2("A", []); |
- TypeName typeName = ASTFactory.typeName(classA, []); |
- typeName.type = null; |
- resolveNode(typeName, [classA]); |
- JUnitTestCase.assertSame(classA.type, typeName.type); |
- _listener.assertNoErrors(); |
- } |
- void test_visitTypeName_parameters_arguments() { |
- ClassElement classA = ElementFactory.classElement2("A", ["E"]); |
- ClassElement classB = ElementFactory.classElement2("B", []); |
- TypeName typeName = ASTFactory.typeName(classA, [ASTFactory.typeName(classB, [])]); |
- typeName.type = null; |
- resolveNode(typeName, [classA, classB]); |
- InterfaceType resultType = typeName.type as InterfaceType; |
- JUnitTestCase.assertSame(classA, resultType.element); |
- List<Type2> resultArguments = resultType.typeArguments; |
- EngineTestCase.assertLength(1, resultArguments); |
- JUnitTestCase.assertSame(classB.type, resultArguments[0]); |
- _listener.assertNoErrors(); |
- } |
- void test_visitTypeName_parameters_noArguments() { |
- ClassElement classA = ElementFactory.classElement2("A", ["E"]); |
- TypeName typeName = ASTFactory.typeName(classA, []); |
- typeName.type = null; |
- resolveNode(typeName, [classA]); |
- InterfaceType resultType = typeName.type as InterfaceType; |
- JUnitTestCase.assertSame(classA, resultType.element); |
- List<Type2> resultArguments = resultType.typeArguments; |
- EngineTestCase.assertLength(1, resultArguments); |
- JUnitTestCase.assertSame(DynamicTypeImpl.instance, resultArguments[0]); |
- _listener.assertNoErrors(); |
- } |
- void test_visitTypeName_void() { |
- ClassElement classA = ElementFactory.classElement2("A", []); |
- TypeName typeName = ASTFactory.typeName4("void", []); |
- resolveNode(typeName, [classA]); |
- JUnitTestCase.assertSame(VoidTypeImpl.instance, typeName.type); |
- _listener.assertNoErrors(); |
- } |
- |
- /** |
- * Analyze the given catch clause and assert that the types of the parameters have been set to the |
- * given types. The types can be null if the catch clause does not have the corresponding |
- * parameter. |
- * |
- * @param node the catch clause to be analyzed |
- * @param exceptionType the expected type of the exception parameter |
- * @param stackTraceType the expected type of the stack trace parameter |
- * @param definedElements the elements that are to be defined in the scope in which the element is |
- * being resolved |
- */ |
- void resolve(CatchClause node, Type2 exceptionType, InterfaceType stackTraceType, List<Element> definedElements) { |
- resolveNode(node, definedElements); |
- SimpleIdentifier exceptionParameter = node.exceptionParameter; |
- if (exceptionParameter != null) { |
- JUnitTestCase.assertSame(exceptionType, exceptionParameter.staticType); |
- } |
- SimpleIdentifier stackTraceParameter = node.stackTraceParameter; |
- if (stackTraceParameter != null) { |
- JUnitTestCase.assertSame(stackTraceType, stackTraceParameter.staticType); |
- } |
- } |
- |
- /** |
- * Return the type associated with the given parameter after the static type analyzer has computed |
- * a type for it. |
- * |
- * @param node the parameter with which the type is associated |
- * @param definedElements the elements that are to be defined in the scope in which the element is |
- * being resolved |
- * @return the type associated with the parameter |
- */ |
- Type2 resolve6(FormalParameter node, List<Element> definedElements) { |
- resolveNode(node, definedElements); |
- return ((node.identifier.staticElement as ParameterElement)).type; |
- } |
- |
- /** |
- * Return the element associated with the given identifier after the resolver has resolved the |
- * identifier. |
- * |
- * @param node the expression to be resolved |
- * @param definedElements the elements that are to be defined in the scope in which the element is |
- * being resolved |
- * @return the element to which the expression was resolved |
- */ |
- void resolveNode(ASTNode node, List<Element> definedElements) { |
- for (Element element in definedElements) { |
- _library.libraryScope.define(element); |
- } |
- node.accept(_visitor); |
- } |
- static dartSuite() { |
- _ut.group('TypeResolverVisitorTest', () { |
- _ut.test('test_visitCatchClause_exception', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitCatchClause_exception); |
- }); |
- _ut.test('test_visitCatchClause_exception_stackTrace', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitCatchClause_exception_stackTrace); |
- }); |
- _ut.test('test_visitCatchClause_on_exception', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitCatchClause_on_exception); |
- }); |
- _ut.test('test_visitCatchClause_on_exception_stackTrace', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitCatchClause_on_exception_stackTrace); |
- }); |
- _ut.test('test_visitClassDeclaration', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitClassDeclaration); |
- }); |
- _ut.test('test_visitClassTypeAlias', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitClassTypeAlias); |
- }); |
- _ut.test('test_visitFieldFormalParameter_functionType', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitFieldFormalParameter_functionType); |
- }); |
- _ut.test('test_visitFieldFormalParameter_noType', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitFieldFormalParameter_noType); |
- }); |
- _ut.test('test_visitFieldFormalParameter_type', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitFieldFormalParameter_type); |
- }); |
- _ut.test('test_visitSimpleFormalParameter_noType', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitSimpleFormalParameter_noType); |
- }); |
- _ut.test('test_visitSimpleFormalParameter_type', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitSimpleFormalParameter_type); |
- }); |
- _ut.test('test_visitTypeName_noParameters_noArguments', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitTypeName_noParameters_noArguments); |
- }); |
- _ut.test('test_visitTypeName_parameters_arguments', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitTypeName_parameters_arguments); |
- }); |
- _ut.test('test_visitTypeName_parameters_noArguments', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitTypeName_parameters_noArguments); |
- }); |
- _ut.test('test_visitTypeName_void', () { |
- final __test = new TypeResolverVisitorTest(); |
- runJUnitTest(__test, __test.test_visitTypeName_void); |
- }); |
- }); |
- } |
-} |
-class ResolverTestCase extends EngineTestCase { |
- |
- /** |
- * The source factory used to create [Source]. |
- */ |
- SourceFactory sourceFactory; |
- |
- /** |
- * The analysis context used to parse the compilation units being resolved. |
- */ |
- AnalysisContextImpl analysisContext; |
- void setUp() { |
- reset(); |
- } |
- |
- /** |
- * Add a source file to the content provider. |
- * |
- * @param contents the contents to be returned by the content provider for the specified file |
- * @return the source object representing the added file |
- */ |
- Source addSource(String contents) => addSource2("/test.dart", contents); |
- |
- /** |
- * Add a source file to the content provider. The file path should be absolute. |
- * |
- * @param filePath the path of the file being added |
- * @param contents the contents to be returned by the content provider for the specified file |
- * @return the source object representing the added file |
- */ |
- Source addSource2(String filePath, String contents) { |
- Source source = cacheSource(filePath, contents); |
- ChangeSet changeSet = new ChangeSet(); |
- changeSet.added(source); |
- analysisContext.applyChanges(changeSet); |
- return source; |
- } |
- |
- /** |
- * Assert that the number of errors reported against the given source matches the number of errors |
- * that are given and that they have the expected error codes. The order in which the errors were |
- * gathered is ignored. |
- * |
- * @param source the source against which the errors should have been reported |
- * @param expectedErrorCodes the error codes of the errors that should have been reported |
- * @throws AnalysisException if the reported errors could not be computed |
- * @throws AssertionFailedError if a different number of errors have been reported than were |
- * expected |
- */ |
- void assertErrors(Source source, List<ErrorCode> expectedErrorCodes) { |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- for (AnalysisError error in analysisContext.computeErrors(source)) { |
- errorListener.onError(error); |
- } |
- errorListener.assertErrors2(expectedErrorCodes); |
- } |
- |
- /** |
- * Assert that no errors have been reported against the given source. |
- * |
- * @param source the source against which no errors should have been reported |
- * @throws AnalysisException if the reported errors could not be computed |
- * @throws AssertionFailedError if any errors have been reported |
- */ |
- void assertNoErrors(Source source) { |
- assertErrors(source, []); |
- } |
- |
- /** |
- * Cache the source file content in the source factory but don't add the source to the analysis |
- * context. The file path should be absolute. |
- * |
- * @param filePath the path of the file being cached |
- * @param contents the contents to be returned by the content provider for the specified file |
- * @return the source object representing the cached file |
- */ |
- Source cacheSource(String filePath, String contents) { |
- Source source = new FileBasedSource.con1(sourceFactory.contentCache, FileUtilities2.createFile(filePath)); |
- sourceFactory.setContents(source, contents); |
- return source; |
- } |
- |
- /** |
- * Create a library element that represents a library named `"test"` containing a single |
- * empty compilation unit. |
- * |
- * @return the library element that was created |
- */ |
- LibraryElementImpl createTestLibrary() => createTestLibrary2(new AnalysisContextImpl(), "test", []); |
- |
- /** |
- * Create a library element that represents a library with the given name containing a single |
- * empty compilation unit. |
- * |
- * @param libraryName the name of the library to be created |
- * @return the library element that was created |
- */ |
- LibraryElementImpl createTestLibrary2(AnalysisContext context, String libraryName, List<String> typeNames) { |
- int count = typeNames.length; |
- List<CompilationUnitElementImpl> sourcedCompilationUnits = new List<CompilationUnitElementImpl>(count); |
- for (int i = 0; i < count; i++) { |
- String typeName = typeNames[i]; |
- ClassElementImpl type = new ClassElementImpl(ASTFactory.identifier3(typeName)); |
- String fileName = "${typeName}.dart"; |
- CompilationUnitElementImpl compilationUnit = new CompilationUnitElementImpl(fileName); |
- compilationUnit.source = createSource2(fileName); |
- compilationUnit.types = <ClassElement> [type]; |
- sourcedCompilationUnits[i] = compilationUnit; |
- } |
- String fileName = "${libraryName}.dart"; |
- CompilationUnitElementImpl compilationUnit = new CompilationUnitElementImpl(fileName); |
- compilationUnit.source = createSource2(fileName); |
- LibraryElementImpl library = new LibraryElementImpl(context, ASTFactory.libraryIdentifier2([libraryName])); |
- library.definingCompilationUnit = compilationUnit; |
- library.parts = sourcedCompilationUnits; |
- return library; |
- } |
- |
- /** |
- * Return a type provider that can be used to test the results of resolution. |
- * |
- * @return a type provider |
- */ |
- TypeProvider get typeProvider { |
- Source coreSource = analysisContext.sourceFactory.forUri(DartSdk.DART_CORE); |
- LibraryElement coreElement = analysisContext.getLibraryElement(coreSource); |
- return new TypeProviderImpl(coreElement); |
- } |
- |
- /** |
- * In the rare cases we want to group several tests into single "test_" method, so need a way to |
- * reset test instance to reuse it. |
- */ |
- void reset() { |
- analysisContext = AnalysisContextFactory.contextWithCore(); |
- sourceFactory = analysisContext.sourceFactory; |
- } |
- |
- /** |
- * Given a library and all of its parts, resolve the contents of the library and the contents of |
- * the parts. This assumes that the sources for the library and its parts have already been added |
- * to the content provider using the method [addSource]. |
- * |
- * @param librarySource the source for the compilation unit that defines the library |
- * @return the element representing the resolved library |
- * @throws AnalysisException if the analysis could not be performed |
- */ |
- LibraryElement resolve(Source librarySource) => analysisContext.computeLibraryElement(librarySource); |
- |
- /** |
- * Return the resolved compilation unit corresponding to the given source in the given library. |
- * |
- * @param source the source of the compilation unit to be returned |
- * @param library the library in which the compilation unit is to be resolved |
- * @return the resolved compilation unit |
- * @throws Exception if the compilation unit could not be resolved |
- */ |
- CompilationUnit resolveCompilationUnit(Source source, LibraryElement library) => analysisContext.resolveCompilationUnit(source, library); |
- |
- /** |
- * Verify that all of the identifiers in the compilation units associated with the given sources |
- * have been resolved. |
- * |
- * @param resolvedElementMap a table mapping the AST nodes that have been resolved to the element |
- * to which they were resolved |
- * @param sources the sources identifying the compilation units to be verified |
- * @throws Exception if the contents of the compilation unit cannot be accessed |
- */ |
- void verify(List<Source> sources) { |
- ResolutionVerifier verifier = new ResolutionVerifier(); |
- for (Source source in sources) { |
- analysisContext.parseCompilationUnit(source).accept(verifier); |
- } |
- verifier.assertResolved(); |
- } |
- |
- /** |
- * Create a source object representing a file with the given name and give it an empty content. |
- * |
- * @param fileName the name of the file for which a source is to be created |
- * @return the source that was created |
- */ |
- FileBasedSource createSource2(String fileName) { |
- FileBasedSource source = new FileBasedSource.con1(sourceFactory.contentCache, FileUtilities2.createFile(fileName)); |
- sourceFactory.setContents(source, ""); |
- return source; |
- } |
- static dartSuite() { |
- _ut.group('ResolverTestCase', () { |
- }); |
- } |
-} |
-class TypeProviderImplTest extends EngineTestCase { |
- void test_creation() { |
- InterfaceType objectType = classElement("Object", null, []).type; |
- InterfaceType boolType = classElement("bool", objectType, []).type; |
- InterfaceType numType = classElement("num", objectType, []).type; |
- InterfaceType doubleType = classElement("double", numType, []).type; |
- InterfaceType functionType = classElement("Function", objectType, []).type; |
- InterfaceType intType = classElement("int", numType, []).type; |
- InterfaceType listType = classElement("List", objectType, ["E"]).type; |
- InterfaceType mapType = classElement("Map", objectType, ["K", "V"]).type; |
- InterfaceType stackTraceType = classElement("StackTrace", objectType, []).type; |
- InterfaceType stringType = classElement("String", objectType, []).type; |
- InterfaceType symbolType = classElement("Symbol", objectType, []).type; |
- InterfaceType typeType = classElement("Type", objectType, []).type; |
- CompilationUnitElementImpl unit = new CompilationUnitElementImpl("lib.dart"); |
- unit.types = <ClassElement> [ |
- boolType.element, |
- doubleType.element, |
- functionType.element, |
- intType.element, |
- listType.element, |
- mapType.element, |
- objectType.element, |
- stackTraceType.element, |
- stringType.element, |
- symbolType.element, |
- typeType.element]; |
- LibraryElementImpl library = new LibraryElementImpl(new AnalysisContextImpl(), ASTFactory.libraryIdentifier2(["lib"])); |
- library.definingCompilationUnit = unit; |
- TypeProviderImpl provider = new TypeProviderImpl(library); |
- JUnitTestCase.assertSame(boolType, provider.boolType); |
- JUnitTestCase.assertNotNull(provider.bottomType); |
- JUnitTestCase.assertSame(doubleType, provider.doubleType); |
- JUnitTestCase.assertNotNull(provider.dynamicType); |
- JUnitTestCase.assertSame(functionType, provider.functionType); |
- JUnitTestCase.assertSame(intType, provider.intType); |
- JUnitTestCase.assertSame(listType, provider.listType); |
- JUnitTestCase.assertSame(mapType, provider.mapType); |
- JUnitTestCase.assertSame(objectType, provider.objectType); |
- JUnitTestCase.assertSame(stackTraceType, provider.stackTraceType); |
- JUnitTestCase.assertSame(stringType, provider.stringType); |
- JUnitTestCase.assertSame(symbolType, provider.symbolType); |
- JUnitTestCase.assertSame(typeType, provider.typeType); |
- } |
- ClassElement classElement(String typeName, InterfaceType superclassType, List<String> parameterNames) { |
- ClassElementImpl element = new ClassElementImpl(ASTFactory.identifier3(typeName)); |
- element.supertype = superclassType; |
- InterfaceTypeImpl type = new InterfaceTypeImpl.con1(element); |
- element.type = type; |
- int count = parameterNames.length; |
- if (count > 0) { |
- List<TypeParameterElementImpl> typeParameters = new List<TypeParameterElementImpl>(count); |
- List<TypeParameterTypeImpl> typeArguments = new List<TypeParameterTypeImpl>(count); |
- for (int i = 0; i < count; i++) { |
- TypeParameterElementImpl typeParameter = new TypeParameterElementImpl(ASTFactory.identifier3(parameterNames[i])); |
- typeParameters[i] = typeParameter; |
- typeArguments[i] = new TypeParameterTypeImpl(typeParameter); |
- typeParameter.type = typeArguments[i]; |
- } |
- element.typeParameters = typeParameters; |
- type.typeArguments = typeArguments; |
- } |
- return element; |
- } |
- static dartSuite() { |
- _ut.group('TypeProviderImplTest', () { |
- _ut.test('test_creation', () { |
- final __test = new TypeProviderImplTest(); |
- runJUnitTest(__test, __test.test_creation); |
- }); |
- }); |
- } |
-} |
-class InheritanceManagerTest extends EngineTestCase { |
- |
- /** |
- * The type provider used to access the types. |
- */ |
- TestTypeProvider _typeProvider; |
- |
- /** |
- * The library containing the code being resolved. |
- */ |
- LibraryElementImpl _definingLibrary; |
- |
- /** |
- * The inheritance manager being tested. |
- */ |
- InheritanceManager _inheritanceManager; |
- |
- /** |
- * The number of members that Object implements (as determined by [TestTypeProvider]). |
- */ |
- int _numOfMembersInObject = 0; |
- void setUp() { |
- _typeProvider = new TestTypeProvider(); |
- _inheritanceManager = createInheritanceManager(); |
- InterfaceType objectType = _typeProvider.objectType; |
- _numOfMembersInObject = objectType.methods.length + objectType.accessors.length; |
- } |
- void test_getMapOfMembersInheritedFromClasses_accessor_extends() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "g"; |
- PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getterG]; |
- ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject + 1, mapB.size); |
- JUnitTestCase.assertSame(getterG, mapB.get(getterName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_getMapOfMembersInheritedFromClasses_accessor_implements() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "g"; |
- PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getterG]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.interfaces = <InterfaceType> [classA.type]; |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapB.size); |
- JUnitTestCase.assertNull(mapB.get(getterName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_getMapOfMembersInheritedFromClasses_accessor_with() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "g"; |
- PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getterG]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.mixins = <InterfaceType> [classA.type]; |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject + 1, mapB.size); |
- JUnitTestCase.assertSame(getterG, mapB.get(getterName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_getMapOfMembersInheritedFromClasses_method_extends() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.supertype = classA.type; |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject + 1, mapB.size); |
- JUnitTestCase.assertSame(methodM, mapB.get(methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_getMapOfMembersInheritedFromClasses_method_implements() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.interfaces = <InterfaceType> [classA.type]; |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapB.size); |
- JUnitTestCase.assertNull(mapB.get(methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_getMapOfMembersInheritedFromClasses_method_with() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.mixins = <InterfaceType> [classA.type]; |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject + 1, mapB.size); |
- JUnitTestCase.assertSame(methodM, mapB.get(methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_getMapOfMembersInheritedFromInterfaces_accessor_extends() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "g"; |
- PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getterG]; |
- ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject + 1, mapB.size); |
- JUnitTestCase.assertSame(getterG, mapB.get(getterName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_getMapOfMembersInheritedFromInterfaces_accessor_implements() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "g"; |
- PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getterG]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.interfaces = <InterfaceType> [classA.type]; |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject + 1, mapB.size); |
- JUnitTestCase.assertSame(getterG, mapB.get(getterName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_getMapOfMembersInheritedFromInterfaces_accessor_with() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "g"; |
- PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getterG]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.mixins = <InterfaceType> [classA.type]; |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject + 1, mapB.size); |
- JUnitTestCase.assertSame(getterG, mapB.get(getterName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_getMapOfMembersInheritedFromInterfaces_method_extends() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject + 1, mapB.size); |
- JUnitTestCase.assertSame(methodM, mapB.get(methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_getMapOfMembersInheritedFromInterfaces_method_implements() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.interfaces = <InterfaceType> [classA.type]; |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject + 1, mapB.size); |
- JUnitTestCase.assertSame(methodM, mapB.get(methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_getMapOfMembersInheritedFromInterfaces_method_with() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.mixins = <InterfaceType> [classA.type]; |
- MemberMap mapB = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); |
- MemberMap mapA = _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); |
- JUnitTestCase.assertEquals(_numOfMembersInObject, mapA.size); |
- JUnitTestCase.assertEquals(_numOfMembersInObject + 1, mapB.size); |
- JUnitTestCase.assertSame(methodM, mapB.get(methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_interface_getter() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "g"; |
- PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getterG]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.interfaces = <InterfaceType> [classA.type]; |
- JUnitTestCase.assertSame(getterG, _inheritanceManager.lookupInheritance(classB, getterName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_interface_method() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.interfaces = <InterfaceType> [classA.type]; |
- JUnitTestCase.assertSame(methodM, _inheritanceManager.lookupInheritance(classB, methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_interface_setter() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String setterName = "s"; |
- PropertyAccessorElement setterS = ElementFactory.setterElement(setterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [setterS]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.interfaces = <InterfaceType> [classA.type]; |
- JUnitTestCase.assertSame(setterS, _inheritanceManager.lookupInheritance(classB, "${setterName}=")); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_interface_staticMember() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- ((methodM as MethodElementImpl)).static = true; |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.interfaces = <InterfaceType> [classA.type]; |
- JUnitTestCase.assertNull(_inheritanceManager.lookupInheritance(classB, methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_interfaces_infiniteLoop() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- classA.interfaces = <InterfaceType> [classA.type]; |
- JUnitTestCase.assertNull(_inheritanceManager.lookupInheritance(classA, "name")); |
- assertNoErrors(classA); |
- } |
- void test_lookupInheritance_interfaces_infiniteLoop2() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classA.interfaces = <InterfaceType> [classB.type]; |
- classB.interfaces = <InterfaceType> [classA.type]; |
- JUnitTestCase.assertNull(_inheritanceManager.lookupInheritance(classA, "name")); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_interfaces_STWC_inconsistentMethodInheritance() { |
- ClassElementImpl classI1 = ElementFactory.classElement2("I1", []); |
- String methodName = "m"; |
- MethodElement methodM1 = ElementFactory.methodElement(methodName, null, [_typeProvider.intType]); |
- classI1.methods = <MethodElement> [methodM1]; |
- ClassElementImpl classI2 = ElementFactory.classElement2("I2", []); |
- MethodElement methodM2 = ElementFactory.methodElement(methodName, null, [_typeProvider.stringType]); |
- classI2.methods = <MethodElement> [methodM2]; |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- classA.interfaces = <InterfaceType> [classI1.type, classI2.type]; |
- JUnitTestCase.assertNull(_inheritanceManager.lookupInheritance(classA, methodName)); |
- assertNoErrors(classI1); |
- assertNoErrors(classI2); |
- assertErrors(classA, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); |
- } |
- void test_lookupInheritance_interfaces_SWC_inconsistentMethodInheritance() { |
- ClassElementImpl classI1 = ElementFactory.classElement2("I1", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- classI1.methods = <MethodElement> [methodM]; |
- ClassElementImpl classI2 = ElementFactory.classElement2("I2", []); |
- PropertyAccessorElement getter = ElementFactory.getterElement(methodName, false, _typeProvider.intType); |
- classI2.accessors = <PropertyAccessorElement> [getter]; |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- classA.interfaces = <InterfaceType> [classI1.type, classI2.type]; |
- JUnitTestCase.assertNull(_inheritanceManager.lookupInheritance(classA, methodName)); |
- assertNoErrors(classI1); |
- assertNoErrors(classI2); |
- assertErrors(classA, [StaticWarningCode.INCONSISTENT_METHOD_INHERITANCE_GETTER_AND_METHOD]); |
- } |
- void test_lookupInheritance_interfaces_union1() { |
- ClassElementImpl classI1 = ElementFactory.classElement2("I1", []); |
- String methodName1 = "m1"; |
- MethodElement methodM1 = ElementFactory.methodElement(methodName1, _typeProvider.intType, []); |
- classI1.methods = <MethodElement> [methodM1]; |
- ClassElementImpl classI2 = ElementFactory.classElement2("I2", []); |
- String methodName2 = "m2"; |
- MethodElement methodM2 = ElementFactory.methodElement(methodName2, _typeProvider.intType, []); |
- classI2.methods = <MethodElement> [methodM2]; |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- classA.interfaces = <InterfaceType> [classI1.type, classI2.type]; |
- JUnitTestCase.assertSame(methodM1, _inheritanceManager.lookupInheritance(classA, methodName1)); |
- JUnitTestCase.assertSame(methodM2, _inheritanceManager.lookupInheritance(classA, methodName2)); |
- assertNoErrors(classI1); |
- assertNoErrors(classI2); |
- assertNoErrors(classA); |
- } |
- void test_lookupInheritance_interfaces_union2() { |
- ClassElementImpl classI1 = ElementFactory.classElement2("I1", []); |
- String methodName1 = "m1"; |
- MethodElement methodM1 = ElementFactory.methodElement(methodName1, _typeProvider.intType, []); |
- classI1.methods = <MethodElement> [methodM1]; |
- ClassElementImpl classI2 = ElementFactory.classElement2("I2", []); |
- String methodName2 = "m2"; |
- MethodElement methodM2 = ElementFactory.methodElement(methodName2, _typeProvider.intType, []); |
- classI2.methods = <MethodElement> [methodM2]; |
- classI2.interfaces = <InterfaceType> [classI1.type]; |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- classA.interfaces = <InterfaceType> [classI2.type]; |
- JUnitTestCase.assertSame(methodM1, _inheritanceManager.lookupInheritance(classA, methodName1)); |
- JUnitTestCase.assertSame(methodM2, _inheritanceManager.lookupInheritance(classA, methodName2)); |
- assertNoErrors(classI1); |
- assertNoErrors(classI2); |
- assertNoErrors(classA); |
- } |
- void test_lookupInheritance_mixin_getter() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "g"; |
- PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getterG]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.mixins = <InterfaceType> [classA.type]; |
- JUnitTestCase.assertSame(getterG, _inheritanceManager.lookupInheritance(classB, getterName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_mixin_method() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.mixins = <InterfaceType> [classA.type]; |
- JUnitTestCase.assertSame(methodM, _inheritanceManager.lookupInheritance(classB, methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_mixin_setter() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String setterName = "s"; |
- PropertyAccessorElement setterS = ElementFactory.setterElement(setterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [setterS]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.mixins = <InterfaceType> [classA.type]; |
- JUnitTestCase.assertSame(setterS, _inheritanceManager.lookupInheritance(classB, "${setterName}=")); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_mixin_staticMember() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- ((methodM as MethodElementImpl)).static = true; |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.mixins = <InterfaceType> [classA.type]; |
- JUnitTestCase.assertNull(_inheritanceManager.lookupInheritance(classB, methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_noMember() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- JUnitTestCase.assertNull(_inheritanceManager.lookupInheritance(classA, "a")); |
- assertNoErrors(classA); |
- } |
- void test_lookupInheritance_superclass_getter() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "g"; |
- PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getterG]; |
- ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
- JUnitTestCase.assertSame(getterG, _inheritanceManager.lookupInheritance(classB, getterName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_superclass_infiniteLoop() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- classA.supertype = classA.type; |
- JUnitTestCase.assertNull(_inheritanceManager.lookupInheritance(classA, "name")); |
- assertNoErrors(classA); |
- } |
- void test_lookupInheritance_superclass_infiniteLoop2() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classA.supertype = classB.type; |
- classB.supertype = classA.type; |
- JUnitTestCase.assertNull(_inheritanceManager.lookupInheritance(classA, "name")); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_superclass_method() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
- JUnitTestCase.assertSame(methodM, _inheritanceManager.lookupInheritance(classB, methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_superclass_setter() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String setterName = "s"; |
- PropertyAccessorElement setterS = ElementFactory.setterElement(setterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [setterS]; |
- ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
- JUnitTestCase.assertSame(setterS, _inheritanceManager.lookupInheritance(classB, "${setterName}=")); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupInheritance_superclass_staticMember() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- ((methodM as MethodElementImpl)).static = true; |
- classA.methods = <MethodElement> [methodM]; |
- ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
- JUnitTestCase.assertNull(_inheritanceManager.lookupInheritance(classB, methodName)); |
- assertNoErrors(classA); |
- assertNoErrors(classB); |
- } |
- void test_lookupMember_getter() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "g"; |
- PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getterG]; |
- JUnitTestCase.assertSame(getterG, _inheritanceManager.lookupMember(classA, getterName)); |
- assertNoErrors(classA); |
- } |
- void test_lookupMember_getter_static() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "g"; |
- PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, true, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getterG]; |
- JUnitTestCase.assertNull(_inheritanceManager.lookupMember(classA, getterName)); |
- assertNoErrors(classA); |
- } |
- void test_lookupMember_method() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- classA.methods = <MethodElement> [methodM]; |
- JUnitTestCase.assertSame(methodM, _inheritanceManager.lookupMember(classA, methodName)); |
- assertNoErrors(classA); |
- } |
- void test_lookupMember_method_static() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- MethodElement methodM = ElementFactory.methodElement(methodName, _typeProvider.intType, []); |
- ((methodM as MethodElementImpl)).static = true; |
- classA.methods = <MethodElement> [methodM]; |
- JUnitTestCase.assertNull(_inheritanceManager.lookupMember(classA, methodName)); |
- assertNoErrors(classA); |
- } |
- void test_lookupMember_noMember() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- JUnitTestCase.assertNull(_inheritanceManager.lookupMember(classA, "a")); |
- assertNoErrors(classA); |
- } |
- void test_lookupMember_setter() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String setterName = "s"; |
- PropertyAccessorElement setterS = ElementFactory.setterElement(setterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [setterS]; |
- JUnitTestCase.assertSame(setterS, _inheritanceManager.lookupMember(classA, "${setterName}=")); |
- assertNoErrors(classA); |
- } |
- void test_lookupMember_setter_static() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String setterName = "s"; |
- PropertyAccessorElement setterS = ElementFactory.setterElement(setterName, true, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [setterS]; |
- JUnitTestCase.assertNull(_inheritanceManager.lookupMember(classA, setterName)); |
- assertNoErrors(classA); |
- } |
- void assertErrors(ClassElement classElt, List<ErrorCode> expectedErrorCodes) { |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- Set<AnalysisError> actualErrors = _inheritanceManager.getErrors(classElt); |
- if (actualErrors != null) { |
- for (AnalysisError error in actualErrors) { |
- errorListener.onError(error); |
- } |
- } |
- errorListener.assertErrors2(expectedErrorCodes); |
- } |
- void assertNoErrors(ClassElement classElt) { |
- assertErrors(classElt, []); |
- } |
- |
- /** |
- * Create the inheritance manager used by the tests. |
- * |
- * @return the inheritance manager that was created |
- */ |
- InheritanceManager createInheritanceManager() { |
- AnalysisContextImpl context = AnalysisContextFactory.contextWithCore(); |
- FileBasedSource source = new FileBasedSource.con1(new ContentCache(), FileUtilities2.createFile("/test.dart")); |
- CompilationUnitElementImpl definingCompilationUnit = new CompilationUnitElementImpl("test.dart"); |
- definingCompilationUnit.source = source; |
- _definingLibrary = ElementFactory.library(context, "test"); |
- _definingLibrary.definingCompilationUnit = definingCompilationUnit; |
- return new InheritanceManager(_definingLibrary); |
- } |
- static dartSuite() { |
- _ut.group('InheritanceManagerTest', () { |
- _ut.test('test_getMapOfMembersInheritedFromClasses_accessor_extends', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromClasses_accessor_extends); |
- }); |
- _ut.test('test_getMapOfMembersInheritedFromClasses_accessor_implements', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromClasses_accessor_implements); |
- }); |
- _ut.test('test_getMapOfMembersInheritedFromClasses_accessor_with', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromClasses_accessor_with); |
- }); |
- _ut.test('test_getMapOfMembersInheritedFromClasses_method_extends', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromClasses_method_extends); |
- }); |
- _ut.test('test_getMapOfMembersInheritedFromClasses_method_implements', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromClasses_method_implements); |
- }); |
- _ut.test('test_getMapOfMembersInheritedFromClasses_method_with', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromClasses_method_with); |
- }); |
- _ut.test('test_getMapOfMembersInheritedFromInterfaces_accessor_extends', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromInterfaces_accessor_extends); |
- }); |
- _ut.test('test_getMapOfMembersInheritedFromInterfaces_accessor_implements', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromInterfaces_accessor_implements); |
- }); |
- _ut.test('test_getMapOfMembersInheritedFromInterfaces_accessor_with', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromInterfaces_accessor_with); |
- }); |
- _ut.test('test_getMapOfMembersInheritedFromInterfaces_method_extends', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromInterfaces_method_extends); |
- }); |
- _ut.test('test_getMapOfMembersInheritedFromInterfaces_method_implements', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromInterfaces_method_implements); |
- }); |
- _ut.test('test_getMapOfMembersInheritedFromInterfaces_method_with', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_getMapOfMembersInheritedFromInterfaces_method_with); |
- }); |
- _ut.test('test_lookupInheritance_interface_getter', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_interface_getter); |
- }); |
- _ut.test('test_lookupInheritance_interface_method', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_interface_method); |
- }); |
- _ut.test('test_lookupInheritance_interface_setter', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_interface_setter); |
- }); |
- _ut.test('test_lookupInheritance_interface_staticMember', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_interface_staticMember); |
- }); |
- _ut.test('test_lookupInheritance_interfaces_STWC_inconsistentMethodInheritance', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_interfaces_STWC_inconsistentMethodInheritance); |
- }); |
- _ut.test('test_lookupInheritance_interfaces_SWC_inconsistentMethodInheritance', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_interfaces_SWC_inconsistentMethodInheritance); |
- }); |
- _ut.test('test_lookupInheritance_interfaces_infiniteLoop', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_interfaces_infiniteLoop); |
- }); |
- _ut.test('test_lookupInheritance_interfaces_infiniteLoop2', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_interfaces_infiniteLoop2); |
- }); |
- _ut.test('test_lookupInheritance_interfaces_union1', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_interfaces_union1); |
- }); |
- _ut.test('test_lookupInheritance_interfaces_union2', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_interfaces_union2); |
- }); |
- _ut.test('test_lookupInheritance_mixin_getter', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_mixin_getter); |
- }); |
- _ut.test('test_lookupInheritance_mixin_method', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_mixin_method); |
- }); |
- _ut.test('test_lookupInheritance_mixin_setter', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_mixin_setter); |
- }); |
- _ut.test('test_lookupInheritance_mixin_staticMember', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_mixin_staticMember); |
- }); |
- _ut.test('test_lookupInheritance_noMember', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_noMember); |
- }); |
- _ut.test('test_lookupInheritance_superclass_getter', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_superclass_getter); |
- }); |
- _ut.test('test_lookupInheritance_superclass_infiniteLoop', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_superclass_infiniteLoop); |
- }); |
- _ut.test('test_lookupInheritance_superclass_infiniteLoop2', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_superclass_infiniteLoop2); |
- }); |
- _ut.test('test_lookupInheritance_superclass_method', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_superclass_method); |
- }); |
- _ut.test('test_lookupInheritance_superclass_setter', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_superclass_setter); |
- }); |
- _ut.test('test_lookupInheritance_superclass_staticMember', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupInheritance_superclass_staticMember); |
- }); |
- _ut.test('test_lookupMember_getter', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupMember_getter); |
- }); |
- _ut.test('test_lookupMember_getter_static', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupMember_getter_static); |
- }); |
- _ut.test('test_lookupMember_method', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupMember_method); |
- }); |
- _ut.test('test_lookupMember_method_static', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupMember_method_static); |
- }); |
- _ut.test('test_lookupMember_noMember', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupMember_noMember); |
- }); |
- _ut.test('test_lookupMember_setter', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupMember_setter); |
- }); |
- _ut.test('test_lookupMember_setter_static', () { |
- final __test = new InheritanceManagerTest(); |
- runJUnitTest(__test, __test.test_lookupMember_setter_static); |
- }); |
- }); |
- } |
-} |
-class CompileTimeErrorCodeTest extends ResolverTestCase { |
- void fail_compileTimeConstantRaisesException() { |
- Source source = addSource(EngineTestCase.createSource([])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.COMPILE_TIME_CONSTANT_RAISES_EXCEPTION]); |
- verify([source]); |
- } |
- void fail_constEvalThrowsException() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class C {", |
- " const C();", |
- "}", |
- "f() { return const C(); }"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_CONSTRUCTOR_THROWS_EXCEPTION]); |
- verify([source]); |
- } |
- void fail_mixinDeclaresConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A() {}", |
- "}", |
- "class B extends Object mixin A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_DECLARES_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void fail_mixinOfNonClass() { |
- Source source = addSource(EngineTestCase.createSource(["var A;", "class B extends Object mixin A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_OF_NON_CLASS]); |
- verify([source]); |
- } |
- void fail_objectCannotExtendAnotherClass() { |
- Source source = addSource(EngineTestCase.createSource([])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.OBJECT_CANNOT_EXTEND_ANOTHER_CLASS]); |
- verify([source]); |
- } |
- void fail_recursiveCompileTimeConstant() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- " final m = const A();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT]); |
- verify([source]); |
- } |
- void fail_recursiveCompileTimeConstant_cycle() { |
- Source source = addSource(EngineTestCase.createSource(["const x = y + 1;", "const y = x + 1;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT]); |
- verify([source]); |
- } |
- void fail_superInitializerInObject() { |
- Source source = addSource(EngineTestCase.createSource([])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.SUPER_INITIALIZER_IN_OBJECT]); |
- verify([source]); |
- } |
- void test_ambiguousExport() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "export 'lib1.dart';", |
- "export 'lib2.dart';"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class N {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.AMBIGUOUS_EXPORT]); |
- verify([source]); |
- } |
- void test_ambiguousImport_function() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "g() { return f(); }"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "f() {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "f() {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- StaticWarningCode.AMBIGUOUS_IMPORT, |
- CompileTimeErrorCode.UNDEFINED_FUNCTION]); |
- } |
- void test_argumentDefinitionTestNonParameter() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var v = 0;", " return ?v;", "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- ParserErrorCode.DEPRECATED_ARGUMENT_DEFINITION_TEST, |
- CompileTimeErrorCode.ARGUMENT_DEFINITION_TEST_NON_PARAMETER]); |
- verify([source]); |
- } |
- void test_builtInIdentifierAsMixinName_classTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "class B {}", "class as = A with B;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPEDEF_NAME]); |
- verify([source]); |
- } |
- void test_builtInIdentifierAsType_formalParameter_field() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " var x;", " A(static this.x);", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE]); |
- verify([source]); |
- } |
- void test_builtInIdentifierAsType_formalParameter_simple() { |
- Source source = addSource(EngineTestCase.createSource(["f(static x) {", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE]); |
- verify([source]); |
- } |
- void test_builtInIdentifierAsType_variableDeclaration() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " typedef x;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE]); |
- verify([source]); |
- } |
- void test_builtInIdentifierAsTypedefName_functionTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource(["typedef bool as();"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPEDEF_NAME]); |
- verify([source]); |
- } |
- void test_builtInIdentifierAsTypeName() { |
- Source source = addSource(EngineTestCase.createSource(["class as {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE_NAME]); |
- verify([source]); |
- } |
- void test_builtInIdentifierAsTypeParameterName() { |
- Source source = addSource(EngineTestCase.createSource(["class A<as> {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE_PARAMETER_NAME]); |
- verify([source]); |
- } |
- void test_caseExpressionTypeImplementsEquals() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class IntWrapper {", |
- " final int value;", |
- " const IntWrapper(this.value);", |
- " bool operator ==(IntWrapper x) {", |
- " return value == x.value;", |
- " }", |
- " get hashCode => value;", |
- "}", |
- "", |
- "f(var a) {", |
- " switch(a) {", |
- " case(const IntWrapper(1)) : return 1;", |
- " default: return 0;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CASE_EXPRESSION_TYPE_IMPLEMENTS_EQUALS]); |
- verify([source]); |
- } |
- void test_conflictingConstructorNameAndMember_field() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " A.x() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_NAME_AND_FIELD]); |
- verify([source]); |
- } |
- void test_conflictingConstructorNameAndMember_method() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " const A.x();", " void x() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_NAME_AND_METHOD]); |
- verify([source]); |
- } |
- void test_conflictingGetterAndMethod_field_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int m;", |
- "}", |
- "class B extends A {", |
- " m() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_GETTER_AND_METHOD]); |
- verify([source]); |
- } |
- void test_conflictingGetterAndMethod_getter_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " get m => 0;", |
- "}", |
- "class B extends A {", |
- " m() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_GETTER_AND_METHOD]); |
- verify([source]); |
- } |
- void test_conflictingGetterAndMethod_method_field() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {}", |
- "}", |
- "class B extends A {", |
- " int m;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_METHOD_AND_GETTER]); |
- verify([source]); |
- } |
- void test_conflictingGetterAndMethod_method_getter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {}", |
- "}", |
- "class B extends A {", |
- " get m => 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_METHOD_AND_GETTER]); |
- verify([source]); |
- } |
- void test_conflictingTypeVariableAndClass() { |
- Source source = addSource(EngineTestCase.createSource(["class T<T> {", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_CLASS]); |
- verify([source]); |
- } |
- void test_conflictingTypeVariableAndMember_field() { |
- Source source = addSource(EngineTestCase.createSource(["class A<T> {", " var T;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingTypeVariableAndMember_getter() { |
- Source source = addSource(EngineTestCase.createSource(["class A<T> {", " get T => null;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingTypeVariableAndMember_method() { |
- Source source = addSource(EngineTestCase.createSource(["class A<T> {", " T() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingTypeVariableAndMember_method_static() { |
- Source source = addSource(EngineTestCase.createSource(["class A<T> {", " static T() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingTypeVariableAndMember_setter() { |
- Source source = addSource(EngineTestCase.createSource(["class A<T> {", " set T(x) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER]); |
- verify([source]); |
- } |
- void test_constConstructorWithNonConstSuper_explicit() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A();", |
- "}", |
- "class B extends A {", |
- " const B(): super();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER]); |
- verify([source]); |
- } |
- void test_constConstructorWithNonConstSuper_implicit() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A();", |
- "}", |
- "class B extends A {", |
- " const B();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER]); |
- verify([source]); |
- } |
- void test_constConstructorWithNonFinalField_mixin() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var a;", |
- "}", |
- "class B extends Object with A {", |
- " const B();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_FINAL_FIELD]); |
- verify([source]); |
- } |
- void test_constConstructorWithNonFinalField_super() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var a;", |
- "}", |
- "class B extends A {", |
- " const B();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_FINAL_FIELD, |
- CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER]); |
- verify([source]); |
- } |
- void test_constConstructorWithNonFinalField_this() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " const A();", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_FINAL_FIELD]); |
- verify([source]); |
- } |
- void test_constEval_newInstance_constConstructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " const A();", "}", "const a = new A();"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE]); |
- verify([source]); |
- } |
- void test_constEval_propertyExtraction_targetNotConst() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- " m() {}", |
- "}", |
- "final a = const A();", |
- "const C = a.m;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE]); |
- verify([source]); |
- } |
- void test_constEvalThrowsException_binaryMinus_null() { |
- check_constEvalThrowsException_binary_null("null - 5", false); |
- check_constEvalThrowsException_binary_null("5 - null", true); |
- } |
- void test_constEvalThrowsException_binaryPlus_null() { |
- check_constEvalThrowsException_binary_null("null + 5", false); |
- check_constEvalThrowsException_binary_null("5 + null", true); |
- } |
- void test_constEvalThrowsException_divisionByZero() { |
- Source source = addSource("const C = 1 ~/ 0;"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_THROWS_IDBZE]); |
- verify([source]); |
- } |
- void test_constEvalThrowsException_unaryBitNot_null() { |
- Source source = addSource("const C = ~null;"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION]); |
- } |
- void test_constEvalThrowsException_unaryNegated_null() { |
- Source source = addSource("const C = -null;"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION]); |
- } |
- void test_constEvalThrowsException_unaryNot_null() { |
- Source source = addSource("const C = !null;"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION]); |
- verify([source]); |
- } |
- void test_constEvalTypeBool_binary() { |
- check_constEvalTypeBool_withParameter_binary("p && ''"); |
- check_constEvalTypeBool_withParameter_binary("p || ''"); |
- } |
- void test_constEvalTypeBool_binary_leftTrue() { |
- Source source = addSource("const C = (true || 0);"); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL, |
- HintCode.DEAD_CODE]); |
- verify([source]); |
- } |
- void test_constEvalTypeBoolNumString_equal() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- "}", |
- "class B {", |
- " final a;", |
- " const B(num p) : a = p == const A();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL_NUM_STRING]); |
- verify([source]); |
- } |
- void test_constEvalTypeBoolNumString_notEqual() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- "}", |
- "class B {", |
- " final a;", |
- " const B(String p) : a = p != const A();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL_NUM_STRING]); |
- verify([source]); |
- } |
- void test_constEvalTypeInt_binary() { |
- check_constEvalTypeInt_withParameter_binary("p ^ ''"); |
- check_constEvalTypeInt_withParameter_binary("p & ''"); |
- check_constEvalTypeInt_withParameter_binary("p | ''"); |
- check_constEvalTypeInt_withParameter_binary("p >> ''"); |
- check_constEvalTypeInt_withParameter_binary("p << ''"); |
- } |
- void test_constEvalTypeNum_binary() { |
- check_constEvalTypeNum_withParameter_binary("p + ''"); |
- check_constEvalTypeNum_withParameter_binary("p - ''"); |
- check_constEvalTypeNum_withParameter_binary("p * ''"); |
- check_constEvalTypeNum_withParameter_binary("p / ''"); |
- check_constEvalTypeNum_withParameter_binary("p ~/ ''"); |
- check_constEvalTypeNum_withParameter_binary("p > ''"); |
- check_constEvalTypeNum_withParameter_binary("p < ''"); |
- check_constEvalTypeNum_withParameter_binary("p >= ''"); |
- check_constEvalTypeNum_withParameter_binary("p <= ''"); |
- check_constEvalTypeNum_withParameter_binary("p % ''"); |
- } |
- void test_constEvalTypeNum_plus_String() { |
- Source source = addSource("const C = 'a' + 'b';"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_TYPE_NUM]); |
- verify([source]); |
- } |
- void test_constFormalParameter_fieldFormalParameter() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " var x;", " A(const this.x) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_FORMAL_PARAMETER]); |
- verify([source]); |
- } |
- void test_constFormalParameter_simpleFormalParameter() { |
- Source source = addSource(EngineTestCase.createSource(["f(const x) {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_FORMAL_PARAMETER]); |
- verify([source]); |
- } |
- void test_constInitializedWithNonConstValue() { |
- Source source = addSource(EngineTestCase.createSource(["f(p) {", " const C = p;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE]); |
- verify([source]); |
- } |
- void test_constInitializedWithNonConstValue_missingConstInListLiteral() { |
- Source source = addSource("const List L = [0];"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE]); |
- verify([source]); |
- } |
- void test_constInitializedWithNonConstValue_missingConstInMapLiteral() { |
- Source source = addSource("const Map M = {'a' : 0};"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE]); |
- verify([source]); |
- } |
- void test_constInstanceField() { |
- Source source = addSource(EngineTestCase.createSource(["class C {", " const int f = 0;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_INSTANCE_FIELD]); |
- verify([source]); |
- } |
- void test_constMapKeyTypeImplementsEquals_direct() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- " operator ==(other) => false;", |
- "}", |
- "main() {", |
- " const {const A() : 0};", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_MAP_KEY_EXPRESSION_TYPE_IMPLEMENTS_EQUALS]); |
- verify([source]); |
- } |
- void test_constMapKeyTypeImplementsEquals_super() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- " operator ==(other) => false;", |
- "}", |
- "class B extends A {", |
- " const B();", |
- "}", |
- "main() {", |
- " const {const B() : 0};", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_MAP_KEY_EXPRESSION_TYPE_IMPLEMENTS_EQUALS]); |
- verify([source]); |
- } |
- void test_constWithInvalidTypeParameters() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- "}", |
- "f() { return const A<A>(); }"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_WITH_INVALID_TYPE_PARAMETERS]); |
- verify([source]); |
- } |
- void test_constWithInvalidTypeParameters_tooFew() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class C<K, V> {", |
- " const C();", |
- "}", |
- "f(p) {", |
- " return const C<A>();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_WITH_INVALID_TYPE_PARAMETERS]); |
- verify([source]); |
- } |
- void test_constWithInvalidTypeParameters_tooMany() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class C<E> {", |
- " const C();", |
- "}", |
- "f(p) {", |
- " return const C<A, A>();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_WITH_INVALID_TYPE_PARAMETERS]); |
- verify([source]); |
- } |
- void test_constWithNonConst() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class T {", |
- " T(a, b, {c, d}) {}", |
- "}", |
- "f() { return const T(0, 1, c: 2, d: 3); }"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_WITH_NON_CONST]); |
- verify([source]); |
- } |
- void test_constWithNonConstantArgument_annotation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A(int p);", |
- "}", |
- "var v = 42;", |
- "@A(v)", |
- "main() {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_WITH_NON_CONSTANT_ARGUMENT]); |
- verify([source]); |
- } |
- void test_constWithNonConstantArgument_instanceCreation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A(a);", |
- "}", |
- "f(p) { return const A(p); }"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_WITH_NON_CONSTANT_ARGUMENT]); |
- verify([source]); |
- } |
- void test_constWithNonType() { |
- Source source = addSource(EngineTestCase.createSource(["int A;", "f() {", " return const A();", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_WITH_NON_TYPE]); |
- verify([source]); |
- } |
- void test_constWithNonType_fromLibrary() { |
- Source source1 = addSource2("lib.dart", ""); |
- Source source2 = addSource2("lib2.dart", EngineTestCase.createSource([ |
- "import 'lib.dart' as lib;", |
- "void f() {", |
- " const lib.A();", |
- "}"])); |
- resolve(source1); |
- resolve(source2); |
- assertErrors(source2, [CompileTimeErrorCode.CONST_WITH_NON_TYPE]); |
- verify([source1]); |
- } |
- void test_constWithTypeParameters_direct() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<T> {", |
- " static const V = const A<T>();", |
- " const A();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.CONST_WITH_TYPE_PARAMETERS, |
- StaticWarningCode.TYPE_PARAMETER_REFERENCED_BY_STATIC]); |
- verify([source]); |
- } |
- void test_constWithTypeParameters_indirect() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<T> {", |
- " static const V = const A<List<T>>();", |
- " const A();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.CONST_WITH_TYPE_PARAMETERS, |
- StaticWarningCode.TYPE_PARAMETER_REFERENCED_BY_STATIC]); |
- verify([source]); |
- } |
- void test_constWithUndefinedConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- "}", |
- "f() {", |
- " return const A.noSuchConstructor();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR]); |
- } |
- void test_constWithUndefinedConstructorDefault() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A.name();", |
- "}", |
- "f() {", |
- " return const A();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT]); |
- verify([source]); |
- } |
- void test_defaultValueInFunctionTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource(["typedef F([x = 0]);"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DEFAULT_VALUE_IN_FUNCTION_TYPE_ALIAS]); |
- verify([source]); |
- } |
- void test_defaultValueInFunctionTypedParameter_named() { |
- Source source = addSource(EngineTestCase.createSource(["f(g({p: null})) {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DEFAULT_VALUE_IN_FUNCTION_TYPED_PARAMETER]); |
- verify([source]); |
- } |
- void test_defaultValueInFunctionTypedParameter_optional() { |
- Source source = addSource(EngineTestCase.createSource(["f(g([p = null])) {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DEFAULT_VALUE_IN_FUNCTION_TYPED_PARAMETER]); |
- verify([source]); |
- } |
- void test_defaultValueInRedirectingFactoryConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " factory A([int x = 0]) = B;", |
- "}", |
- "", |
- "class B implements A {", |
- " B([int x = 1]) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DEFAULT_VALUE_IN_REDIRECTING_FACTORY_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_duplicateConstructorName_named() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A.a() {}", " A.a() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_NAME, |
- CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_NAME]); |
- verify([source]); |
- } |
- void test_duplicateConstructorName_unnamed() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A() {}", " A() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_DEFAULT, |
- CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_DEFAULT]); |
- verify([source]); |
- } |
- void test_duplicateDefinition() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " int m = 0;", " m(a) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION]); |
- verify([source]); |
- } |
- void test_duplicateDefinition_acrossLibraries() { |
- Source librarySource = addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "", "part 'a.dart';", "part 'b.dart';"])); |
- Source sourceA = addSource2("/a.dart", EngineTestCase.createSource(["part of lib;", "", "class A {}"])); |
- Source sourceB = addSource2("/b.dart", EngineTestCase.createSource(["part of lib;", "", "class A {}"])); |
- resolve(librarySource); |
- assertErrors(sourceB, [CompileTimeErrorCode.DUPLICATE_DEFINITION]); |
- verify([librarySource, sourceA, sourceB]); |
- } |
- void test_duplicateDefinition_classMembers_fields() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int a;", " int a;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION]); |
- verify([source]); |
- } |
- void test_duplicateDefinition_classMembers_fields_oneStatic() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " static int x;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION]); |
- verify([source]); |
- } |
- void test_duplicateDefinition_classMembers_methods() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " m() {}", " m() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION]); |
- verify([source]); |
- } |
- void test_duplicateDefinition_localFields() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {", |
- " int a;", |
- " int a;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION]); |
- verify([source]); |
- } |
- void test_duplicateDefinition_parameterWithFunctionName_local() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " f(f) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION]); |
- verify([source]); |
- } |
- void test_duplicateDefinition_parameterWithFunctionName_topLevel() { |
- Source source = addSource(EngineTestCase.createSource(["main() {", " f(f) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION]); |
- verify([source]); |
- } |
- void test_duplicateDefinitionInheritance_instanceGetter_staticGetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int get x => 0;", |
- "}", |
- "class B extends A {", |
- " static int get x => 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION_INHERITANCE]); |
- verify([source]); |
- } |
- void test_duplicateDefinitionInheritance_instanceGetterAbstract_staticGetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " int get x;", |
- "}", |
- "class B extends A {", |
- " static int get x => 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION_INHERITANCE]); |
- verify([source]); |
- } |
- void test_duplicateDefinitionInheritance_instanceMethod_staticMethod() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " x() {}", |
- "}", |
- "class B extends A {", |
- " static x() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION_INHERITANCE]); |
- verify([source]); |
- } |
- void test_duplicateDefinitionInheritance_instanceMethodAbstract_staticMethod() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " x();", |
- "}", |
- "abstract class B extends A {", |
- " static x() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION_INHERITANCE]); |
- verify([source]); |
- } |
- void test_duplicateDefinitionInheritance_instanceSetter_staticSetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " set x(value) {}", |
- "}", |
- "class B extends A {", |
- " static set x(value) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION_INHERITANCE]); |
- verify([source]); |
- } |
- void test_duplicateDefinitionInheritance_instanceSetterAbstract_staticSetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " set x(value);", |
- "}", |
- "class B extends A {", |
- " static set x(value) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION_INHERITANCE]); |
- verify([source]); |
- } |
- void test_duplicateNamedArgument() { |
- Source source = addSource(EngineTestCase.createSource(["f({a, b}) {}", "main() {", " f(a: 1, a: 2);", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.DUPLICATE_NAMED_ARGUMENT]); |
- verify([source]); |
- } |
- void test_exportInternalLibrary() { |
- Source source = addSource(EngineTestCase.createSource(["export 'dart:_interceptors';"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.EXPORT_INTERNAL_LIBRARY]); |
- verify([source]); |
- } |
- void test_exportOfNonLibrary() { |
- Source source = addSource(EngineTestCase.createSource(["library L;", "export 'lib1.dart';"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["part of lib;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.EXPORT_OF_NON_LIBRARY]); |
- verify([source]); |
- } |
- void test_extendsDisallowedClass_bool() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends bool {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.EXTENDS_DISALLOWED_CLASS, |
- CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT]); |
- verify([source]); |
- } |
- void test_extendsDisallowedClass_double() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends double {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.EXTENDS_DISALLOWED_CLASS, |
- CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT]); |
- verify([source]); |
- } |
- void test_extendsDisallowedClass_int() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends int {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.EXTENDS_DISALLOWED_CLASS, |
- CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT]); |
- verify([source]); |
- } |
- void test_extendsDisallowedClass_Null() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends Null {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.EXTENDS_DISALLOWED_CLASS, |
- CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT]); |
- verify([source]); |
- } |
- void test_extendsDisallowedClass_num() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends num {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.EXTENDS_DISALLOWED_CLASS, |
- CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT]); |
- verify([source]); |
- } |
- void test_extendsDisallowedClass_String() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends String {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.EXTENDS_DISALLOWED_CLASS, |
- CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT]); |
- verify([source]); |
- } |
- void test_extendsNonClass_class() { |
- Source source = addSource(EngineTestCase.createSource(["int A;", "class B extends A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.EXTENDS_NON_CLASS]); |
- verify([source]); |
- } |
- void test_extendsNonClass_dynamic() { |
- Source source = addSource(EngineTestCase.createSource(["class B extends dynamic {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.EXTENDS_NON_CLASS]); |
- verify([source]); |
- } |
- void test_extraPositionalArguments_const() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- "}", |
- "main() {", |
- " const A(0);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_extraPositionalArguments_const_super() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- "}", |
- "class B extends A {", |
- " const B() : super(0);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_fieldInitializedByMultipleInitializers() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " A() : x = 0, x = 1 {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS]); |
- verify([source]); |
- } |
- void test_fieldInitializedByMultipleInitializers_multipleInits() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int x;", |
- " A() : x = 0, x = 1, x = 2 {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS, |
- CompileTimeErrorCode.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS]); |
- verify([source]); |
- } |
- void test_fieldInitializedByMultipleInitializers_multipleNames() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int x;", |
- " int y;", |
- " A() : x = 0, x = 1, y = 0, y = 1 {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS, |
- CompileTimeErrorCode.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS]); |
- verify([source]); |
- } |
- void test_fieldInitializedInParameterAndInitializer() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " A(this.x) : x = 1 {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.FIELD_INITIALIZED_IN_PARAMETER_AND_INITIALIZER]); |
- verify([source]); |
- } |
- void test_fieldInitializerFactoryConstructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " factory A(this.x) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.FIELD_INITIALIZER_FACTORY_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_fieldInitializerNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final int x;", |
- " const A() : x = '';", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_FIELD_INITIALIZER_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_fieldInitializerOutsideConstructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " m(this.x) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- ParserErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR, |
- CompileTimeErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_fieldInitializerOutsideConstructor_defaultParameter() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " m([this.x]) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_fieldInitializerRedirectingConstructor_afterRedirection() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int x;", |
- " A.named() {}", |
- " A() : this.named(), x = 42;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.FIELD_INITIALIZER_REDIRECTING_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_fieldInitializerRedirectingConstructor_beforeRedirection() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int x;", |
- " A.named() {}", |
- " A() : x = 42, this.named();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.FIELD_INITIALIZER_REDIRECTING_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_fieldInitializingFormalRedirectingConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int x;", |
- " A.named() {}", |
- " A(this.x) : this.named();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.FIELD_INITIALIZER_REDIRECTING_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_finalInitializedMultipleTimes_initializers() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final x;", " A() : x = 0, x = 0 {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS]); |
- verify([source]); |
- } |
- |
- /** |
- * This test doesn't test the FINAL_INITIALIZED_MULTIPLE_TIMES code, but tests the |
- * FIELD_INITIALIZED_IN_PARAMETER_AND_INITIALIZER code instead. It is provided here to show |
- * coverage over all of the permutations of initializers in constructor declarations. |
- * |
- * Note: FIELD_INITIALIZED_IN_PARAMETER_AND_INITIALIZER covers a subset of |
- * FINAL_INITIALIZED_MULTIPLE_TIMES, since it more specific, we use it instead of the broader code |
- */ |
- void test_finalInitializedMultipleTimes_initializingFormal_initializer() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final x;", " A(this.x) : x = 0 {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.FIELD_INITIALIZED_IN_PARAMETER_AND_INITIALIZER]); |
- verify([source]); |
- } |
- void test_finalInitializedMultipleTimes_initializingFormals() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final x;", " A(this.x, this.x) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.FINAL_INITIALIZED_MULTIPLE_TIMES]); |
- verify([source]); |
- } |
- void test_finalNotInitialized_instanceField_const_static() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " static const F;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_NOT_INITIALIZED]); |
- verify([source]); |
- } |
- void test_finalNotInitialized_library_const() { |
- Source source = addSource(EngineTestCase.createSource(["const F;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_NOT_INITIALIZED]); |
- verify([source]); |
- } |
- void test_finalNotInitialized_local_const() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " const int x;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_NOT_INITIALIZED]); |
- verify([source]); |
- } |
- void test_getterAndMethodWithSameName() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " x(y) {}", " get x => 0;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.GETTER_AND_METHOD_WITH_SAME_NAME]); |
- verify([source]); |
- } |
- void test_implementsDisallowedClass_bool() { |
- Source source = addSource(EngineTestCase.createSource(["class A implements bool {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_implementsDisallowedClass_double() { |
- Source source = addSource(EngineTestCase.createSource(["class A implements double {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_implementsDisallowedClass_int() { |
- Source source = addSource(EngineTestCase.createSource(["class A implements int {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_implementsDisallowedClass_Null() { |
- Source source = addSource(EngineTestCase.createSource(["class A implements Null {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_implementsDisallowedClass_num() { |
- Source source = addSource(EngineTestCase.createSource(["class A implements num {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_implementsDisallowedClass_String() { |
- Source source = addSource(EngineTestCase.createSource(["class A implements String {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_implementsDynamic() { |
- Source source = addSource(EngineTestCase.createSource(["class A implements dynamic {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_DYNAMIC]); |
- verify([source]); |
- } |
- void test_implementsNonClass_class() { |
- Source source = addSource(EngineTestCase.createSource(["int A;", "class B implements A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_NON_CLASS]); |
- verify([source]); |
- } |
- void test_implementsNonClass_typeAlias() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "int B;", "class C = A implements B;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_NON_CLASS]); |
- verify([source]); |
- } |
- void test_implementsRepeated() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "class B implements A, A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_REPEATED]); |
- verify([source]); |
- } |
- void test_implementsRepeated_3times() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {} class C{}", |
- "class B implements A, A, A, A {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.IMPLEMENTS_REPEATED, |
- CompileTimeErrorCode.IMPLEMENTS_REPEATED, |
- CompileTimeErrorCode.IMPLEMENTS_REPEATED]); |
- verify([source]); |
- } |
- void test_implementsSuperClass() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "class B extends A implements A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_SUPER_CLASS]); |
- verify([source]); |
- } |
- void test_implementsSuperClass_Object() { |
- Source source = addSource(EngineTestCase.createSource(["class A implements Object {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_SUPER_CLASS]); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_field() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var v;", |
- " A() : v = f;", |
- " var f;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLICIT_THIS_REFERENCE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_field2() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final x = 0;", " final y = x;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLICIT_THIS_REFERENCE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_invocation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var v;", |
- " A() : v = f();", |
- " f() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLICIT_THIS_REFERENCE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_invocationInStatic() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " static var F = m();", " m() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLICIT_THIS_REFERENCE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_redirectingConstructorInvocation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A(p) {}", |
- " A.named() : this(f);", |
- " var f;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLICIT_THIS_REFERENCE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_implicitThisReferenceInInitializer_superConstructorInvocation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A(p) {}", |
- "}", |
- "class B extends A {", |
- " B() : super(f);", |
- " var f;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPLICIT_THIS_REFERENCE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_importInternalLibrary() { |
- Source source = addSource(EngineTestCase.createSource(["import 'dart:_interceptors';"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.IMPORT_INTERNAL_LIBRARY, |
- HintCode.UNUSED_IMPORT]); |
- verify([source]); |
- } |
- void test_importInternalLibrary_collection() { |
- Source source = addSource(EngineTestCase.createSource(["import 'dart:_collection-dev';"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.IMPORT_INTERNAL_LIBRARY, |
- HintCode.UNUSED_IMPORT]); |
- verify([source]); |
- } |
- void test_importOfNonLibrary() { |
- Source source = addSource(EngineTestCase.createSource(["library lib;", "import 'part.dart';", "A a;"])); |
- addSource2("/part.dart", EngineTestCase.createSource(["part of lib;", "class A{}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.IMPORT_OF_NON_LIBRARY]); |
- verify([source]); |
- } |
- void test_inconsistentCaseExpressionTypes() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(var p) {", |
- " switch (p) {", |
- " case 1:", |
- " break;", |
- " case 'a':", |
- " break;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INCONSISTENT_CASE_EXPRESSION_TYPES]); |
- verify([source]); |
- } |
- void test_inconsistentCaseExpressionTypes_repeated() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(var p) {", |
- " switch (p) {", |
- " case 1:", |
- " break;", |
- " case 'a':", |
- " break;", |
- " case 'b':", |
- " break;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.INCONSISTENT_CASE_EXPRESSION_TYPES, |
- CompileTimeErrorCode.INCONSISTENT_CASE_EXPRESSION_TYPES]); |
- verify([source]); |
- } |
- void test_initializerForNonExistant_initializer() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A() : x = 0 {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INITIALIZER_FOR_NON_EXISTANT_FIELD]); |
- } |
- void test_initializerForStaticField() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " static int x;", " A() : x = 0 {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INITIALIZER_FOR_STATIC_FIELD]); |
- verify([source]); |
- } |
- void test_initializingFormalForNonExistantField() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A(this.x) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTANT_FIELD]); |
- verify([source]); |
- } |
- void test_initializingFormalForNonExistantField_notInEnclosingClass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- "int x;", |
- "}", |
- "class B extends A {", |
- " B(this.x) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTANT_FIELD]); |
- verify([source]); |
- } |
- void test_initializingFormalForNonExistantField_optional() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A([this.x]) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTANT_FIELD]); |
- verify([source]); |
- } |
- void test_initializingFormalForNonExistantField_synthetic() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int get x => 1;", " A(this.x) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTANT_FIELD]); |
- verify([source]); |
- } |
- void test_initializingFormalForStaticField() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " static int x;", " A([this.x]) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_STATIC_FIELD]); |
- verify([source]); |
- } |
- void test_instanceMemberAccessFromStatic_field() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int f;", |
- " static foo() {", |
- " f;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INSTANCE_MEMBER_ACCESS_FROM_STATIC]); |
- verify([source]); |
- } |
- void test_instanceMemberAccessFromStatic_getter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " get g => null;", |
- " static foo() {", |
- " g;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INSTANCE_MEMBER_ACCESS_FROM_STATIC]); |
- verify([source]); |
- } |
- void test_instanceMemberAccessFromStatic_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {}", |
- " static foo() {", |
- " m();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INSTANCE_MEMBER_ACCESS_FROM_STATIC]); |
- verify([source]); |
- } |
- void test_invalidAnnotation_getter() { |
- Source source = addSource(EngineTestCase.createSource(["get V => 0;", "@V", "main() {", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_ANNOTATION]); |
- verify([source]); |
- } |
- void test_invalidAnnotation_importWithPrefix_getter() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "get V => 0;"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as p;", "@p.V", "main() {", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_ANNOTATION]); |
- verify([source]); |
- } |
- void test_invalidAnnotation_importWithPrefix_notConstantVariable() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "final V = 0;"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as p;", "@p.V", "main() {", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_ANNOTATION]); |
- verify([source]); |
- } |
- void test_invalidAnnotation_importWithPrefix_notVariableOrConstructorInvocation() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "typedef V();"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as p;", "@p.V", "main() {", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_ANNOTATION]); |
- verify([source]); |
- } |
- void test_invalidAnnotation_notConstantVariable() { |
- Source source = addSource(EngineTestCase.createSource(["final V = 0;", "@V", "main() {", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_ANNOTATION]); |
- verify([source]); |
- } |
- void test_invalidAnnotation_notVariableOrConstructorInvocation() { |
- Source source = addSource(EngineTestCase.createSource(["typedef V();", "@V", "main() {", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_ANNOTATION]); |
- verify([source]); |
- } |
- void test_invalidAnnotation_staticMethodReference() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static f() {}", |
- "}", |
- "@A.f", |
- "main() {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_ANNOTATION]); |
- verify([source]); |
- } |
- void test_invalidConstructorName_notEnclosingClassName_defined() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " B() : super();", "}", "class B {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_CONSTRUCTOR_NAME]); |
- } |
- void test_invalidConstructorName_notEnclosingClassName_undefined() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " B() : super();", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_CONSTRUCTOR_NAME]); |
- } |
- void test_invalidFactoryNameNotAClass_notClassName() { |
- Source source = addSource(EngineTestCase.createSource(["int B;", "class A {", " factory B() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_FACTORY_NAME_NOT_A_CLASS]); |
- verify([source]); |
- } |
- void test_invalidFactoryNameNotAClass_notEnclosingClassName() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " factory B() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_FACTORY_NAME_NOT_A_CLASS]); |
- } |
- void test_invalidReferenceToThis_factoryConstructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " factory A() { return this; }", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_REFERENCE_TO_THIS]); |
- verify([source]); |
- } |
- void test_invalidReferenceToThis_instanceVariableInitializer_inConstructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " var f;", " A() : f = this;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_REFERENCE_TO_THIS]); |
- verify([source]); |
- } |
- void test_invalidReferenceToThis_instanceVariableInitializer_inDeclaration() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " var f = this;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_REFERENCE_TO_THIS]); |
- verify([source]); |
- } |
- void test_invalidReferenceToThis_staticMethod() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " static m() { return this; }", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_REFERENCE_TO_THIS]); |
- verify([source]); |
- } |
- void test_invalidReferenceToThis_staticVariableInitializer() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " static A f = this;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_REFERENCE_TO_THIS]); |
- verify([source]); |
- } |
- void test_invalidReferenceToThis_superInitializer() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A(var x) {}", |
- "}", |
- "class B extends A {", |
- " B() : super(this);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_REFERENCE_TO_THIS]); |
- verify([source]); |
- } |
- void test_invalidReferenceToThis_topLevelFunction() { |
- Source source = addSource("f() { return this; }"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_REFERENCE_TO_THIS]); |
- verify([source]); |
- } |
- void test_invalidReferenceToThis_variableInitializer() { |
- Source source = addSource("int x = this;"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_REFERENCE_TO_THIS]); |
- verify([source]); |
- } |
- void test_invalidTypeArgumentInConstList() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<E> {", |
- " m() {", |
- " return const <E>[];", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_TYPE_ARGUMENT_IN_CONST_LIST]); |
- verify([source]); |
- } |
- void test_invalidTypeArgumentInConstMap() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<E> {", |
- " m() {", |
- " return const <String, E>{};", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_TYPE_ARGUMENT_IN_CONST_MAP]); |
- verify([source]); |
- } |
- void test_invalidUri_export() { |
- Source source = addSource(EngineTestCase.createSource(["export 'ht:';"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_URI]); |
- } |
- void test_invalidUri_import() { |
- Source source = addSource(EngineTestCase.createSource(["import 'ht:';"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_URI]); |
- } |
- void test_invalidUri_part() { |
- Source source = addSource(EngineTestCase.createSource(["part 'ht:';"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.INVALID_URI]); |
- } |
- void test_labelInOuterScope() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void m(int i) {", |
- " l: while (i > 0) {", |
- " void f() {", |
- " break l;", |
- " };", |
- " }", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.LABEL_IN_OUTER_SCOPE]); |
- } |
- void test_labelUndefined_break() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " x: while (true) {", |
- " break y;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.LABEL_UNDEFINED]); |
- } |
- void test_labelUndefined_continue() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " x: while (true) {", |
- " continue y;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.LABEL_UNDEFINED]); |
- } |
- void test_listElementTypeNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource(["var v = const <String> [42];"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.LIST_ELEMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_mapKeyTypeNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource(["var v = const <String, int > {1 : 2};"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MAP_KEY_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_mapValueTypeNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource(["var v = const <String, String> {'a' : 2};"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MAP_VALUE_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_memberWithClassName_field() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int A = 0;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MEMBER_WITH_CLASS_NAME]); |
- verify([source]); |
- } |
- void test_memberWithClassName_field2() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int z, A, b = 0;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MEMBER_WITH_CLASS_NAME]); |
- verify([source]); |
- } |
- void test_memberWithClassName_getter() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " get A => 0;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MEMBER_WITH_CLASS_NAME]); |
- verify([source]); |
- } |
- void test_memberWithClassName_method() { |
- } |
- void test_methodAndGetterWithSameName() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " get x => 0;", " x(y) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.METHOD_AND_GETTER_WITH_SAME_NAME]); |
- verify([source]); |
- } |
- void test_mixinDeclaresConstructor_classDeclaration() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A() {}", |
- "}", |
- "class B extends Object with A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_DECLARES_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_mixinDeclaresConstructor_typeAlias() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A() {}", "}", "class B = Object with A;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_DECLARES_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_mixinInheritsFromNotObject_classDeclaration_extends() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {}", |
- "class C extends Object with B {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT]); |
- verify([source]); |
- } |
- void test_mixinInheritsFromNotObject_classDeclaration_with() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends Object with A {}", |
- "class C extends Object with B {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT]); |
- verify([source]); |
- } |
- void test_mixinInheritsFromNotObject_typeAlias_extends() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {}", |
- "class C = Object with B;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT]); |
- verify([source]); |
- } |
- void test_mixinInheritsFromNotObject_typeAlias_with() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends Object with A {}", |
- "class C = Object with B;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT]); |
- verify([source]); |
- } |
- void test_mixinOfDisallowedClass_bool() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends Object with bool {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_OF_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_mixinOfDisallowedClass_double() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends Object with double {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_OF_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_mixinOfDisallowedClass_int() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends Object with int {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_OF_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_mixinOfDisallowedClass_Null() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends Object with Null {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_OF_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_mixinOfDisallowedClass_num() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends Object with num {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_OF_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_mixinOfDisallowedClass_String() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends Object with String {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_OF_DISALLOWED_CLASS]); |
- verify([source]); |
- } |
- void test_mixinOfNonClass_class() { |
- Source source = addSource(EngineTestCase.createSource(["int A;", "class B extends Object with A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_OF_NON_CLASS]); |
- verify([source]); |
- } |
- void test_mixinOfNonClass_typeAlias() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "int B;", "class C = A with B;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_OF_NON_CLASS]); |
- verify([source]); |
- } |
- void test_mixinReferencesSuper() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " toString() => super.toString();", |
- "}", |
- "class B extends Object with A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_REFERENCES_SUPER]); |
- verify([source]); |
- } |
- void test_mixinWithNonClassSuperclass_class() { |
- Source source = addSource(EngineTestCase.createSource(["int A;", "class B {}", "class C extends A with B {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_WITH_NON_CLASS_SUPERCLASS]); |
- verify([source]); |
- } |
- void test_mixinWithNonClassSuperclass_typeAlias() { |
- Source source = addSource(EngineTestCase.createSource(["int A;", "class B {}", "class C = A with B;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MIXIN_WITH_NON_CLASS_SUPERCLASS]); |
- verify([source]); |
- } |
- void test_multipleRedirectingConstructorInvocations() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A() : this.a(), this.b();", |
- " A.a() {}", |
- " A.b() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MULTIPLE_REDIRECTING_CONSTRUCTOR_INVOCATIONS]); |
- verify([source]); |
- } |
- void test_multipleSuperInitializers() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " B() : super(), super() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.MULTIPLE_SUPER_INITIALIZERS]); |
- verify([source]); |
- } |
- void test_nativeClauseInNonSDKCode() { |
- Source source = addSource(EngineTestCase.createSource(["class A native 'string' {}"])); |
- resolve(source); |
- assertErrors(source, [ParserErrorCode.NATIVE_CLAUSE_IN_NON_SDK_CODE]); |
- verify([source]); |
- } |
- void test_nativeFunctionBodyInNonSDKCode_function() { |
- Source source = addSource(EngineTestCase.createSource(["int m(a) native 'string';"])); |
- resolve(source); |
- assertErrors(source, [ParserErrorCode.NATIVE_FUNCTION_BODY_IN_NON_SDK_CODE]); |
- verify([source]); |
- } |
- void test_nativeFunctionBodyInNonSDKCode_method() { |
- Source source = addSource(EngineTestCase.createSource(["class A{", " static int m(a) native 'string';", "}"])); |
- resolve(source); |
- assertErrors(source, [ParserErrorCode.NATIVE_FUNCTION_BODY_IN_NON_SDK_CODE]); |
- verify([source]); |
- } |
- void test_noAnnotationConstructorArguments() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " const A();", "}", "@A", "main() {", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NO_ANNOTATION_CONSTRUCTOR_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_noDefaultSuperConstructorExplicit() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A(p);", |
- "}", |
- "class B extends A {", |
- " B() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_EXPLICIT]); |
- verify([source]); |
- } |
- void test_noDefaultSuperConstructorImplicit_superHasParameters() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A(p);", "}", "class B extends A {", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT]); |
- verify([source]); |
- } |
- void test_noDefaultSuperConstructorImplicit_superOnlyNamed() { |
- Source source = addSource(EngineTestCase.createSource(["class A { A.named() {} }", "class B extends A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT]); |
- verify([source]); |
- } |
- void test_nonConstantAnnotationConstructor_named() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.fromInt() {}", |
- "}", |
- "@A.fromInt()", |
- "main() {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_ANNOTATION_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_nonConstantAnnotationConstructor_unnamed() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A() {}", "}", "@A()", "main() {", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_ANNOTATION_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_function_named() { |
- Source source = addSource(EngineTestCase.createSource(["int y;", "f({x : y}) {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_DEFAULT_VALUE]); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_function_positional() { |
- Source source = addSource(EngineTestCase.createSource(["int y;", "f([x = y]) {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_DEFAULT_VALUE]); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_inConstructor_named() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int y;", " A({x : y}) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_DEFAULT_VALUE]); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_inConstructor_positional() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int y;", " A([x = y]) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_DEFAULT_VALUE]); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_method_named() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int y;", " m({x : y}) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_DEFAULT_VALUE]); |
- verify([source]); |
- } |
- void test_nonConstantDefaultValue_method_positional() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int y;", " m([x = y]) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_DEFAULT_VALUE]); |
- verify([source]); |
- } |
- void test_nonConstCaseExpression() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(int p, int q) {", |
- " switch (p) {", |
- " case 3 + q:", |
- " break;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_CASE_EXPRESSION]); |
- verify([source]); |
- } |
- void test_nonConstListElement() { |
- Source source = addSource(EngineTestCase.createSource(["f(a) {", " return const [a];", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_LIST_ELEMENT]); |
- verify([source]); |
- } |
- void test_nonConstMapAsExpressionStatement_begin() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " {'a' : 0, 'b' : 1}.length;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONST_MAP_AS_EXPRESSION_STATEMENT]); |
- verify([source]); |
- } |
- void test_nonConstMapAsExpressionStatement_only() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " {'a' : 0, 'b' : 1};", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONST_MAP_AS_EXPRESSION_STATEMENT]); |
- verify([source]); |
- } |
- void test_nonConstMapKey() { |
- Source source = addSource(EngineTestCase.createSource(["f(a) {", " return const {a : 0};", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_MAP_KEY]); |
- verify([source]); |
- } |
- void test_nonConstMapValue() { |
- Source source = addSource(EngineTestCase.createSource(["f(a) {", " return const {'a' : a};", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_MAP_VALUE]); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_binary_notBool_left() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final bool a;", |
- " const A(String p) : a = p && true;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL]); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_binary_notBool_right() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final bool a;", |
- " const A(String p) : a = true && p;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL]); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_binary_notInt() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final int a;", |
- " const A(String p) : a = 5 & p;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.CONST_EVAL_TYPE_INT, |
- StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_binary_notNum() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final int a;", |
- " const A(String p) : a = 5 + p;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.CONST_EVAL_TYPE_NUM, |
- StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_field() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static int C;", |
- " final int a;", |
- " const A() : a = C;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_redirecting() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static var C;", |
- " const A.named(p);", |
- " const A() : this.named(C);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_nonConstValueInInitializer_super() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A(p);", |
- "}", |
- "class B extends A {", |
- " static var C;", |
- " const B() : super(C);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_nonGenerativeConstructor_explicit() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " factory A.named() {}", |
- "}", |
- "class B extends A {", |
- " B() : super.named();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_GENERATIVE_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_nonGenerativeConstructor_implicit() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " factory A() {}", |
- "}", |
- "class B extends A {", |
- " B();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_GENERATIVE_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_nonGenerativeConstructor_implicit2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " factory A() {}", |
- "}", |
- "class B extends A {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NON_GENERATIVE_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_notEnoughRequiredArguments_const() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A(int p);", |
- "}", |
- "main() {", |
- " const A();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NOT_ENOUGH_REQUIRED_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_notEnoughRequiredArguments_const_super() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A(int p);", |
- "}", |
- "class B extends A {", |
- " const B() : super();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.NOT_ENOUGH_REQUIRED_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_optionalParameterInOperator_named() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " operator +({p}) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.OPTIONAL_PARAMETER_IN_OPERATOR]); |
- verify([source]); |
- } |
- void test_optionalParameterInOperator_positional() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " operator +([p]) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.OPTIONAL_PARAMETER_IN_OPERATOR]); |
- verify([source]); |
- } |
- void test_partOfNonPart() { |
- Source source = addSource(EngineTestCase.createSource(["library l1;", "part 'l2.dart';"])); |
- addSource2("/l2.dart", EngineTestCase.createSource(["library l2;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.PART_OF_NON_PART]); |
- verify([source]); |
- } |
- void test_prefixCollidesWithTopLevelMembers_functionTypeAlias() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "class A{}"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as p;", "typedef p();", "p.A a;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.PREFIX_COLLIDES_WITH_TOP_LEVEL_MEMBER]); |
- verify([source]); |
- } |
- void test_prefixCollidesWithTopLevelMembers_topLevelFunction() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "class A{}"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as p;", "p() {}", "p.A a;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.PREFIX_COLLIDES_WITH_TOP_LEVEL_MEMBER]); |
- verify([source]); |
- } |
- void test_prefixCollidesWithTopLevelMembers_topLevelVariable() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "class A{}"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as p;", "var p = null;", "p.A a;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.PREFIX_COLLIDES_WITH_TOP_LEVEL_MEMBER]); |
- verify([source]); |
- } |
- void test_prefixCollidesWithTopLevelMembers_type() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "class A{}"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as p;", "class p {}", "p.A a;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.PREFIX_COLLIDES_WITH_TOP_LEVEL_MEMBER]); |
- verify([source]); |
- } |
- void test_privateOptionalParameter() { |
- Source source = addSource(EngineTestCase.createSource(["f({var _p}) {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.PRIVATE_OPTIONAL_PARAMETER]); |
- verify([source]); |
- } |
- void test_privateOptionalParameter_fieldFormal() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " var _p;", " A({this._p: 0});", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.PRIVATE_OPTIONAL_PARAMETER]); |
- verify([source]); |
- } |
- void test_privateOptionalParameter_withDefaultValue() { |
- Source source = addSource(EngineTestCase.createSource(["f({_p : 0}) {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.PRIVATE_OPTIONAL_PARAMETER]); |
- verify([source]); |
- } |
- void test_recursiveConstructorRedirect() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.a() : this.b();", |
- " A.b() : this.a();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.RECURSIVE_CONSTRUCTOR_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_CONSTRUCTOR_REDIRECT]); |
- verify([source]); |
- } |
- void test_recursiveConstructorRedirect_directSelfReference() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A() : this();", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.RECURSIVE_CONSTRUCTOR_REDIRECT]); |
- verify([source]); |
- } |
- void test_recursiveFactoryRedirect() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A implements B {", |
- " factory A() = C;", |
- "}", |
- "class B implements C {", |
- " factory B() = A;", |
- "}", |
- "class C implements A {", |
- " factory C() = B;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE]); |
- verify([source]); |
- } |
- void test_recursiveFactoryRedirect_directSelfReference() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " factory A() = A;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT]); |
- verify([source]); |
- } |
- void test_recursiveFactoryRedirect_generic() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<T> implements B<T> {", |
- " factory A() = C;", |
- "}", |
- "class B<T> implements C<T> {", |
- " factory B() = A;", |
- "}", |
- "class C<T> implements A<T> {", |
- " factory C() = B;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE]); |
- verify([source]); |
- } |
- void test_recursiveFactoryRedirect_named() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A implements B {", |
- " factory A.nameA() = C.nameC;", |
- "}", |
- "class B implements C {", |
- " factory B.nameB() = A.nameA;", |
- "}", |
- "class C implements A {", |
- " factory C.nameC() = B.nameB;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE]); |
- verify([source]); |
- } |
- |
- /** |
- * "A" references "C" which has cycle with "B". But we should not report problem for "A" - it is |
- * not the part of a cycle. |
- */ |
- void test_recursiveFactoryRedirect_outsideCycle() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " factory A() = C;", |
- "}", |
- "class B implements C {", |
- " factory B() = C;", |
- "}", |
- "class C implements A, B {", |
- " factory C() = B;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE]); |
- verify([source]); |
- } |
- void test_recursiveInterfaceInheritance_extends() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends B {}", "class B extends A {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE]); |
- verify([source]); |
- } |
- void test_recursiveInterfaceInheritance_extends_implements() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends B {}", "class B implements A {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE]); |
- verify([source]); |
- } |
- void test_recursiveInterfaceInheritance_implements() { |
- Source source = addSource(EngineTestCase.createSource(["class A implements B {}", "class B implements A {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE]); |
- verify([source]); |
- } |
- void test_recursiveInterfaceInheritance_tail() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A implements A {}", |
- "class B implements A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_IMPLEMENTS]); |
- verify([source]); |
- } |
- void test_recursiveInterfaceInheritance_tail2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A implements B {}", |
- "abstract class B implements A {}", |
- "class C implements A {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE]); |
- verify([source]); |
- } |
- void test_recursiveInterfaceInheritance_tail3() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A implements B {}", |
- "abstract class B implements C {}", |
- "abstract class C implements A {}", |
- "class D implements A {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, |
- CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE]); |
- verify([source]); |
- } |
- void test_recursiveInterfaceInheritanceBaseCaseExtends() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_EXTENDS]); |
- verify([source]); |
- } |
- void test_recursiveInterfaceInheritanceBaseCaseImplements() { |
- Source source = addSource(EngineTestCase.createSource(["class A implements A {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_IMPLEMENTS]); |
- verify([source]); |
- } |
- void test_recursiveInterfaceInheritanceBaseCaseImplements_typeAlias() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class M {}", |
- "class B = A with M implements B;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_IMPLEMENTS]); |
- verify([source]); |
- } |
- void test_redirectToNonConstConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.a() {}", |
- " const factory A.b() = A.a;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.REDIRECT_TO_NON_CONST_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_referencedBeforeDeclaration_hideInBlock_function() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "var v = 1;", |
- "main() {", |
- " print(v);", |
- " v() {}", |
- "}", |
- "print(x) {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.REFERENCED_BEFORE_DECLARATION]); |
- } |
- void test_referencedBeforeDeclaration_hideInBlock_local() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "var v = 1;", |
- "main() {", |
- " print(v);", |
- " var v = 2;", |
- "}", |
- "print(x) {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.REFERENCED_BEFORE_DECLARATION]); |
- } |
- void test_referencedBeforeDeclaration_hideInBlock_subBlock() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "var v = 1;", |
- "main() {", |
- " {", |
- " print(v);", |
- " }", |
- " var v = 2;", |
- "}", |
- "print(x) {}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.REFERENCED_BEFORE_DECLARATION]); |
- } |
- void test_referenceToDeclaredVariableInInitializer_closure() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var x = (x) {};", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.REFERENCE_TO_DECLARED_VARIABLE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_referenceToDeclaredVariableInInitializer_getter() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " int x = x + 1;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.REFERENCE_TO_DECLARED_VARIABLE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_referenceToDeclaredVariableInInitializer_setter() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " int x = x++;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.REFERENCE_TO_DECLARED_VARIABLE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_referenceToDeclaredVariableInInitializer_unqualifiedInvocation() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " var x = x();", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.REFERENCE_TO_DECLARED_VARIABLE_IN_INITIALIZER]); |
- verify([source]); |
- } |
- void test_rethrowOutsideCatch() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " rethrow;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.RETHROW_OUTSIDE_CATCH]); |
- verify([source]); |
- } |
- void test_returnInGenerativeConstructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A() { return 0; }", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.RETURN_IN_GENERATIVE_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_returnInGenerativeConstructor_expressionFunctionBody() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A() => null;", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.RETURN_IN_GENERATIVE_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_superInInvalidContext_binaryExpression() { |
- Source source = addSource(EngineTestCase.createSource(["var v = super + 0;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.SUPER_IN_INVALID_CONTEXT]); |
- } |
- void test_superInInvalidContext_constructorFieldInitializer() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {}", |
- "}", |
- "class B extends A {", |
- " var f;", |
- " B() : f = super.m();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.SUPER_IN_INVALID_CONTEXT]); |
- } |
- void test_superInInvalidContext_factoryConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {}", |
- "}", |
- "class B extends A {", |
- " factory B() {", |
- " super.m();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.SUPER_IN_INVALID_CONTEXT]); |
- } |
- void test_superInInvalidContext_instanceVariableInitializer() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " var a;", |
- "}", |
- "class B extends A {", |
- " var b = super.a;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.SUPER_IN_INVALID_CONTEXT]); |
- } |
- void test_superInInvalidContext_staticMethod() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static m() {}", |
- "}", |
- "class B extends A {", |
- " static n() { return super.m(); }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.SUPER_IN_INVALID_CONTEXT]); |
- } |
- void test_superInInvalidContext_staticVariableInitializer() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static int a = 0;", |
- "}", |
- "class B extends A {", |
- " static int b = super.a;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.SUPER_IN_INVALID_CONTEXT]); |
- } |
- void test_superInInvalidContext_topLevelFunction() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " super.f();", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.SUPER_IN_INVALID_CONTEXT]); |
- } |
- void test_superInInvalidContext_topLevelVariableInitializer() { |
- Source source = addSource(EngineTestCase.createSource(["var v = super.y;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.SUPER_IN_INVALID_CONTEXT]); |
- } |
- void test_superInRedirectingConstructor_redirectionSuper() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {", |
- " B() : this.name(), super();", |
- " B.name() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.SUPER_IN_REDIRECTING_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_superInRedirectingConstructor_superRedirection() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {", |
- " B() : super(), this.name();", |
- " B.name() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.SUPER_IN_REDIRECTING_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_typeAliasCannotReferenceItself_parameterType_named() { |
- Source source = addSource(EngineTestCase.createSource(["typedef A({A a});"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF]); |
- verify([source]); |
- } |
- void test_typeAliasCannotReferenceItself_parameterType_positional() { |
- Source source = addSource(EngineTestCase.createSource(["typedef A([A a]);"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF]); |
- verify([source]); |
- } |
- void test_typeAliasCannotReferenceItself_parameterType_required() { |
- Source source = addSource(EngineTestCase.createSource(["typedef A(A a);"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF]); |
- verify([source]); |
- } |
- void test_typeAliasCannotReferenceItself_parameterType_typeArgument() { |
- Source source = addSource(EngineTestCase.createSource(["typedef A(List<A> a);"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF]); |
- verify([source]); |
- } |
- void test_typeAliasCannotReferenceItself_returnClass_withTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "typedef C A();", |
- "typedef A B();", |
- "class C {", |
- " B a;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF]); |
- verify([source]); |
- } |
- void test_typeAliasCannotReferenceItself_returnType() { |
- Source source = addSource(EngineTestCase.createSource(["typedef A A();"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF]); |
- verify([source]); |
- } |
- void test_typeAliasCannotReferenceItself_returnType_indirect() { |
- Source source = addSource(EngineTestCase.createSource(["typedef B A();", "typedef A B();"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF, |
- CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF]); |
- verify([source]); |
- } |
- void test_typeAliasCannotReferenceItself_typeVariableBounds() { |
- Source source = addSource(EngineTestCase.createSource(["typedef A<T extends A>();"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF]); |
- verify([source]); |
- } |
- void test_typeAliasCannotRereferenceItself_mixin_direct() { |
- Source source = addSource(EngineTestCase.createSource(["class M = Object with M;"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF]); |
- verify([source]); |
- } |
- void test_typeAliasCannotRereferenceItself_mixin_indirect() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class M1 = Object with M2;", |
- "class M2 = Object with M1;"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF, |
- CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF]); |
- verify([source]); |
- } |
- void test_typeArgumentNotMatchingBounds_const() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B {}", |
- "class G<E extends A> {", |
- " const G();", |
- "}", |
- "f() { return const G<B>(); }"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
- verify([source]); |
- } |
- void test_undefinedClass_const() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " return const A();", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.UNDEFINED_CLASS]); |
- verify([source]); |
- } |
- void test_undefinedConstructorInInitializer_explicit_named() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " B() : super.named();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.UNDEFINED_CONSTRUCTOR_IN_INITIALIZER]); |
- } |
- void test_undefinedConstructorInInitializer_explicit_unnamed() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.named() {}", |
- "}", |
- "class B extends A {", |
- " B() : super();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.UNDEFINED_CONSTRUCTOR_IN_INITIALIZER_DEFAULT]); |
- verify([source]); |
- } |
- void test_undefinedConstructorInInitializer_implicit() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.named() {}", |
- "}", |
- "class B extends A {", |
- " B();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.UNDEFINED_CONSTRUCTOR_IN_INITIALIZER_DEFAULT]); |
- verify([source]); |
- } |
- void test_undefinedFunction() { |
- Source source = addSource(EngineTestCase.createSource(["void f() {", " g();", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.UNDEFINED_FUNCTION]); |
- } |
- void test_undefinedFunction_hasImportPrefix() { |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as f;", "main() { return f(); }"])); |
- addSource2("/lib.dart", "library lib;"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.UNDEFINED_FUNCTION]); |
- } |
- void test_undefinedFunction_inCatch() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "void f() {", |
- " try {", |
- " } on Object {", |
- " g();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.UNDEFINED_FUNCTION]); |
- } |
- void test_undefinedNamedParameter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A();", |
- "}", |
- "main() {", |
- " const A(p: 0);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.UNDEFINED_NAMED_PARAMETER]); |
- } |
- void test_uriDoesNotExist_export() { |
- Source source = addSource(EngineTestCase.createSource(["export 'unknown.dart';"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.URI_DOES_NOT_EXIST]); |
- } |
- void test_uriDoesNotExist_import() { |
- Source source = addSource(EngineTestCase.createSource(["import 'unknown.dart';"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.URI_DOES_NOT_EXIST]); |
- } |
- void test_uriDoesNotExist_part() { |
- Source source = addSource(EngineTestCase.createSource(["part 'unknown.dart';"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.URI_DOES_NOT_EXIST]); |
- } |
- void test_uriWithInterpolation_constant() { |
- Source source = addSource(EngineTestCase.createSource(["import 'stuff_\$platform.dart';"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.URI_WITH_INTERPOLATION, |
- StaticWarningCode.UNDEFINED_IDENTIFIER]); |
- } |
- void test_uriWithInterpolation_nonConstant() { |
- Source source = addSource(EngineTestCase.createSource(["library lib;", "part '\${'a'}.dart';"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.URI_WITH_INTERPOLATION]); |
- } |
- void test_wrongNumberOfParametersForOperator_minus() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " operator -(a, b) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_OPERATOR_MINUS]); |
- verify([source]); |
- reset(); |
- } |
- void test_wrongNumberOfParametersForOperator_tilde() { |
- check_wrongNumberOfParametersForOperator("~", "a"); |
- check_wrongNumberOfParametersForOperator("~", "a, b"); |
- } |
- void test_wrongNumberOfParametersForOperator1() { |
- check_wrongNumberOfParametersForOperator1("<"); |
- check_wrongNumberOfParametersForOperator1(">"); |
- check_wrongNumberOfParametersForOperator1("<="); |
- check_wrongNumberOfParametersForOperator1(">="); |
- check_wrongNumberOfParametersForOperator1("+"); |
- check_wrongNumberOfParametersForOperator1("/"); |
- check_wrongNumberOfParametersForOperator1("~/"); |
- check_wrongNumberOfParametersForOperator1("*"); |
- check_wrongNumberOfParametersForOperator1("%"); |
- check_wrongNumberOfParametersForOperator1("|"); |
- check_wrongNumberOfParametersForOperator1("^"); |
- check_wrongNumberOfParametersForOperator1("&"); |
- check_wrongNumberOfParametersForOperator1("<<"); |
- check_wrongNumberOfParametersForOperator1(">>"); |
- check_wrongNumberOfParametersForOperator1("[]"); |
- } |
- void test_wrongNumberOfParametersForSetter_function_named() { |
- Source source = addSource("set x({p}) {}"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER]); |
- verify([source]); |
- } |
- void test_wrongNumberOfParametersForSetter_function_optional() { |
- Source source = addSource("set x([p]) {}"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER]); |
- verify([source]); |
- } |
- void test_wrongNumberOfParametersForSetter_function_tooFew() { |
- Source source = addSource("set x() {}"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER]); |
- verify([source]); |
- } |
- void test_wrongNumberOfParametersForSetter_function_tooMany() { |
- Source source = addSource("set x(a, b) {}"); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER]); |
- verify([source]); |
- } |
- void test_wrongNumberOfParametersForSetter_method_named() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " set x({p}) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER]); |
- verify([source]); |
- } |
- void test_wrongNumberOfParametersForSetter_method_optional() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " set x([p]) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER]); |
- verify([source]); |
- } |
- void test_wrongNumberOfParametersForSetter_method_tooFew() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " set x() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER]); |
- verify([source]); |
- } |
- void test_wrongNumberOfParametersForSetter_method_tooMany() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " set x(a, b) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER]); |
- verify([source]); |
- } |
- void check_constEvalThrowsException_binary_null(String expr, bool resolved) { |
- Source source = addSource("const C = ${expr};"); |
- resolve(source); |
- if (resolved) { |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION]); |
- verify([source]); |
- } else { |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION]); |
- } |
- reset(); |
- } |
- void check_constEvalTypeBool_withParameter_binary(String expr) { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final a;", |
- " const A(bool p) : a = ${expr};", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL]); |
- verify([source]); |
- reset(); |
- } |
- void check_constEvalTypeInt_withParameter_binary(String expr) { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final a;", |
- " const A(int p) : a = ${expr};", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.CONST_EVAL_TYPE_INT, |
- StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- reset(); |
- } |
- void check_constEvalTypeNum_withParameter_binary(String expr) { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final a;", |
- " const A(num p) : a = ${expr};", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.CONST_EVAL_TYPE_NUM, |
- StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- reset(); |
- } |
- void check_wrongNumberOfParametersForOperator(String name, String parameters) { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " operator ${name}(${parameters}) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_OPERATOR]); |
- verify([source]); |
- reset(); |
- } |
- void check_wrongNumberOfParametersForOperator1(String name) { |
- check_wrongNumberOfParametersForOperator(name, ""); |
- check_wrongNumberOfParametersForOperator(name, "a, b"); |
- } |
- static dartSuite() { |
- _ut.group('CompileTimeErrorCodeTest', () { |
- _ut.test('test_ambiguousExport', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousExport); |
- }); |
- _ut.test('test_ambiguousImport_function', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_function); |
- }); |
- _ut.test('test_argumentDefinitionTestNonParameter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_argumentDefinitionTestNonParameter); |
- }); |
- _ut.test('test_builtInIdentifierAsMixinName_classTypeAlias', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_builtInIdentifierAsMixinName_classTypeAlias); |
- }); |
- _ut.test('test_builtInIdentifierAsTypeName', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_builtInIdentifierAsTypeName); |
- }); |
- _ut.test('test_builtInIdentifierAsTypeParameterName', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_builtInIdentifierAsTypeParameterName); |
- }); |
- _ut.test('test_builtInIdentifierAsType_formalParameter_field', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_builtInIdentifierAsType_formalParameter_field); |
- }); |
- _ut.test('test_builtInIdentifierAsType_formalParameter_simple', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_builtInIdentifierAsType_formalParameter_simple); |
- }); |
- _ut.test('test_builtInIdentifierAsType_variableDeclaration', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_builtInIdentifierAsType_variableDeclaration); |
- }); |
- _ut.test('test_builtInIdentifierAsTypedefName_functionTypeAlias', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_builtInIdentifierAsTypedefName_functionTypeAlias); |
- }); |
- _ut.test('test_caseExpressionTypeImplementsEquals', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_caseExpressionTypeImplementsEquals); |
- }); |
- _ut.test('test_conflictingConstructorNameAndMember_field', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingConstructorNameAndMember_field); |
- }); |
- _ut.test('test_conflictingConstructorNameAndMember_method', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingConstructorNameAndMember_method); |
- }); |
- _ut.test('test_conflictingGetterAndMethod_field_method', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingGetterAndMethod_field_method); |
- }); |
- _ut.test('test_conflictingGetterAndMethod_getter_method', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingGetterAndMethod_getter_method); |
- }); |
- _ut.test('test_conflictingGetterAndMethod_method_field', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingGetterAndMethod_method_field); |
- }); |
- _ut.test('test_conflictingGetterAndMethod_method_getter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingGetterAndMethod_method_getter); |
- }); |
- _ut.test('test_conflictingTypeVariableAndClass', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingTypeVariableAndClass); |
- }); |
- _ut.test('test_conflictingTypeVariableAndMember_field', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingTypeVariableAndMember_field); |
- }); |
- _ut.test('test_conflictingTypeVariableAndMember_getter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingTypeVariableAndMember_getter); |
- }); |
- _ut.test('test_conflictingTypeVariableAndMember_method', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingTypeVariableAndMember_method); |
- }); |
- _ut.test('test_conflictingTypeVariableAndMember_method_static', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingTypeVariableAndMember_method_static); |
- }); |
- _ut.test('test_conflictingTypeVariableAndMember_setter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingTypeVariableAndMember_setter); |
- }); |
- _ut.test('test_constConstructorWithNonConstSuper_explicit', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constConstructorWithNonConstSuper_explicit); |
- }); |
- _ut.test('test_constConstructorWithNonConstSuper_implicit', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constConstructorWithNonConstSuper_implicit); |
- }); |
- _ut.test('test_constConstructorWithNonFinalField_mixin', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constConstructorWithNonFinalField_mixin); |
- }); |
- _ut.test('test_constConstructorWithNonFinalField_super', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constConstructorWithNonFinalField_super); |
- }); |
- _ut.test('test_constConstructorWithNonFinalField_this', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constConstructorWithNonFinalField_this); |
- }); |
- _ut.test('test_constEvalThrowsException_binaryMinus_null', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalThrowsException_binaryMinus_null); |
- }); |
- _ut.test('test_constEvalThrowsException_binaryPlus_null', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalThrowsException_binaryPlus_null); |
- }); |
- _ut.test('test_constEvalThrowsException_divisionByZero', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalThrowsException_divisionByZero); |
- }); |
- _ut.test('test_constEvalThrowsException_unaryBitNot_null', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalThrowsException_unaryBitNot_null); |
- }); |
- _ut.test('test_constEvalThrowsException_unaryNegated_null', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalThrowsException_unaryNegated_null); |
- }); |
- _ut.test('test_constEvalThrowsException_unaryNot_null', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalThrowsException_unaryNot_null); |
- }); |
- _ut.test('test_constEvalTypeBoolNumString_equal', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalTypeBoolNumString_equal); |
- }); |
- _ut.test('test_constEvalTypeBoolNumString_notEqual', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalTypeBoolNumString_notEqual); |
- }); |
- _ut.test('test_constEvalTypeBool_binary', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalTypeBool_binary); |
- }); |
- _ut.test('test_constEvalTypeBool_binary_leftTrue', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalTypeBool_binary_leftTrue); |
- }); |
- _ut.test('test_constEvalTypeInt_binary', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalTypeInt_binary); |
- }); |
- _ut.test('test_constEvalTypeNum_binary', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalTypeNum_binary); |
- }); |
- _ut.test('test_constEvalTypeNum_plus_String', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEvalTypeNum_plus_String); |
- }); |
- _ut.test('test_constEval_newInstance_constConstructor', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEval_newInstance_constConstructor); |
- }); |
- _ut.test('test_constEval_propertyExtraction_targetNotConst', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constEval_propertyExtraction_targetNotConst); |
- }); |
- _ut.test('test_constFormalParameter_fieldFormalParameter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constFormalParameter_fieldFormalParameter); |
- }); |
- _ut.test('test_constFormalParameter_simpleFormalParameter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constFormalParameter_simpleFormalParameter); |
- }); |
- _ut.test('test_constInitializedWithNonConstValue', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constInitializedWithNonConstValue); |
- }); |
- _ut.test('test_constInitializedWithNonConstValue_missingConstInListLiteral', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constInitializedWithNonConstValue_missingConstInListLiteral); |
- }); |
- _ut.test('test_constInitializedWithNonConstValue_missingConstInMapLiteral', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constInitializedWithNonConstValue_missingConstInMapLiteral); |
- }); |
- _ut.test('test_constInstanceField', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constInstanceField); |
- }); |
- _ut.test('test_constMapKeyTypeImplementsEquals_direct', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constMapKeyTypeImplementsEquals_direct); |
- }); |
- _ut.test('test_constMapKeyTypeImplementsEquals_super', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constMapKeyTypeImplementsEquals_super); |
- }); |
- _ut.test('test_constWithInvalidTypeParameters', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithInvalidTypeParameters); |
- }); |
- _ut.test('test_constWithInvalidTypeParameters_tooFew', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithInvalidTypeParameters_tooFew); |
- }); |
- _ut.test('test_constWithInvalidTypeParameters_tooMany', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithInvalidTypeParameters_tooMany); |
- }); |
- _ut.test('test_constWithNonConst', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithNonConst); |
- }); |
- _ut.test('test_constWithNonConstantArgument_annotation', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithNonConstantArgument_annotation); |
- }); |
- _ut.test('test_constWithNonConstantArgument_instanceCreation', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithNonConstantArgument_instanceCreation); |
- }); |
- _ut.test('test_constWithNonType', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithNonType); |
- }); |
- _ut.test('test_constWithNonType_fromLibrary', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithNonType_fromLibrary); |
- }); |
- _ut.test('test_constWithTypeParameters_direct', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithTypeParameters_direct); |
- }); |
- _ut.test('test_constWithTypeParameters_indirect', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithTypeParameters_indirect); |
- }); |
- _ut.test('test_constWithUndefinedConstructor', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithUndefinedConstructor); |
- }); |
- _ut.test('test_constWithUndefinedConstructorDefault', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_constWithUndefinedConstructorDefault); |
- }); |
- _ut.test('test_defaultValueInFunctionTypeAlias', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_defaultValueInFunctionTypeAlias); |
- }); |
- _ut.test('test_defaultValueInFunctionTypedParameter_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_defaultValueInFunctionTypedParameter_named); |
- }); |
- _ut.test('test_defaultValueInFunctionTypedParameter_optional', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_defaultValueInFunctionTypedParameter_optional); |
- }); |
- _ut.test('test_defaultValueInRedirectingFactoryConstructor', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_defaultValueInRedirectingFactoryConstructor); |
- }); |
- _ut.test('test_duplicateConstructorName_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateConstructorName_named); |
- }); |
- _ut.test('test_duplicateConstructorName_unnamed', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateConstructorName_unnamed); |
- }); |
- _ut.test('test_duplicateDefinition', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinition); |
- }); |
- _ut.test('test_duplicateDefinitionInheritance_instanceGetterAbstract_staticGetter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinitionInheritance_instanceGetterAbstract_staticGetter); |
- }); |
- _ut.test('test_duplicateDefinitionInheritance_instanceGetter_staticGetter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinitionInheritance_instanceGetter_staticGetter); |
- }); |
- _ut.test('test_duplicateDefinitionInheritance_instanceMethodAbstract_staticMethod', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinitionInheritance_instanceMethodAbstract_staticMethod); |
- }); |
- _ut.test('test_duplicateDefinitionInheritance_instanceMethod_staticMethod', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinitionInheritance_instanceMethod_staticMethod); |
- }); |
- _ut.test('test_duplicateDefinitionInheritance_instanceSetterAbstract_staticSetter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinitionInheritance_instanceSetterAbstract_staticSetter); |
- }); |
- _ut.test('test_duplicateDefinitionInheritance_instanceSetter_staticSetter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinitionInheritance_instanceSetter_staticSetter); |
- }); |
- _ut.test('test_duplicateDefinition_acrossLibraries', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinition_acrossLibraries); |
- }); |
- _ut.test('test_duplicateDefinition_classMembers_fields', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinition_classMembers_fields); |
- }); |
- _ut.test('test_duplicateDefinition_classMembers_fields_oneStatic', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinition_classMembers_fields_oneStatic); |
- }); |
- _ut.test('test_duplicateDefinition_classMembers_methods', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinition_classMembers_methods); |
- }); |
- _ut.test('test_duplicateDefinition_localFields', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinition_localFields); |
- }); |
- _ut.test('test_duplicateDefinition_parameterWithFunctionName_local', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinition_parameterWithFunctionName_local); |
- }); |
- _ut.test('test_duplicateDefinition_parameterWithFunctionName_topLevel', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateDefinition_parameterWithFunctionName_topLevel); |
- }); |
- _ut.test('test_duplicateNamedArgument', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateNamedArgument); |
- }); |
- _ut.test('test_exportInternalLibrary', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_exportInternalLibrary); |
- }); |
- _ut.test('test_exportOfNonLibrary', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_exportOfNonLibrary); |
- }); |
- _ut.test('test_extendsDisallowedClass_Null', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_extendsDisallowedClass_Null); |
- }); |
- _ut.test('test_extendsDisallowedClass_String', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_extendsDisallowedClass_String); |
- }); |
- _ut.test('test_extendsDisallowedClass_bool', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_extendsDisallowedClass_bool); |
- }); |
- _ut.test('test_extendsDisallowedClass_double', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_extendsDisallowedClass_double); |
- }); |
- _ut.test('test_extendsDisallowedClass_int', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_extendsDisallowedClass_int); |
- }); |
- _ut.test('test_extendsDisallowedClass_num', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_extendsDisallowedClass_num); |
- }); |
- _ut.test('test_extendsNonClass_class', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_extendsNonClass_class); |
- }); |
- _ut.test('test_extendsNonClass_dynamic', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_extendsNonClass_dynamic); |
- }); |
- _ut.test('test_extraPositionalArguments_const', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_extraPositionalArguments_const); |
- }); |
- _ut.test('test_extraPositionalArguments_const_super', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_extraPositionalArguments_const_super); |
- }); |
- _ut.test('test_fieldInitializedByMultipleInitializers', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializedByMultipleInitializers); |
- }); |
- _ut.test('test_fieldInitializedByMultipleInitializers_multipleInits', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializedByMultipleInitializers_multipleInits); |
- }); |
- _ut.test('test_fieldInitializedByMultipleInitializers_multipleNames', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializedByMultipleInitializers_multipleNames); |
- }); |
- _ut.test('test_fieldInitializedInParameterAndInitializer', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializedInParameterAndInitializer); |
- }); |
- _ut.test('test_fieldInitializerFactoryConstructor', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializerFactoryConstructor); |
- }); |
- _ut.test('test_fieldInitializerNotAssignable', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializerNotAssignable); |
- }); |
- _ut.test('test_fieldInitializerOutsideConstructor', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializerOutsideConstructor); |
- }); |
- _ut.test('test_fieldInitializerOutsideConstructor_defaultParameter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializerOutsideConstructor_defaultParameter); |
- }); |
- _ut.test('test_fieldInitializerRedirectingConstructor_afterRedirection', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializerRedirectingConstructor_afterRedirection); |
- }); |
- _ut.test('test_fieldInitializerRedirectingConstructor_beforeRedirection', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializerRedirectingConstructor_beforeRedirection); |
- }); |
- _ut.test('test_fieldInitializingFormalRedirectingConstructor', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializingFormalRedirectingConstructor); |
- }); |
- _ut.test('test_finalInitializedMultipleTimes_initializers', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_finalInitializedMultipleTimes_initializers); |
- }); |
- _ut.test('test_finalInitializedMultipleTimes_initializingFormal_initializer', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_finalInitializedMultipleTimes_initializingFormal_initializer); |
- }); |
- _ut.test('test_finalInitializedMultipleTimes_initializingFormals', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_finalInitializedMultipleTimes_initializingFormals); |
- }); |
- _ut.test('test_finalNotInitialized_instanceField_const_static', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_instanceField_const_static); |
- }); |
- _ut.test('test_finalNotInitialized_library_const', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_library_const); |
- }); |
- _ut.test('test_finalNotInitialized_local_const', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_local_const); |
- }); |
- _ut.test('test_getterAndMethodWithSameName', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_getterAndMethodWithSameName); |
- }); |
- _ut.test('test_implementsDisallowedClass_Null', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsDisallowedClass_Null); |
- }); |
- _ut.test('test_implementsDisallowedClass_String', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsDisallowedClass_String); |
- }); |
- _ut.test('test_implementsDisallowedClass_bool', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsDisallowedClass_bool); |
- }); |
- _ut.test('test_implementsDisallowedClass_double', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsDisallowedClass_double); |
- }); |
- _ut.test('test_implementsDisallowedClass_int', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsDisallowedClass_int); |
- }); |
- _ut.test('test_implementsDisallowedClass_num', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsDisallowedClass_num); |
- }); |
- _ut.test('test_implementsDynamic', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsDynamic); |
- }); |
- _ut.test('test_implementsNonClass_class', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsNonClass_class); |
- }); |
- _ut.test('test_implementsNonClass_typeAlias', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsNonClass_typeAlias); |
- }); |
- _ut.test('test_implementsRepeated', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsRepeated); |
- }); |
- _ut.test('test_implementsRepeated_3times', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsRepeated_3times); |
- }); |
- _ut.test('test_implementsSuperClass', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsSuperClass); |
- }); |
- _ut.test('test_implementsSuperClass_Object', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implementsSuperClass_Object); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_field', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_field); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_field2', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_field2); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_invocation', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_invocation); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_invocationInStatic', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_invocationInStatic); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_redirectingConstructorInvocation', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_redirectingConstructorInvocation); |
- }); |
- _ut.test('test_implicitThisReferenceInInitializer_superConstructorInvocation', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_implicitThisReferenceInInitializer_superConstructorInvocation); |
- }); |
- _ut.test('test_importInternalLibrary', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_importInternalLibrary); |
- }); |
- _ut.test('test_importInternalLibrary_collection', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_importInternalLibrary_collection); |
- }); |
- _ut.test('test_importOfNonLibrary', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_importOfNonLibrary); |
- }); |
- _ut.test('test_inconsistentCaseExpressionTypes', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_inconsistentCaseExpressionTypes); |
- }); |
- _ut.test('test_inconsistentCaseExpressionTypes_repeated', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_inconsistentCaseExpressionTypes_repeated); |
- }); |
- _ut.test('test_initializerForNonExistant_initializer', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_initializerForNonExistant_initializer); |
- }); |
- _ut.test('test_initializerForStaticField', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_initializerForStaticField); |
- }); |
- _ut.test('test_initializingFormalForNonExistantField', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_initializingFormalForNonExistantField); |
- }); |
- _ut.test('test_initializingFormalForNonExistantField_notInEnclosingClass', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_initializingFormalForNonExistantField_notInEnclosingClass); |
- }); |
- _ut.test('test_initializingFormalForNonExistantField_optional', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_initializingFormalForNonExistantField_optional); |
- }); |
- _ut.test('test_initializingFormalForNonExistantField_synthetic', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_initializingFormalForNonExistantField_synthetic); |
- }); |
- _ut.test('test_initializingFormalForStaticField', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_initializingFormalForStaticField); |
- }); |
- _ut.test('test_instanceMemberAccessFromStatic_field', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_instanceMemberAccessFromStatic_field); |
- }); |
- _ut.test('test_instanceMemberAccessFromStatic_getter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_instanceMemberAccessFromStatic_getter); |
- }); |
- _ut.test('test_instanceMemberAccessFromStatic_method', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_instanceMemberAccessFromStatic_method); |
- }); |
- _ut.test('test_invalidAnnotation_getter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAnnotation_getter); |
- }); |
- _ut.test('test_invalidAnnotation_importWithPrefix_getter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAnnotation_importWithPrefix_getter); |
- }); |
- _ut.test('test_invalidAnnotation_importWithPrefix_notConstantVariable', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAnnotation_importWithPrefix_notConstantVariable); |
- }); |
- _ut.test('test_invalidAnnotation_importWithPrefix_notVariableOrConstructorInvocation', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAnnotation_importWithPrefix_notVariableOrConstructorInvocation); |
- }); |
- _ut.test('test_invalidAnnotation_notConstantVariable', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAnnotation_notConstantVariable); |
- }); |
- _ut.test('test_invalidAnnotation_notVariableOrConstructorInvocation', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAnnotation_notVariableOrConstructorInvocation); |
- }); |
- _ut.test('test_invalidAnnotation_staticMethodReference', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidAnnotation_staticMethodReference); |
- }); |
- _ut.test('test_invalidConstructorName_notEnclosingClassName_defined', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidConstructorName_notEnclosingClassName_defined); |
- }); |
- _ut.test('test_invalidConstructorName_notEnclosingClassName_undefined', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidConstructorName_notEnclosingClassName_undefined); |
- }); |
- _ut.test('test_invalidFactoryNameNotAClass_notClassName', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidFactoryNameNotAClass_notClassName); |
- }); |
- _ut.test('test_invalidFactoryNameNotAClass_notEnclosingClassName', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidFactoryNameNotAClass_notEnclosingClassName); |
- }); |
- _ut.test('test_invalidReferenceToThis_factoryConstructor', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidReferenceToThis_factoryConstructor); |
- }); |
- _ut.test('test_invalidReferenceToThis_instanceVariableInitializer_inConstructor', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidReferenceToThis_instanceVariableInitializer_inConstructor); |
- }); |
- _ut.test('test_invalidReferenceToThis_instanceVariableInitializer_inDeclaration', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidReferenceToThis_instanceVariableInitializer_inDeclaration); |
- }); |
- _ut.test('test_invalidReferenceToThis_staticMethod', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidReferenceToThis_staticMethod); |
- }); |
- _ut.test('test_invalidReferenceToThis_staticVariableInitializer', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidReferenceToThis_staticVariableInitializer); |
- }); |
- _ut.test('test_invalidReferenceToThis_superInitializer', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidReferenceToThis_superInitializer); |
- }); |
- _ut.test('test_invalidReferenceToThis_topLevelFunction', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidReferenceToThis_topLevelFunction); |
- }); |
- _ut.test('test_invalidReferenceToThis_variableInitializer', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidReferenceToThis_variableInitializer); |
- }); |
- _ut.test('test_invalidTypeArgumentInConstList', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidTypeArgumentInConstList); |
- }); |
- _ut.test('test_invalidTypeArgumentInConstMap', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidTypeArgumentInConstMap); |
- }); |
- _ut.test('test_invalidUri_export', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidUri_export); |
- }); |
- _ut.test('test_invalidUri_import', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidUri_import); |
- }); |
- _ut.test('test_invalidUri_part', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_invalidUri_part); |
- }); |
- _ut.test('test_labelInOuterScope', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_labelInOuterScope); |
- }); |
- _ut.test('test_labelUndefined_break', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_labelUndefined_break); |
- }); |
- _ut.test('test_labelUndefined_continue', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_labelUndefined_continue); |
- }); |
- _ut.test('test_listElementTypeNotAssignable', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_listElementTypeNotAssignable); |
- }); |
- _ut.test('test_mapKeyTypeNotAssignable', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mapKeyTypeNotAssignable); |
- }); |
- _ut.test('test_mapValueTypeNotAssignable', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mapValueTypeNotAssignable); |
- }); |
- _ut.test('test_memberWithClassName_field', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_memberWithClassName_field); |
- }); |
- _ut.test('test_memberWithClassName_field2', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_memberWithClassName_field2); |
- }); |
- _ut.test('test_memberWithClassName_getter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_memberWithClassName_getter); |
- }); |
- _ut.test('test_memberWithClassName_method', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_memberWithClassName_method); |
- }); |
- _ut.test('test_methodAndGetterWithSameName', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_methodAndGetterWithSameName); |
- }); |
- _ut.test('test_mixinDeclaresConstructor_classDeclaration', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinDeclaresConstructor_classDeclaration); |
- }); |
- _ut.test('test_mixinDeclaresConstructor_typeAlias', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinDeclaresConstructor_typeAlias); |
- }); |
- _ut.test('test_mixinInheritsFromNotObject_classDeclaration_extends', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_classDeclaration_extends); |
- }); |
- _ut.test('test_mixinInheritsFromNotObject_classDeclaration_with', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_classDeclaration_with); |
- }); |
- _ut.test('test_mixinInheritsFromNotObject_typeAlias_extends', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_typeAlias_extends); |
- }); |
- _ut.test('test_mixinInheritsFromNotObject_typeAlias_with', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_typeAlias_with); |
- }); |
- _ut.test('test_mixinOfDisallowedClass_Null', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinOfDisallowedClass_Null); |
- }); |
- _ut.test('test_mixinOfDisallowedClass_String', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinOfDisallowedClass_String); |
- }); |
- _ut.test('test_mixinOfDisallowedClass_bool', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinOfDisallowedClass_bool); |
- }); |
- _ut.test('test_mixinOfDisallowedClass_double', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinOfDisallowedClass_double); |
- }); |
- _ut.test('test_mixinOfDisallowedClass_int', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinOfDisallowedClass_int); |
- }); |
- _ut.test('test_mixinOfDisallowedClass_num', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinOfDisallowedClass_num); |
- }); |
- _ut.test('test_mixinOfNonClass_class', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinOfNonClass_class); |
- }); |
- _ut.test('test_mixinOfNonClass_typeAlias', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinOfNonClass_typeAlias); |
- }); |
- _ut.test('test_mixinReferencesSuper', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinReferencesSuper); |
- }); |
- _ut.test('test_mixinWithNonClassSuperclass_class', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinWithNonClassSuperclass_class); |
- }); |
- _ut.test('test_mixinWithNonClassSuperclass_typeAlias', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_mixinWithNonClassSuperclass_typeAlias); |
- }); |
- _ut.test('test_multipleRedirectingConstructorInvocations', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_multipleRedirectingConstructorInvocations); |
- }); |
- _ut.test('test_multipleSuperInitializers', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_multipleSuperInitializers); |
- }); |
- _ut.test('test_nativeClauseInNonSDKCode', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nativeClauseInNonSDKCode); |
- }); |
- _ut.test('test_nativeFunctionBodyInNonSDKCode_function', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nativeFunctionBodyInNonSDKCode_function); |
- }); |
- _ut.test('test_nativeFunctionBodyInNonSDKCode_method', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nativeFunctionBodyInNonSDKCode_method); |
- }); |
- _ut.test('test_noAnnotationConstructorArguments', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_noAnnotationConstructorArguments); |
- }); |
- _ut.test('test_noDefaultSuperConstructorExplicit', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_noDefaultSuperConstructorExplicit); |
- }); |
- _ut.test('test_noDefaultSuperConstructorImplicit_superHasParameters', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_noDefaultSuperConstructorImplicit_superHasParameters); |
- }); |
- _ut.test('test_noDefaultSuperConstructorImplicit_superOnlyNamed', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_noDefaultSuperConstructorImplicit_superOnlyNamed); |
- }); |
- _ut.test('test_nonConstCaseExpression', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstCaseExpression); |
- }); |
- _ut.test('test_nonConstListElement', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstListElement); |
- }); |
- _ut.test('test_nonConstMapAsExpressionStatement_begin', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstMapAsExpressionStatement_begin); |
- }); |
- _ut.test('test_nonConstMapAsExpressionStatement_only', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstMapAsExpressionStatement_only); |
- }); |
- _ut.test('test_nonConstMapKey', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstMapKey); |
- }); |
- _ut.test('test_nonConstMapValue', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstMapValue); |
- }); |
- _ut.test('test_nonConstValueInInitializer_binary_notBool_left', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_binary_notBool_left); |
- }); |
- _ut.test('test_nonConstValueInInitializer_binary_notBool_right', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_binary_notBool_right); |
- }); |
- _ut.test('test_nonConstValueInInitializer_binary_notInt', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_binary_notInt); |
- }); |
- _ut.test('test_nonConstValueInInitializer_binary_notNum', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_binary_notNum); |
- }); |
- _ut.test('test_nonConstValueInInitializer_field', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_field); |
- }); |
- _ut.test('test_nonConstValueInInitializer_redirecting', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_redirecting); |
- }); |
- _ut.test('test_nonConstValueInInitializer_super', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstValueInInitializer_super); |
- }); |
- _ut.test('test_nonConstantAnnotationConstructor_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstantAnnotationConstructor_named); |
- }); |
- _ut.test('test_nonConstantAnnotationConstructor_unnamed', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstantAnnotationConstructor_unnamed); |
- }); |
- _ut.test('test_nonConstantDefaultValue_function_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_function_named); |
- }); |
- _ut.test('test_nonConstantDefaultValue_function_positional', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_function_positional); |
- }); |
- _ut.test('test_nonConstantDefaultValue_inConstructor_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_inConstructor_named); |
- }); |
- _ut.test('test_nonConstantDefaultValue_inConstructor_positional', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_inConstructor_positional); |
- }); |
- _ut.test('test_nonConstantDefaultValue_method_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_method_named); |
- }); |
- _ut.test('test_nonConstantDefaultValue_method_positional', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonConstantDefaultValue_method_positional); |
- }); |
- _ut.test('test_nonGenerativeConstructor_explicit', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonGenerativeConstructor_explicit); |
- }); |
- _ut.test('test_nonGenerativeConstructor_implicit', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonGenerativeConstructor_implicit); |
- }); |
- _ut.test('test_nonGenerativeConstructor_implicit2', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_nonGenerativeConstructor_implicit2); |
- }); |
- _ut.test('test_notEnoughRequiredArguments_const', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_notEnoughRequiredArguments_const); |
- }); |
- _ut.test('test_notEnoughRequiredArguments_const_super', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_notEnoughRequiredArguments_const_super); |
- }); |
- _ut.test('test_optionalParameterInOperator_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_optionalParameterInOperator_named); |
- }); |
- _ut.test('test_optionalParameterInOperator_positional', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_optionalParameterInOperator_positional); |
- }); |
- _ut.test('test_partOfNonPart', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_partOfNonPart); |
- }); |
- _ut.test('test_prefixCollidesWithTopLevelMembers_functionTypeAlias', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_prefixCollidesWithTopLevelMembers_functionTypeAlias); |
- }); |
- _ut.test('test_prefixCollidesWithTopLevelMembers_topLevelFunction', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_prefixCollidesWithTopLevelMembers_topLevelFunction); |
- }); |
- _ut.test('test_prefixCollidesWithTopLevelMembers_topLevelVariable', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_prefixCollidesWithTopLevelMembers_topLevelVariable); |
- }); |
- _ut.test('test_prefixCollidesWithTopLevelMembers_type', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_prefixCollidesWithTopLevelMembers_type); |
- }); |
- _ut.test('test_privateOptionalParameter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_privateOptionalParameter); |
- }); |
- _ut.test('test_privateOptionalParameter_fieldFormal', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_privateOptionalParameter_fieldFormal); |
- }); |
- _ut.test('test_privateOptionalParameter_withDefaultValue', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_privateOptionalParameter_withDefaultValue); |
- }); |
- _ut.test('test_recursiveConstructorRedirect', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveConstructorRedirect); |
- }); |
- _ut.test('test_recursiveConstructorRedirect_directSelfReference', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveConstructorRedirect_directSelfReference); |
- }); |
- _ut.test('test_recursiveFactoryRedirect', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveFactoryRedirect); |
- }); |
- _ut.test('test_recursiveFactoryRedirect_directSelfReference', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveFactoryRedirect_directSelfReference); |
- }); |
- _ut.test('test_recursiveFactoryRedirect_generic', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveFactoryRedirect_generic); |
- }); |
- _ut.test('test_recursiveFactoryRedirect_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveFactoryRedirect_named); |
- }); |
- _ut.test('test_recursiveFactoryRedirect_outsideCycle', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveFactoryRedirect_outsideCycle); |
- }); |
- _ut.test('test_recursiveInterfaceInheritanceBaseCaseExtends', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveInterfaceInheritanceBaseCaseExtends); |
- }); |
- _ut.test('test_recursiveInterfaceInheritanceBaseCaseImplements', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveInterfaceInheritanceBaseCaseImplements); |
- }); |
- _ut.test('test_recursiveInterfaceInheritanceBaseCaseImplements_typeAlias', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveInterfaceInheritanceBaseCaseImplements_typeAlias); |
- }); |
- _ut.test('test_recursiveInterfaceInheritance_extends', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveInterfaceInheritance_extends); |
- }); |
- _ut.test('test_recursiveInterfaceInheritance_extends_implements', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveInterfaceInheritance_extends_implements); |
- }); |
- _ut.test('test_recursiveInterfaceInheritance_implements', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveInterfaceInheritance_implements); |
- }); |
- _ut.test('test_recursiveInterfaceInheritance_tail', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveInterfaceInheritance_tail); |
- }); |
- _ut.test('test_recursiveInterfaceInheritance_tail2', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveInterfaceInheritance_tail2); |
- }); |
- _ut.test('test_recursiveInterfaceInheritance_tail3', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_recursiveInterfaceInheritance_tail3); |
- }); |
- _ut.test('test_redirectToNonConstConstructor', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_redirectToNonConstConstructor); |
- }); |
- _ut.test('test_referenceToDeclaredVariableInInitializer_closure', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_referenceToDeclaredVariableInInitializer_closure); |
- }); |
- _ut.test('test_referenceToDeclaredVariableInInitializer_getter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_referenceToDeclaredVariableInInitializer_getter); |
- }); |
- _ut.test('test_referenceToDeclaredVariableInInitializer_setter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_referenceToDeclaredVariableInInitializer_setter); |
- }); |
- _ut.test('test_referenceToDeclaredVariableInInitializer_unqualifiedInvocation', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_referenceToDeclaredVariableInInitializer_unqualifiedInvocation); |
- }); |
- _ut.test('test_referencedBeforeDeclaration_hideInBlock_function', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_referencedBeforeDeclaration_hideInBlock_function); |
- }); |
- _ut.test('test_referencedBeforeDeclaration_hideInBlock_local', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_referencedBeforeDeclaration_hideInBlock_local); |
- }); |
- _ut.test('test_referencedBeforeDeclaration_hideInBlock_subBlock', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_referencedBeforeDeclaration_hideInBlock_subBlock); |
- }); |
- _ut.test('test_rethrowOutsideCatch', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_rethrowOutsideCatch); |
- }); |
- _ut.test('test_returnInGenerativeConstructor', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_returnInGenerativeConstructor); |
- }); |
- _ut.test('test_returnInGenerativeConstructor_expressionFunctionBody', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_returnInGenerativeConstructor_expressionFunctionBody); |
- }); |
- _ut.test('test_superInInvalidContext_binaryExpression', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_superInInvalidContext_binaryExpression); |
- }); |
- _ut.test('test_superInInvalidContext_constructorFieldInitializer', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_superInInvalidContext_constructorFieldInitializer); |
- }); |
- _ut.test('test_superInInvalidContext_factoryConstructor', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_superInInvalidContext_factoryConstructor); |
- }); |
- _ut.test('test_superInInvalidContext_instanceVariableInitializer', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_superInInvalidContext_instanceVariableInitializer); |
- }); |
- _ut.test('test_superInInvalidContext_staticMethod', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_superInInvalidContext_staticMethod); |
- }); |
- _ut.test('test_superInInvalidContext_staticVariableInitializer', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_superInInvalidContext_staticVariableInitializer); |
- }); |
- _ut.test('test_superInInvalidContext_topLevelFunction', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_superInInvalidContext_topLevelFunction); |
- }); |
- _ut.test('test_superInInvalidContext_topLevelVariableInitializer', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_superInInvalidContext_topLevelVariableInitializer); |
- }); |
- _ut.test('test_superInRedirectingConstructor_redirectionSuper', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_superInRedirectingConstructor_redirectionSuper); |
- }); |
- _ut.test('test_superInRedirectingConstructor_superRedirection', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_superInRedirectingConstructor_superRedirection); |
- }); |
- _ut.test('test_typeAliasCannotReferenceItself_parameterType_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_typeAliasCannotReferenceItself_parameterType_named); |
- }); |
- _ut.test('test_typeAliasCannotReferenceItself_parameterType_positional', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_typeAliasCannotReferenceItself_parameterType_positional); |
- }); |
- _ut.test('test_typeAliasCannotReferenceItself_parameterType_required', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_typeAliasCannotReferenceItself_parameterType_required); |
- }); |
- _ut.test('test_typeAliasCannotReferenceItself_parameterType_typeArgument', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_typeAliasCannotReferenceItself_parameterType_typeArgument); |
- }); |
- _ut.test('test_typeAliasCannotReferenceItself_returnClass_withTypeAlias', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_typeAliasCannotReferenceItself_returnClass_withTypeAlias); |
- }); |
- _ut.test('test_typeAliasCannotReferenceItself_returnType', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_typeAliasCannotReferenceItself_returnType); |
- }); |
- _ut.test('test_typeAliasCannotReferenceItself_returnType_indirect', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_typeAliasCannotReferenceItself_returnType_indirect); |
- }); |
- _ut.test('test_typeAliasCannotReferenceItself_typeVariableBounds', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_typeAliasCannotReferenceItself_typeVariableBounds); |
- }); |
- _ut.test('test_typeAliasCannotRereferenceItself_mixin_direct', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_typeAliasCannotRereferenceItself_mixin_direct); |
- }); |
- _ut.test('test_typeAliasCannotRereferenceItself_mixin_indirect', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_typeAliasCannotRereferenceItself_mixin_indirect); |
- }); |
- _ut.test('test_typeArgumentNotMatchingBounds_const', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_typeArgumentNotMatchingBounds_const); |
- }); |
- _ut.test('test_undefinedClass_const', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedClass_const); |
- }); |
- _ut.test('test_undefinedConstructorInInitializer_explicit_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_explicit_named); |
- }); |
- _ut.test('test_undefinedConstructorInInitializer_explicit_unnamed', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_explicit_unnamed); |
- }); |
- _ut.test('test_undefinedConstructorInInitializer_implicit', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_implicit); |
- }); |
- _ut.test('test_undefinedFunction', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedFunction); |
- }); |
- _ut.test('test_undefinedFunction_hasImportPrefix', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedFunction_hasImportPrefix); |
- }); |
- _ut.test('test_undefinedFunction_inCatch', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedFunction_inCatch); |
- }); |
- _ut.test('test_undefinedNamedParameter', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedNamedParameter); |
- }); |
- _ut.test('test_uriDoesNotExist_export', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_uriDoesNotExist_export); |
- }); |
- _ut.test('test_uriDoesNotExist_import', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_uriDoesNotExist_import); |
- }); |
- _ut.test('test_uriDoesNotExist_part', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_uriDoesNotExist_part); |
- }); |
- _ut.test('test_uriWithInterpolation_constant', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_uriWithInterpolation_constant); |
- }); |
- _ut.test('test_uriWithInterpolation_nonConstant', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_uriWithInterpolation_nonConstant); |
- }); |
- _ut.test('test_wrongNumberOfParametersForOperator1', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForOperator1); |
- }); |
- _ut.test('test_wrongNumberOfParametersForOperator_minus', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForOperator_minus); |
- }); |
- _ut.test('test_wrongNumberOfParametersForOperator_tilde', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForOperator_tilde); |
- }); |
- _ut.test('test_wrongNumberOfParametersForSetter_function_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForSetter_function_named); |
- }); |
- _ut.test('test_wrongNumberOfParametersForSetter_function_optional', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForSetter_function_optional); |
- }); |
- _ut.test('test_wrongNumberOfParametersForSetter_function_tooFew', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForSetter_function_tooFew); |
- }); |
- _ut.test('test_wrongNumberOfParametersForSetter_function_tooMany', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForSetter_function_tooMany); |
- }); |
- _ut.test('test_wrongNumberOfParametersForSetter_method_named', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForSetter_method_named); |
- }); |
- _ut.test('test_wrongNumberOfParametersForSetter_method_optional', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForSetter_method_optional); |
- }); |
- _ut.test('test_wrongNumberOfParametersForSetter_method_tooFew', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForSetter_method_tooFew); |
- }); |
- _ut.test('test_wrongNumberOfParametersForSetter_method_tooMany', () { |
- final __test = new CompileTimeErrorCodeTest(); |
- runJUnitTest(__test, __test.test_wrongNumberOfParametersForSetter_method_tooMany); |
- }); |
- }); |
- } |
-} |
-/** |
- * Instances of the class `StaticTypeVerifier` verify that all of the nodes in an AST |
- * structure that should have a static type associated with them do have a static type. |
- */ |
-class StaticTypeVerifier extends GeneralizingASTVisitor<Object> { |
- |
- /** |
- * A list containing all of the AST Expression nodes that were not resolved. |
- */ |
- List<Expression> _unresolvedExpressions = new List<Expression>(); |
- |
- /** |
- * A list containing all of the AST Expression nodes for which a propagated type was computed but |
- * where that type was not more specific than the static type. |
- */ |
- List<Expression> _invalidlyPropagatedExpressions = new List<Expression>(); |
- |
- /** |
- * A list containing all of the AST TypeName nodes that were not resolved. |
- */ |
- List<TypeName> _unresolvedTypes = new List<TypeName>(); |
- |
- /** |
- * Counter for the number of Expression nodes visited that are resolved. |
- */ |
- int _resolvedExpressionCount = 0; |
- |
- /** |
- * Counter for the number of Expression nodes visited that have propagated type information. |
- */ |
- int _propagatedExpressionCount = 0; |
- |
- /** |
- * Counter for the number of TypeName nodes visited that are resolved. |
- */ |
- int _resolvedTypeCount = 0; |
- |
- /** |
- * Assert that all of the visited nodes have a static type associated with them. |
- */ |
- void assertResolved() { |
- if (!_unresolvedExpressions.isEmpty || !_unresolvedTypes.isEmpty) { |
- PrintStringWriter writer = new PrintStringWriter(); |
- int unresolvedTypeCount = _unresolvedTypes.length; |
- if (unresolvedTypeCount > 0) { |
- writer.print("Failed to resolve "); |
- writer.print(unresolvedTypeCount); |
- writer.print(" of "); |
- writer.print(_resolvedTypeCount + unresolvedTypeCount); |
- writer.println(" type names:"); |
- for (TypeName identifier in _unresolvedTypes) { |
- writer.print(" "); |
- writer.print(identifier.toString()); |
- writer.print(" ("); |
- writer.print(getFileName(identifier)); |
- writer.print(" : "); |
- writer.print(identifier.offset); |
- writer.println(")"); |
- } |
- } |
- int unresolvedExpressionCount = _unresolvedExpressions.length; |
- if (unresolvedExpressionCount > 0) { |
- writer.println("Failed to resolve "); |
- writer.print(unresolvedExpressionCount); |
- writer.print(" of "); |
- writer.print(_resolvedExpressionCount + unresolvedExpressionCount); |
- writer.println(" expressions:"); |
- for (Expression expression in _unresolvedExpressions) { |
- writer.print(" "); |
- writer.print(expression.toString()); |
- writer.print(" ("); |
- writer.print(getFileName(expression)); |
- writer.print(" : "); |
- writer.print(expression.offset); |
- writer.println(")"); |
- } |
- } |
- int invalidlyPropagatedExpressionCount = _invalidlyPropagatedExpressions.length; |
- if (invalidlyPropagatedExpressionCount > 0) { |
- writer.println("Incorrectly propagated "); |
- writer.print(invalidlyPropagatedExpressionCount); |
- writer.print(" of "); |
- writer.print(_propagatedExpressionCount); |
- writer.println(" expressions:"); |
- for (Expression expression in _invalidlyPropagatedExpressions) { |
- writer.print(" "); |
- writer.print(expression.toString()); |
- writer.print(" ["); |
- writer.print(expression.staticType.displayName); |
- writer.print(", "); |
- writer.print(expression.propagatedType.displayName); |
- writer.println("]"); |
- writer.print(" "); |
- writer.print(getFileName(expression)); |
- writer.print(" : "); |
- writer.print(expression.offset); |
- writer.println(")"); |
- } |
- } |
- JUnitTestCase.fail(writer.toString()); |
- } |
- } |
- Object visitBreakStatement(BreakStatement node) => null; |
- Object visitCommentReference(CommentReference node) => null; |
- Object visitContinueStatement(ContinueStatement node) => null; |
- Object visitExportDirective(ExportDirective node) => null; |
- Object visitExpression(Expression node) { |
- node.visitChildren(this); |
- Type2 staticType = node.staticType; |
- if (staticType == null) { |
- _unresolvedExpressions.add(node); |
- } else { |
- _resolvedExpressionCount++; |
- Type2 propagatedType = node.propagatedType; |
- if (propagatedType != null) { |
- _propagatedExpressionCount++; |
- if (!propagatedType.isMoreSpecificThan(staticType)) { |
- _invalidlyPropagatedExpressions.add(node); |
- } |
- } |
- } |
- return null; |
- } |
- Object visitImportDirective(ImportDirective node) => null; |
- Object visitLabel(Label node) => null; |
- Object visitLibraryIdentifier(LibraryIdentifier node) => null; |
- Object visitPrefixedIdentifier(PrefixedIdentifier node) { |
- if (node.staticType == null && identical(node.prefix.staticType, DynamicTypeImpl.instance)) { |
- return null; |
- } |
- return super.visitPrefixedIdentifier(node); |
- } |
- Object visitSimpleIdentifier(SimpleIdentifier node) { |
- ASTNode parent = node.parent; |
- if (parent is MethodInvocation && identical(node, ((parent as MethodInvocation)).methodName)) { |
- return null; |
- } else if (parent is RedirectingConstructorInvocation && identical(node, ((parent as RedirectingConstructorInvocation)).constructorName)) { |
- return null; |
- } else if (parent is SuperConstructorInvocation && identical(node, ((parent as SuperConstructorInvocation)).constructorName)) { |
- return null; |
- } else if (parent is ConstructorName && identical(node, ((parent as ConstructorName)).name)) { |
- return null; |
- } else if (parent is ConstructorFieldInitializer && identical(node, ((parent as ConstructorFieldInitializer)).fieldName)) { |
- return null; |
- } else if (node.staticElement is PrefixElement) { |
- return null; |
- } |
- return super.visitSimpleIdentifier(node); |
- } |
- Object visitTypeName(TypeName node) { |
- if (node.type == null) { |
- _unresolvedTypes.add(node); |
- } else { |
- _resolvedTypeCount++; |
- } |
- return null; |
- } |
- String getFileName(ASTNode node) { |
- if (node != null) { |
- ASTNode root = node.root; |
- if (root is CompilationUnit) { |
- CompilationUnit rootCU = root as CompilationUnit; |
- if (rootCU.element != null) { |
- return rootCU.element.source.fullName; |
- } else { |
- return "<unknown file- CompilationUnit.getElement() returned null>"; |
- } |
- } else { |
- return "<unknown file- CompilationUnit.getRoot() is not a CompilationUnit>"; |
- } |
- } |
- return "<unknown file- ASTNode is null>"; |
- } |
-} |
-/** |
- * The class `StrictModeTest` contains tests to ensure that the correct errors and warnings |
- * are reported when the analysis engine is run in strict mode. |
- */ |
-class StrictModeTest extends ResolverTestCase { |
- void fail_for() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(List<int> list) {", |
- " num sum = 0;", |
- " for (num i = 0; i < list.length; i++) {", |
- " sum += list[i];", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void setUp() { |
- super.setUp(); |
- AnalysisOptionsImpl options = new AnalysisOptionsImpl(); |
- options.strictMode = true; |
- options.hint = false; |
- analysisContext.analysisOptions = options; |
- } |
- void test_assert_is() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(num n) {", |
- " assert (n is int);", |
- " return n & 0x0F;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_conditional_and_is() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(num n) {", |
- " return (n is int && n > 0) ? n & 0x0F : 0;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_conditional_is() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(num n) {", |
- " return (n is int) ? n & 0x0F : 0;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_conditional_isNot() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(num n) {", |
- " return (n is! int) ? 0 : n & 0x0F;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_conditional_or_is() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(num n) {", |
- " return (n is! int || n < 0) ? 0 : n & 0x0F;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_forEach() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(List<int> list) {", |
- " num sum = 0;", |
- " for (num n in list) {", |
- " sum += n & 0x0F;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_if_and_is() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(num n) {", |
- " if (n is int && n > 0) {", |
- " return n & 0x0F;", |
- " }", |
- " return 0;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_if_is() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(num n) {", |
- " if (n is int) {", |
- " return n & 0x0F;", |
- " }", |
- " return 0;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_if_isNot() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(num n) {", |
- " if (n is! int) {", |
- " return 0;", |
- " } else {", |
- " return n & 0x0F;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_if_isNot_abrupt() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(num n) {", |
- " if (n is! int) {", |
- " return 0;", |
- " }", |
- " return n & 0x0F;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_if_or_is() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "int f(num n) {", |
- " if (n is! int || n < 0) {", |
- " return 0;", |
- " } else {", |
- " return n & 0x0F;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- void test_localVar() { |
- Source source = addSource(EngineTestCase.createSource(["int f() {", " num n = 1234;", " return n & 0x0F;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
- } |
- static dartSuite() { |
- _ut.group('StrictModeTest', () { |
- _ut.test('test_assert_is', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_assert_is); |
- }); |
- _ut.test('test_conditional_and_is', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_conditional_and_is); |
- }); |
- _ut.test('test_conditional_is', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_conditional_is); |
- }); |
- _ut.test('test_conditional_isNot', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_conditional_isNot); |
- }); |
- _ut.test('test_conditional_or_is', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_conditional_or_is); |
- }); |
- _ut.test('test_forEach', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_forEach); |
- }); |
- _ut.test('test_if_and_is', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_if_and_is); |
- }); |
- _ut.test('test_if_is', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_if_is); |
- }); |
- _ut.test('test_if_isNot', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_if_isNot); |
- }); |
- _ut.test('test_if_isNot_abrupt', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_if_isNot_abrupt); |
- }); |
- _ut.test('test_if_or_is', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_if_or_is); |
- }); |
- _ut.test('test_localVar', () { |
- final __test = new StrictModeTest(); |
- runJUnitTest(__test, __test.test_localVar); |
- }); |
- }); |
- } |
-} |
-class ElementResolverTest extends EngineTestCase { |
- |
- /** |
- * The error listener to which errors will be reported. |
- */ |
- GatheringErrorListener _listener; |
- |
- /** |
- * The type provider used to access the types. |
- */ |
- TestTypeProvider _typeProvider; |
- |
- /** |
- * The library containing the code being resolved. |
- */ |
- LibraryElementImpl _definingLibrary; |
- |
- /** |
- * The resolver visitor that maintains the state for the resolver. |
- */ |
- ResolverVisitor _visitor; |
- |
- /** |
- * The resolver being used to resolve the test cases. |
- */ |
- ElementResolver _resolver; |
- void fail_visitExportDirective_combinators() { |
- JUnitTestCase.fail("Not yet tested"); |
- ExportDirective directive = ASTFactory.exportDirective2(null, [ASTFactory.hideCombinator2(["A"])]); |
- resolveNode(directive, []); |
- _listener.assertNoErrors(); |
- } |
- void fail_visitFunctionExpressionInvocation() { |
- JUnitTestCase.fail("Not yet tested"); |
- _listener.assertNoErrors(); |
- } |
- void fail_visitImportDirective_combinators_noPrefix() { |
- JUnitTestCase.fail("Not yet tested"); |
- ImportDirective directive = ASTFactory.importDirective2(null, null, [ASTFactory.showCombinator2(["A"])]); |
- resolveNode(directive, []); |
- _listener.assertNoErrors(); |
- } |
- void fail_visitImportDirective_combinators_prefix() { |
- JUnitTestCase.fail("Not yet tested"); |
- String prefixName = "p"; |
- _definingLibrary.imports = <ImportElement> [ElementFactory.importFor(null, ElementFactory.prefix(prefixName), [])]; |
- ImportDirective directive = ASTFactory.importDirective2(null, prefixName, [ |
- ASTFactory.showCombinator2(["A"]), |
- ASTFactory.hideCombinator2(["B"])]); |
- resolveNode(directive, []); |
- _listener.assertNoErrors(); |
- } |
- void fail_visitRedirectingConstructorInvocation() { |
- JUnitTestCase.fail("Not yet tested"); |
- _listener.assertNoErrors(); |
- } |
- void setUp() { |
- _listener = new GatheringErrorListener(); |
- _typeProvider = new TestTypeProvider(); |
- _resolver = createResolver(); |
- } |
- void test_lookUpMethodInInterfaces() { |
- InterfaceType intType = _typeProvider.intType; |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- MethodElement operator = ElementFactory.methodElement("[]", intType, [intType]); |
- classA.methods = <MethodElement> [operator]; |
- ClassElementImpl classB = ElementFactory.classElement2("B", []); |
- classB.interfaces = <InterfaceType> [classA.type]; |
- ClassElementImpl classC = ElementFactory.classElement2("C", []); |
- classC.mixins = <InterfaceType> [classB.type]; |
- ClassElementImpl classD = ElementFactory.classElement("D", classC.type, []); |
- SimpleIdentifier array = ASTFactory.identifier3("a"); |
- array.staticType = classD.type; |
- IndexExpression expression = ASTFactory.indexExpression(array, ASTFactory.identifier3("i")); |
- JUnitTestCase.assertSame(operator, resolve5(expression, [])); |
- _listener.assertNoErrors(); |
- } |
- void test_visitAssignmentExpression_compound() { |
- InterfaceType intType = _typeProvider.intType; |
- SimpleIdentifier leftHandSide = ASTFactory.identifier3("a"); |
- leftHandSide.staticType = intType; |
- AssignmentExpression assignment = ASTFactory.assignmentExpression(leftHandSide, TokenType.PLUS_EQ, ASTFactory.integer(1)); |
- resolveNode(assignment, []); |
- JUnitTestCase.assertSame(getMethod(_typeProvider.numType, "+"), assignment.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitAssignmentExpression_simple() { |
- AssignmentExpression expression = ASTFactory.assignmentExpression(ASTFactory.identifier3("x"), TokenType.EQ, ASTFactory.integer(0)); |
- resolveNode(expression, []); |
- JUnitTestCase.assertNull(expression.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBinaryExpression() { |
- InterfaceType numType = _typeProvider.numType; |
- SimpleIdentifier left = ASTFactory.identifier3("i"); |
- left.staticType = numType; |
- BinaryExpression expression = ASTFactory.binaryExpression(left, TokenType.PLUS, ASTFactory.identifier3("j")); |
- resolveNode(expression, []); |
- JUnitTestCase.assertEquals(getMethod(numType, "+"), expression.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBreakStatement_withLabel() { |
- String label = "loop"; |
- LabelElementImpl labelElement = new LabelElementImpl(ASTFactory.identifier3(label), false, false); |
- BreakStatement statement = ASTFactory.breakStatement2(label); |
- JUnitTestCase.assertSame(labelElement, resolve(statement, labelElement)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBreakStatement_withoutLabel() { |
- BreakStatement statement = ASTFactory.breakStatement(); |
- resolveStatement(statement, null); |
- _listener.assertNoErrors(); |
- } |
- void test_visitConstructorName_named() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String constructorName = "a"; |
- ConstructorElement constructor = ElementFactory.constructorElement(classA, constructorName); |
- classA.constructors = <ConstructorElement> [constructor]; |
- ConstructorName name = ASTFactory.constructorName(ASTFactory.typeName(classA, []), constructorName); |
- resolveNode(name, []); |
- JUnitTestCase.assertSame(constructor, name.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitConstructorName_unnamed() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String constructorName = null; |
- ConstructorElement constructor = ElementFactory.constructorElement(classA, constructorName); |
- classA.constructors = <ConstructorElement> [constructor]; |
- ConstructorName name = ASTFactory.constructorName(ASTFactory.typeName(classA, []), constructorName); |
- resolveNode(name, []); |
- JUnitTestCase.assertSame(constructor, name.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitContinueStatement_withLabel() { |
- String label = "loop"; |
- LabelElementImpl labelElement = new LabelElementImpl(ASTFactory.identifier3(label), false, false); |
- ContinueStatement statement = ASTFactory.continueStatement2(label); |
- JUnitTestCase.assertSame(labelElement, resolve3(statement, labelElement)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitContinueStatement_withoutLabel() { |
- ContinueStatement statement = ASTFactory.continueStatement(); |
- resolveStatement(statement, null); |
- _listener.assertNoErrors(); |
- } |
- void test_visitExportDirective_noCombinators() { |
- ExportDirective directive = ASTFactory.exportDirective2(null, []); |
- directive.element = ElementFactory.exportFor(ElementFactory.library(_definingLibrary.context, "lib"), []); |
- resolveNode(directive, []); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFieldFormalParameter() { |
- InterfaceType intType = _typeProvider.intType; |
- String fieldName = "f"; |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- classA.fields = <FieldElement> [ElementFactory.fieldElement(fieldName, false, false, false, intType)]; |
- FieldFormalParameter parameter = ASTFactory.fieldFormalParameter3(fieldName); |
- parameter.identifier.staticElement = ElementFactory.fieldFormalParameter(parameter.identifier); |
- resolveInClass(parameter, classA); |
- JUnitTestCase.assertSame(intType, parameter.element.type); |
- } |
- void test_visitImportDirective_noCombinators_noPrefix() { |
- ImportDirective directive = ASTFactory.importDirective2(null, null, []); |
- directive.element = ElementFactory.importFor(ElementFactory.library(_definingLibrary.context, "lib"), null, []); |
- resolveNode(directive, []); |
- _listener.assertNoErrors(); |
- } |
- void test_visitImportDirective_noCombinators_prefix() { |
- String prefixName = "p"; |
- ImportElement importElement = ElementFactory.importFor(ElementFactory.library(_definingLibrary.context, "lib"), ElementFactory.prefix(prefixName), []); |
- _definingLibrary.imports = <ImportElement> [importElement]; |
- ImportDirective directive = ASTFactory.importDirective2(null, prefixName, []); |
- directive.element = importElement; |
- resolveNode(directive, []); |
- _listener.assertNoErrors(); |
- } |
- void test_visitIndexExpression_get() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- InterfaceType intType = _typeProvider.intType; |
- MethodElement getter = ElementFactory.methodElement("[]", intType, [intType]); |
- classA.methods = <MethodElement> [getter]; |
- SimpleIdentifier array = ASTFactory.identifier3("a"); |
- array.staticType = classA.type; |
- IndexExpression expression = ASTFactory.indexExpression(array, ASTFactory.identifier3("i")); |
- JUnitTestCase.assertSame(getter, resolve5(expression, [])); |
- _listener.assertNoErrors(); |
- } |
- void test_visitIndexExpression_set() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- InterfaceType intType = _typeProvider.intType; |
- MethodElement setter = ElementFactory.methodElement("[]=", intType, [intType]); |
- classA.methods = <MethodElement> [setter]; |
- SimpleIdentifier array = ASTFactory.identifier3("a"); |
- array.staticType = classA.type; |
- IndexExpression expression = ASTFactory.indexExpression(array, ASTFactory.identifier3("i")); |
- ASTFactory.assignmentExpression(expression, TokenType.EQ, ASTFactory.integer(0)); |
- JUnitTestCase.assertSame(setter, resolve5(expression, [])); |
- _listener.assertNoErrors(); |
- } |
- void test_visitInstanceCreationExpression_named() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String constructorName = "a"; |
- ConstructorElement constructor = ElementFactory.constructorElement(classA, constructorName); |
- classA.constructors = <ConstructorElement> [constructor]; |
- ConstructorName name = ASTFactory.constructorName(ASTFactory.typeName(classA, []), constructorName); |
- name.staticElement = constructor; |
- InstanceCreationExpression creation = ASTFactory.instanceCreationExpression(Keyword.NEW, name, []); |
- resolveNode(creation, []); |
- JUnitTestCase.assertSame(constructor, creation.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitInstanceCreationExpression_unnamed() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String constructorName = null; |
- ConstructorElement constructor = ElementFactory.constructorElement(classA, constructorName); |
- classA.constructors = <ConstructorElement> [constructor]; |
- ConstructorName name = ASTFactory.constructorName(ASTFactory.typeName(classA, []), constructorName); |
- name.staticElement = constructor; |
- InstanceCreationExpression creation = ASTFactory.instanceCreationExpression(Keyword.NEW, name, []); |
- resolveNode(creation, []); |
- JUnitTestCase.assertSame(constructor, creation.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitInstanceCreationExpression_unnamed_namedParameter() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String constructorName = null; |
- ConstructorElementImpl constructor = ElementFactory.constructorElement(classA, constructorName); |
- String parameterName = "a"; |
- ParameterElement parameter = ElementFactory.namedParameter(parameterName); |
- constructor.parameters = <ParameterElement> [parameter]; |
- classA.constructors = <ConstructorElement> [constructor]; |
- ConstructorName name = ASTFactory.constructorName(ASTFactory.typeName(classA, []), constructorName); |
- name.staticElement = constructor; |
- InstanceCreationExpression creation = ASTFactory.instanceCreationExpression(Keyword.NEW, name, [ASTFactory.namedExpression2(parameterName, ASTFactory.integer(0))]); |
- resolveNode(creation, []); |
- JUnitTestCase.assertSame(constructor, creation.staticElement); |
- JUnitTestCase.assertSame(parameter, ((creation.argumentList.arguments[0] as NamedExpression)).name.label.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitMethodInvocation() { |
- InterfaceType numType = _typeProvider.numType; |
- SimpleIdentifier left = ASTFactory.identifier3("i"); |
- left.staticType = numType; |
- String methodName = "abs"; |
- MethodInvocation invocation = ASTFactory.methodInvocation(left, methodName, []); |
- resolveNode(invocation, []); |
- JUnitTestCase.assertSame(getMethod(numType, methodName), invocation.methodName.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitMethodInvocation_namedParameter() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String methodName = "m"; |
- String parameterName = "p"; |
- MethodElementImpl method = ElementFactory.methodElement(methodName, null, []); |
- ParameterElement parameter = ElementFactory.namedParameter(parameterName); |
- method.parameters = <ParameterElement> [parameter]; |
- classA.methods = <MethodElement> [method]; |
- SimpleIdentifier left = ASTFactory.identifier3("i"); |
- left.staticType = classA.type; |
- MethodInvocation invocation = ASTFactory.methodInvocation(left, methodName, [ASTFactory.namedExpression2(parameterName, ASTFactory.integer(0))]); |
- resolveNode(invocation, []); |
- JUnitTestCase.assertSame(method, invocation.methodName.staticElement); |
- JUnitTestCase.assertSame(parameter, ((invocation.argumentList.arguments[0] as NamedExpression)).name.label.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPostfixExpression() { |
- InterfaceType numType = _typeProvider.numType; |
- SimpleIdentifier operand = ASTFactory.identifier3("i"); |
- operand.staticType = numType; |
- PostfixExpression expression = ASTFactory.postfixExpression(operand, TokenType.PLUS_PLUS); |
- resolveNode(expression, []); |
- JUnitTestCase.assertEquals(getMethod(numType, "+"), expression.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixedIdentifier_dynamic() { |
- Type2 dynamicType = _typeProvider.dynamicType; |
- SimpleIdentifier target = ASTFactory.identifier3("a"); |
- VariableElementImpl variable = ElementFactory.localVariableElement(target); |
- variable.type = dynamicType; |
- target.staticElement = variable; |
- target.staticType = dynamicType; |
- PrefixedIdentifier identifier = ASTFactory.identifier(target, ASTFactory.identifier3("b")); |
- resolveNode(identifier, []); |
- JUnitTestCase.assertNull(identifier.staticElement); |
- JUnitTestCase.assertNull(identifier.identifier.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixedIdentifier_nonDynamic() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "b"; |
- PropertyAccessorElement getter = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getter]; |
- SimpleIdentifier target = ASTFactory.identifier3("a"); |
- VariableElementImpl variable = ElementFactory.localVariableElement(target); |
- variable.type = classA.type; |
- target.staticElement = variable; |
- target.staticType = classA.type; |
- PrefixedIdentifier identifier = ASTFactory.identifier(target, ASTFactory.identifier3(getterName)); |
- resolveNode(identifier, []); |
- JUnitTestCase.assertSame(getter, identifier.staticElement); |
- JUnitTestCase.assertSame(getter, identifier.identifier.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixExpression() { |
- InterfaceType numType = _typeProvider.numType; |
- SimpleIdentifier operand = ASTFactory.identifier3("i"); |
- operand.staticType = numType; |
- PrefixExpression expression = ASTFactory.prefixExpression(TokenType.PLUS_PLUS, operand); |
- resolveNode(expression, []); |
- JUnitTestCase.assertEquals(getMethod(numType, "+"), expression.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPropertyAccess_getter_identifier() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "b"; |
- PropertyAccessorElement getter = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getter]; |
- SimpleIdentifier target = ASTFactory.identifier3("a"); |
- target.staticType = classA.type; |
- PropertyAccess access = ASTFactory.propertyAccess2(target, getterName); |
- resolveNode(access, []); |
- JUnitTestCase.assertSame(getter, access.propertyName.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPropertyAccess_getter_super() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String getterName = "b"; |
- PropertyAccessorElement getter = ElementFactory.getterElement(getterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [getter]; |
- SuperExpression target = ASTFactory.superExpression(); |
- target.staticType = ElementFactory.classElement("B", classA.type, []).type; |
- PropertyAccess access = ASTFactory.propertyAccess2(target, getterName); |
- ASTFactory.methodDeclaration2(null, null, null, null, ASTFactory.identifier3("m"), ASTFactory.formalParameterList([]), ASTFactory.expressionFunctionBody(access)); |
- resolveNode(access, []); |
- JUnitTestCase.assertSame(getter, access.propertyName.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPropertyAccess_setter_this() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String setterName = "b"; |
- PropertyAccessorElement setter = ElementFactory.setterElement(setterName, false, _typeProvider.intType); |
- classA.accessors = <PropertyAccessorElement> [setter]; |
- ThisExpression target = ASTFactory.thisExpression(); |
- target.staticType = classA.type; |
- PropertyAccess access = ASTFactory.propertyAccess2(target, setterName); |
- ASTFactory.assignmentExpression(access, TokenType.EQ, ASTFactory.integer(0)); |
- resolveNode(access, []); |
- JUnitTestCase.assertSame(setter, access.propertyName.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitSimpleIdentifier_classScope() { |
- InterfaceType doubleType = _typeProvider.doubleType; |
- String fieldName = "NAN"; |
- SimpleIdentifier node = ASTFactory.identifier3(fieldName); |
- resolveInClass(node, doubleType.element); |
- JUnitTestCase.assertEquals(getGetter(doubleType, fieldName), node.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitSimpleIdentifier_dynamic() { |
- SimpleIdentifier node = ASTFactory.identifier3("dynamic"); |
- resolve4(node, []); |
- JUnitTestCase.assertSame(_typeProvider.dynamicType.element, node.staticElement); |
- JUnitTestCase.assertSame(_typeProvider.typeType, node.staticType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitSimpleIdentifier_lexicalScope() { |
- SimpleIdentifier node = ASTFactory.identifier3("i"); |
- VariableElementImpl element = ElementFactory.localVariableElement(node); |
- JUnitTestCase.assertSame(element, resolve4(node, [element])); |
- _listener.assertNoErrors(); |
- } |
- void test_visitSimpleIdentifier_lexicalScope_field_setter() { |
- InterfaceType intType = _typeProvider.intType; |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- String fieldName = "a"; |
- FieldElement field = ElementFactory.fieldElement(fieldName, false, false, false, intType); |
- classA.fields = <FieldElement> [field]; |
- classA.accessors = <PropertyAccessorElement> [field.getter, field.setter]; |
- SimpleIdentifier node = ASTFactory.identifier3(fieldName); |
- ASTFactory.assignmentExpression(node, TokenType.EQ, ASTFactory.integer(0)); |
- resolveInClass(node, classA); |
- Element element = node.staticElement; |
- EngineTestCase.assertInstanceOf(PropertyAccessorElement, element); |
- JUnitTestCase.assertTrue(((element as PropertyAccessorElement)).isSetter); |
- _listener.assertNoErrors(); |
- } |
- void test_visitSuperConstructorInvocation() { |
- ClassElementImpl superclass = ElementFactory.classElement2("A", []); |
- ConstructorElementImpl superConstructor = ElementFactory.constructorElement(superclass, null); |
- superclass.constructors = <ConstructorElement> [superConstructor]; |
- ClassElementImpl subclass = ElementFactory.classElement("B", superclass.type, []); |
- ConstructorElementImpl subConstructor = ElementFactory.constructorElement(subclass, null); |
- subclass.constructors = <ConstructorElement> [subConstructor]; |
- SuperConstructorInvocation invocation = ASTFactory.superConstructorInvocation([]); |
- resolveInClass(invocation, subclass); |
- JUnitTestCase.assertEquals(superConstructor, invocation.staticElement); |
- _listener.assertNoErrors(); |
- } |
- void test_visitSuperConstructorInvocation_namedParameter() { |
- ClassElementImpl superclass = ElementFactory.classElement2("A", []); |
- ConstructorElementImpl superConstructor = ElementFactory.constructorElement(superclass, null); |
- String parameterName = "p"; |
- ParameterElement parameter = ElementFactory.namedParameter(parameterName); |
- superConstructor.parameters = <ParameterElement> [parameter]; |
- superclass.constructors = <ConstructorElement> [superConstructor]; |
- ClassElementImpl subclass = ElementFactory.classElement("B", superclass.type, []); |
- ConstructorElementImpl subConstructor = ElementFactory.constructorElement(subclass, null); |
- subclass.constructors = <ConstructorElement> [subConstructor]; |
- SuperConstructorInvocation invocation = ASTFactory.superConstructorInvocation([ASTFactory.namedExpression2(parameterName, ASTFactory.integer(0))]); |
- resolveInClass(invocation, subclass); |
- JUnitTestCase.assertEquals(superConstructor, invocation.staticElement); |
- JUnitTestCase.assertSame(parameter, ((invocation.argumentList.arguments[0] as NamedExpression)).name.label.staticElement); |
- _listener.assertNoErrors(); |
- } |
- |
- /** |
- * Create the resolver used by the tests. |
- * |
- * @return the resolver that was created |
- */ |
- ElementResolver createResolver() { |
- AnalysisContextImpl context = new AnalysisContextImpl(); |
- ContentCache contentCache = new ContentCache(); |
- SourceFactory sourceFactory = new SourceFactory.con1(contentCache, [new DartUriResolver(DirectoryBasedDartSdk.defaultSdk)]); |
- context.sourceFactory = sourceFactory; |
- FileBasedSource source = new FileBasedSource.con1(contentCache, FileUtilities2.createFile("/test.dart")); |
- CompilationUnitElementImpl definingCompilationUnit = new CompilationUnitElementImpl("test.dart"); |
- definingCompilationUnit.source = source; |
- _definingLibrary = ElementFactory.library(context, "test"); |
- _definingLibrary.definingCompilationUnit = definingCompilationUnit; |
- Library library = new Library(context, _listener, source); |
- library.libraryElement = _definingLibrary; |
- _visitor = new ResolverVisitor.con1(library, source, _typeProvider); |
- try { |
- return _visitor.elementResolver_J2DAccessor as ElementResolver; |
- } on JavaException catch (exception) { |
- throw new IllegalArgumentException("Could not create resolver", exception); |
- } |
- } |
- |
- /** |
- * Return the element associated with the label of the given statement after the resolver has |
- * resolved the statement. |
- * |
- * @param statement the statement to be resolved |
- * @param labelElement the label element to be defined in the statement's label scope |
- * @return the element to which the statement's label was resolved |
- */ |
- Element resolve(BreakStatement statement, LabelElementImpl labelElement) { |
- resolveStatement(statement, labelElement); |
- return statement.label.staticElement; |
- } |
- |
- /** |
- * Return the element associated with the label of the given statement after the resolver has |
- * resolved the statement. |
- * |
- * @param statement the statement to be resolved |
- * @param labelElement the label element to be defined in the statement's label scope |
- * @return the element to which the statement's label was resolved |
- */ |
- Element resolve3(ContinueStatement statement, LabelElementImpl labelElement) { |
- resolveStatement(statement, labelElement); |
- return statement.label.staticElement; |
- } |
- |
- /** |
- * Return the element associated with the given identifier after the resolver has resolved the |
- * identifier. |
- * |
- * @param node the expression to be resolved |
- * @param definedElements the elements that are to be defined in the scope in which the element is |
- * being resolved |
- * @return the element to which the expression was resolved |
- */ |
- Element resolve4(Identifier node, List<Element> definedElements) { |
- resolveNode(node, definedElements); |
- return node.staticElement; |
- } |
- |
- /** |
- * Return the element associated with the given expression after the resolver has resolved the |
- * expression. |
- * |
- * @param node the expression to be resolved |
- * @param definedElements the elements that are to be defined in the scope in which the element is |
- * being resolved |
- * @return the element to which the expression was resolved |
- */ |
- Element resolve5(IndexExpression node, List<Element> definedElements) { |
- resolveNode(node, definedElements); |
- return node.staticElement; |
- } |
- |
- /** |
- * Return the element associated with the given identifier after the resolver has resolved the |
- * identifier. |
- * |
- * @param node the expression to be resolved |
- * @param enclosingClass the element representing the class enclosing the identifier |
- * @return the element to which the expression was resolved |
- */ |
- void resolveInClass(ASTNode node, ClassElement enclosingClass) { |
- try { |
- Scope outerScope = _visitor.nameScope_J2DAccessor as Scope; |
- try { |
- _visitor.enclosingClass_J2DAccessor = enclosingClass; |
- EnclosedScope innerScope = new ClassScope(outerScope, enclosingClass); |
- _visitor.nameScope_J2DAccessor = innerScope; |
- node.accept(_resolver); |
- } finally { |
- _visitor.enclosingClass_J2DAccessor = null; |
- _visitor.nameScope_J2DAccessor = outerScope; |
- } |
- } on JavaException catch (exception) { |
- throw new IllegalArgumentException("Could not resolve node", exception); |
- } |
- } |
- |
- /** |
- * Return the element associated with the given identifier after the resolver has resolved the |
- * identifier. |
- * |
- * @param node the expression to be resolved |
- * @param definedElements the elements that are to be defined in the scope in which the element is |
- * being resolved |
- * @return the element to which the expression was resolved |
- */ |
- void resolveNode(ASTNode node, List<Element> definedElements) { |
- try { |
- Scope outerScope = _visitor.nameScope_J2DAccessor as Scope; |
- try { |
- EnclosedScope innerScope = new EnclosedScope(outerScope); |
- for (Element element in definedElements) { |
- innerScope.define(element); |
- } |
- _visitor.nameScope_J2DAccessor = innerScope; |
- node.accept(_resolver); |
- } finally { |
- _visitor.nameScope_J2DAccessor = outerScope; |
- } |
- } on JavaException catch (exception) { |
- throw new IllegalArgumentException("Could not resolve node", exception); |
- } |
- } |
- |
- /** |
- * Return the element associated with the label of the given statement after the resolver has |
- * resolved the statement. |
- * |
- * @param statement the statement to be resolved |
- * @param labelElement the label element to be defined in the statement's label scope |
- * @return the element to which the statement's label was resolved |
- */ |
- void resolveStatement(Statement statement, LabelElementImpl labelElement) { |
- try { |
- LabelScope outerScope = _visitor.labelScope_J2DAccessor as LabelScope; |
- try { |
- LabelScope innerScope; |
- if (labelElement == null) { |
- innerScope = new LabelScope.con1(outerScope, false, false); |
- } else { |
- innerScope = new LabelScope.con2(outerScope, labelElement.name, labelElement); |
- } |
- _visitor.labelScope_J2DAccessor = innerScope; |
- statement.accept(_resolver); |
- } finally { |
- _visitor.labelScope_J2DAccessor = outerScope; |
- } |
- } on JavaException catch (exception) { |
- throw new IllegalArgumentException("Could not resolve node", exception); |
- } |
- } |
- static dartSuite() { |
- _ut.group('ElementResolverTest', () { |
- _ut.test('test_lookUpMethodInInterfaces', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_lookUpMethodInInterfaces); |
- }); |
- _ut.test('test_visitAssignmentExpression_compound', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitAssignmentExpression_compound); |
- }); |
- _ut.test('test_visitAssignmentExpression_simple', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitAssignmentExpression_simple); |
- }); |
- _ut.test('test_visitBinaryExpression', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitBinaryExpression); |
- }); |
- _ut.test('test_visitBreakStatement_withLabel', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitBreakStatement_withLabel); |
- }); |
- _ut.test('test_visitBreakStatement_withoutLabel', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitBreakStatement_withoutLabel); |
- }); |
- _ut.test('test_visitConstructorName_named', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitConstructorName_named); |
- }); |
- _ut.test('test_visitConstructorName_unnamed', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitConstructorName_unnamed); |
- }); |
- _ut.test('test_visitContinueStatement_withLabel', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitContinueStatement_withLabel); |
- }); |
- _ut.test('test_visitContinueStatement_withoutLabel', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitContinueStatement_withoutLabel); |
- }); |
- _ut.test('test_visitExportDirective_noCombinators', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitExportDirective_noCombinators); |
- }); |
- _ut.test('test_visitFieldFormalParameter', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitFieldFormalParameter); |
- }); |
- _ut.test('test_visitImportDirective_noCombinators_noPrefix', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitImportDirective_noCombinators_noPrefix); |
- }); |
- _ut.test('test_visitImportDirective_noCombinators_prefix', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitImportDirective_noCombinators_prefix); |
- }); |
- _ut.test('test_visitIndexExpression_get', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitIndexExpression_get); |
- }); |
- _ut.test('test_visitIndexExpression_set', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitIndexExpression_set); |
- }); |
- _ut.test('test_visitInstanceCreationExpression_named', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitInstanceCreationExpression_named); |
- }); |
- _ut.test('test_visitInstanceCreationExpression_unnamed', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitInstanceCreationExpression_unnamed); |
- }); |
- _ut.test('test_visitInstanceCreationExpression_unnamed_namedParameter', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitInstanceCreationExpression_unnamed_namedParameter); |
- }); |
- _ut.test('test_visitMethodInvocation', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitMethodInvocation); |
- }); |
- _ut.test('test_visitMethodInvocation_namedParameter', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitMethodInvocation_namedParameter); |
- }); |
- _ut.test('test_visitPostfixExpression', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitPostfixExpression); |
- }); |
- _ut.test('test_visitPrefixExpression', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitPrefixExpression); |
- }); |
- _ut.test('test_visitPrefixedIdentifier_dynamic', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitPrefixedIdentifier_dynamic); |
- }); |
- _ut.test('test_visitPrefixedIdentifier_nonDynamic', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitPrefixedIdentifier_nonDynamic); |
- }); |
- _ut.test('test_visitPropertyAccess_getter_identifier', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitPropertyAccess_getter_identifier); |
- }); |
- _ut.test('test_visitPropertyAccess_getter_super', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitPropertyAccess_getter_super); |
- }); |
- _ut.test('test_visitPropertyAccess_setter_this', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitPropertyAccess_setter_this); |
- }); |
- _ut.test('test_visitSimpleIdentifier_classScope', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitSimpleIdentifier_classScope); |
- }); |
- _ut.test('test_visitSimpleIdentifier_dynamic', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitSimpleIdentifier_dynamic); |
- }); |
- _ut.test('test_visitSimpleIdentifier_lexicalScope', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitSimpleIdentifier_lexicalScope); |
- }); |
- _ut.test('test_visitSimpleIdentifier_lexicalScope_field_setter', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitSimpleIdentifier_lexicalScope_field_setter); |
- }); |
- _ut.test('test_visitSuperConstructorInvocation', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitSuperConstructorInvocation); |
- }); |
- _ut.test('test_visitSuperConstructorInvocation_namedParameter', () { |
- final __test = new ElementResolverTest(); |
- runJUnitTest(__test, __test.test_visitSuperConstructorInvocation_namedParameter); |
- }); |
- }); |
- } |
-} |
-class TypeOverrideManagerTest extends EngineTestCase { |
- void test_exitScope_noScopes() { |
- TypeOverrideManager manager = new TypeOverrideManager(); |
- try { |
- manager.exitScope(); |
- JUnitTestCase.fail("Expected IllegalStateException"); |
- } on IllegalStateException catch (exception) { |
- } |
- } |
- void test_exitScope_oneScope() { |
- TypeOverrideManager manager = new TypeOverrideManager(); |
- manager.enterScope(); |
- manager.exitScope(); |
- try { |
- manager.exitScope(); |
- JUnitTestCase.fail("Expected IllegalStateException"); |
- } on IllegalStateException catch (exception) { |
- } |
- } |
- void test_exitScope_twoScopes() { |
- TypeOverrideManager manager = new TypeOverrideManager(); |
- manager.enterScope(); |
- manager.exitScope(); |
- manager.enterScope(); |
- manager.exitScope(); |
- try { |
- manager.exitScope(); |
- JUnitTestCase.fail("Expected IllegalStateException"); |
- } on IllegalStateException catch (exception) { |
- } |
- } |
- void test_getType_enclosedOverride() { |
- TypeOverrideManager manager = new TypeOverrideManager(); |
- LocalVariableElementImpl element = ElementFactory.localVariableElement2("v"); |
- InterfaceType type = ElementFactory.classElement2("C", []).type; |
- manager.enterScope(); |
- manager.setType(element, type); |
- manager.enterScope(); |
- JUnitTestCase.assertSame(type, manager.getType(element)); |
- } |
- void test_getType_immediateOverride() { |
- TypeOverrideManager manager = new TypeOverrideManager(); |
- LocalVariableElementImpl element = ElementFactory.localVariableElement2("v"); |
- InterfaceType type = ElementFactory.classElement2("C", []).type; |
- manager.enterScope(); |
- manager.setType(element, type); |
- JUnitTestCase.assertSame(type, manager.getType(element)); |
- } |
- void test_getType_noOverride() { |
- TypeOverrideManager manager = new TypeOverrideManager(); |
- manager.enterScope(); |
- JUnitTestCase.assertNull(manager.getType(ElementFactory.localVariableElement2("v"))); |
- } |
- void test_getType_noScope() { |
- TypeOverrideManager manager = new TypeOverrideManager(); |
- JUnitTestCase.assertNull(manager.getType(ElementFactory.localVariableElement2("v"))); |
- } |
- static dartSuite() { |
- _ut.group('TypeOverrideManagerTest', () { |
- _ut.test('test_exitScope_noScopes', () { |
- final __test = new TypeOverrideManagerTest(); |
- runJUnitTest(__test, __test.test_exitScope_noScopes); |
- }); |
- _ut.test('test_exitScope_oneScope', () { |
- final __test = new TypeOverrideManagerTest(); |
- runJUnitTest(__test, __test.test_exitScope_oneScope); |
- }); |
- _ut.test('test_exitScope_twoScopes', () { |
- final __test = new TypeOverrideManagerTest(); |
- runJUnitTest(__test, __test.test_exitScope_twoScopes); |
- }); |
- _ut.test('test_getType_enclosedOverride', () { |
- final __test = new TypeOverrideManagerTest(); |
- runJUnitTest(__test, __test.test_getType_enclosedOverride); |
- }); |
- _ut.test('test_getType_immediateOverride', () { |
- final __test = new TypeOverrideManagerTest(); |
- runJUnitTest(__test, __test.test_getType_immediateOverride); |
- }); |
- _ut.test('test_getType_noOverride', () { |
- final __test = new TypeOverrideManagerTest(); |
- runJUnitTest(__test, __test.test_getType_noOverride); |
- }); |
- _ut.test('test_getType_noScope', () { |
- final __test = new TypeOverrideManagerTest(); |
- runJUnitTest(__test, __test.test_getType_noScope); |
- }); |
- }); |
- } |
-} |
-class PubSuggestionCodeTest extends ResolverTestCase { |
- void test_import_package() { |
- Source source = addSource(EngineTestCase.createSource(["import 'package:somepackage/other.dart';"])); |
- resolve(source); |
- assertErrors(source, [CompileTimeErrorCode.URI_DOES_NOT_EXIST]); |
- } |
- void test_import_packageWithDotDot() { |
- Source source = addSource(EngineTestCase.createSource(["import 'package:somepackage/../other.dart';"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.URI_DOES_NOT_EXIST, |
- PubSuggestionCode.PACKAGE_IMPORT_CONTAINS_DOT_DOT]); |
- } |
- void test_import_packageWithLeadingDotDot() { |
- Source source = addSource(EngineTestCase.createSource(["import 'package:../other.dart';"])); |
- resolve(source); |
- assertErrors(source, [ |
- CompileTimeErrorCode.URI_DOES_NOT_EXIST, |
- PubSuggestionCode.PACKAGE_IMPORT_CONTAINS_DOT_DOT]); |
- } |
- void test_import_referenceIntoLibDirectory() { |
- cacheSource("/myproj/pubspec.yaml", ""); |
- cacheSource("/myproj/lib/other.dart", ""); |
- Source source = addSource2("/myproj/web/test.dart", EngineTestCase.createSource(["import '../lib/other.dart';"])); |
- resolve(source); |
- assertErrors(source, [PubSuggestionCode.FILE_IMPORT_OUTSIDE_LIB_REFERENCES_FILE_INSIDE]); |
- } |
- void test_import_referenceIntoLibDirectory_no_pubspec() { |
- cacheSource("/myproj/lib/other.dart", ""); |
- Source source = addSource2("/myproj/web/test.dart", EngineTestCase.createSource(["import '../lib/other.dart';"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_import_referenceOutOfLibDirectory() { |
- cacheSource("/myproj/pubspec.yaml", ""); |
- cacheSource("/myproj/web/other.dart", ""); |
- Source source = addSource2("/myproj/lib/test.dart", EngineTestCase.createSource(["import '../web/other.dart';"])); |
- resolve(source); |
- assertErrors(source, [PubSuggestionCode.FILE_IMPORT_INSIDE_LIB_REFERENCES_FILE_OUTSIDE]); |
- } |
- void test_import_referenceOutOfLibDirectory_no_pubspec() { |
- cacheSource("/myproj/web/other.dart", ""); |
- Source source = addSource2("/myproj/lib/test.dart", EngineTestCase.createSource(["import '../web/other.dart';"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_import_valid_inside_lib1() { |
- cacheSource("/myproj/pubspec.yaml", ""); |
- cacheSource("/myproj/lib/other.dart", ""); |
- Source source = addSource2("/myproj/lib/test.dart", EngineTestCase.createSource(["import 'other.dart';"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_import_valid_inside_lib2() { |
- cacheSource("/myproj/pubspec.yaml", ""); |
- cacheSource("/myproj/lib/bar/other.dart", ""); |
- Source source = addSource2("/myproj/lib/foo/test.dart", EngineTestCase.createSource(["import '../bar/other.dart';"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_import_valid_outside_lib() { |
- cacheSource("/myproj/pubspec.yaml", ""); |
- cacheSource("/myproj/web/other.dart", ""); |
- Source source = addSource2("/myproj/lib2/test.dart", EngineTestCase.createSource(["import '../web/other.dart';"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- static dartSuite() { |
- _ut.group('PubSuggestionCodeTest', () { |
- _ut.test('test_import_package', () { |
- final __test = new PubSuggestionCodeTest(); |
- runJUnitTest(__test, __test.test_import_package); |
- }); |
- _ut.test('test_import_packageWithDotDot', () { |
- final __test = new PubSuggestionCodeTest(); |
- runJUnitTest(__test, __test.test_import_packageWithDotDot); |
- }); |
- _ut.test('test_import_packageWithLeadingDotDot', () { |
- final __test = new PubSuggestionCodeTest(); |
- runJUnitTest(__test, __test.test_import_packageWithLeadingDotDot); |
- }); |
- _ut.test('test_import_referenceIntoLibDirectory', () { |
- final __test = new PubSuggestionCodeTest(); |
- runJUnitTest(__test, __test.test_import_referenceIntoLibDirectory); |
- }); |
- _ut.test('test_import_referenceIntoLibDirectory_no_pubspec', () { |
- final __test = new PubSuggestionCodeTest(); |
- runJUnitTest(__test, __test.test_import_referenceIntoLibDirectory_no_pubspec); |
- }); |
- _ut.test('test_import_referenceOutOfLibDirectory', () { |
- final __test = new PubSuggestionCodeTest(); |
- runJUnitTest(__test, __test.test_import_referenceOutOfLibDirectory); |
- }); |
- _ut.test('test_import_referenceOutOfLibDirectory_no_pubspec', () { |
- final __test = new PubSuggestionCodeTest(); |
- runJUnitTest(__test, __test.test_import_referenceOutOfLibDirectory_no_pubspec); |
- }); |
- _ut.test('test_import_valid_inside_lib1', () { |
- final __test = new PubSuggestionCodeTest(); |
- runJUnitTest(__test, __test.test_import_valid_inside_lib1); |
- }); |
- _ut.test('test_import_valid_inside_lib2', () { |
- final __test = new PubSuggestionCodeTest(); |
- runJUnitTest(__test, __test.test_import_valid_inside_lib2); |
- }); |
- _ut.test('test_import_valid_outside_lib', () { |
- final __test = new PubSuggestionCodeTest(); |
- runJUnitTest(__test, __test.test_import_valid_outside_lib); |
- }); |
- }); |
- } |
-} |
-class StaticWarningCodeTest extends ResolverTestCase { |
- void fail_undefinedGetter() { |
- Source source = addSource(EngineTestCase.createSource([])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_GETTER]); |
- verify([source]); |
- } |
- void fail_undefinedIdentifier_commentReference() { |
- Source source = addSource(EngineTestCase.createSource(["/** [m] xxx [new B.c] */", "class A {", "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- StaticWarningCode.UNDEFINED_IDENTIFIER, |
- StaticWarningCode.UNDEFINED_IDENTIFIER]); |
- } |
- void fail_undefinedSetter() { |
- Source source = addSource(EngineTestCase.createSource(["class C {}", "f(var p) {", " C.m = 0;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_SETTER]); |
- verify([source]); |
- } |
- void fail_undefinedStaticMethodOrGetter_getter() { |
- Source source = addSource(EngineTestCase.createSource(["class C {}", "f(var p) {", " f(C.m);", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_STATIC_METHOD_OR_GETTER]); |
- verify([source]); |
- } |
- void fail_undefinedStaticMethodOrGetter_method() { |
- Source source = addSource(EngineTestCase.createSource(["class C {}", "f(var p) {", " f(C.m());", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_STATIC_METHOD_OR_GETTER]); |
- verify([source]); |
- } |
- void test_ambiguousImport_as() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "f(p) {p as N;}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class N {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.AMBIGUOUS_IMPORT]); |
- } |
- void test_ambiguousImport_extends() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "class A extends N {}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class N {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- StaticWarningCode.AMBIGUOUS_IMPORT, |
- CompileTimeErrorCode.EXTENDS_NON_CLASS]); |
- } |
- void test_ambiguousImport_implements() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "class A implements N {}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class N {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- StaticWarningCode.AMBIGUOUS_IMPORT, |
- CompileTimeErrorCode.IMPLEMENTS_NON_CLASS]); |
- } |
- void test_ambiguousImport_inPart() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library lib;", |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "part 'part.dart';"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class N {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- Source partSource = addSource2("/part.dart", EngineTestCase.createSource(["part of lib;", "class A extends N {}"])); |
- resolve(source); |
- assertErrors(partSource, [ |
- StaticWarningCode.AMBIGUOUS_IMPORT, |
- CompileTimeErrorCode.EXTENDS_NON_CLASS]); |
- } |
- void test_ambiguousImport_instanceCreation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "f() {new N();}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class N {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.AMBIGUOUS_IMPORT]); |
- } |
- void test_ambiguousImport_is() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "f(p) {p is N;}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class N {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.AMBIGUOUS_IMPORT]); |
- } |
- void test_ambiguousImport_qualifier() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "g() { N.FOO; }"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class N {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.AMBIGUOUS_IMPORT]); |
- } |
- void test_ambiguousImport_typeAnnotation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "typedef N FT(N p);", |
- "N f(N p) {", |
- " N v;", |
- "}", |
- "class A {", |
- " N m() {}", |
- "}", |
- "class B<T extends N> {}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class N {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- resolve(source); |
- assertErrors(source, [ |
- StaticWarningCode.AMBIGUOUS_IMPORT, |
- StaticWarningCode.AMBIGUOUS_IMPORT, |
- StaticWarningCode.AMBIGUOUS_IMPORT, |
- StaticWarningCode.AMBIGUOUS_IMPORT, |
- StaticWarningCode.AMBIGUOUS_IMPORT, |
- StaticWarningCode.AMBIGUOUS_IMPORT, |
- StaticWarningCode.AMBIGUOUS_IMPORT]); |
- } |
- void test_ambiguousImport_typeArgument_annotation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "class A<T> {}", |
- "A<N> f() {}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class N {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.AMBIGUOUS_IMPORT]); |
- } |
- void test_ambiguousImport_typeArgument_instanceCreation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "class A<T> {}", |
- "f() {new A<N>();}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class N {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class N {}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.AMBIGUOUS_IMPORT]); |
- } |
- void test_ambiguousImport_varRead() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "f() { g(v); }", |
- "g(p) {}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "var v;"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "var v;"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.AMBIGUOUS_IMPORT]); |
- } |
- void test_ambiguousImport_varWrite() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib1.dart';", |
- "import 'lib2.dart';", |
- "f() { v = 0; }"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "var v;"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "var v;"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.AMBIGUOUS_IMPORT]); |
- } |
- void test_argumentTypeNotAssignable_annotation_namedConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A.fromInt(int p);", |
- "}", |
- "@A.fromInt('0')", |
- "main() {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_annotation_unnamedConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A(int p);", |
- "}", |
- "@A('0')", |
- "main() {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_binary() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " operator +(int p) {}", |
- "}", |
- "f(A a) {", |
- " a + '0';", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_const() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A(String p);", |
- "}", |
- "main() {", |
- " const A(42);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_const_super() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " const A(String p);", |
- "}", |
- "class B extends A {", |
- " const B() : super(42);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_index() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " operator [](int index) {}", |
- "}", |
- "f(A a) {", |
- " a['0'];", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_callParameter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " call(int p) {}", |
- "}", |
- "f(A a) {", |
- " a('0');", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_callVariable() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " call(int p) {}", |
- "}", |
- "main() {", |
- " A a = new A();", |
- " a('0');", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_functionParameter() { |
- Source source = addSource(EngineTestCase.createSource(["a(b(int p)) {", " b('0');", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_functionParameter_generic() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<K, V> {", |
- " m(f(K k), V v) {", |
- " f(v);", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_functionTypes_optional() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "void acceptFunNumOptBool(void funNumOptBool([bool b])) {}", |
- "void funNumBool(bool b) {}", |
- "main() {", |
- " acceptFunNumOptBool(funNumBool);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_generic() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<T> {", |
- " m(T t) {}", |
- "}", |
- "f(A<String> a) {", |
- " a.m(1);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_named() { |
- Source source = addSource(EngineTestCase.createSource(["f({String p}) {}", "main() {", " f(p: 42);", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_optional() { |
- Source source = addSource(EngineTestCase.createSource(["f([String p]) {}", "main() {", " f(42);", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_required() { |
- Source source = addSource(EngineTestCase.createSource(["f(String p) {}", "main() {", " f(42);", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_typedef_generic() { |
- Source source = addSource(EngineTestCase.createSource(["typedef A<T>(T p);", "f(A<int> a) {", " a('1');", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_typedef_local() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "typedef A(int p);", |
- "A getA() => null;", |
- "main() {", |
- " A a = getA();", |
- " a('1');", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_invocation_typedef_parameter() { |
- Source source = addSource(EngineTestCase.createSource(["typedef A(int p);", "f(A a) {", " a('1');", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_new_generic() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A<T> {", |
- " A(T p) {}", |
- "}", |
- "main() {", |
- " new A<String>(42);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_new_optional() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A([String p]) {}", |
- "}", |
- "main() {", |
- " new A(42);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_argumentTypeNotAssignable_new_required() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A(String p) {}", |
- "}", |
- "main() {", |
- " new A(42);", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_assignmentToConst_instanceVariable() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static const v = 0;", |
- "}", |
- "f() {", |
- " A.v = 1;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_CONST]); |
- verify([source]); |
- } |
- void test_assignmentToConst_localVariable() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " const x = 0;", " x = 1;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_CONST]); |
- verify([source]); |
- } |
- void test_assignmentToFinal_instanceVariable() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final v = 0;", |
- "}", |
- "f() {", |
- " A a = new A();", |
- " a.v = 1;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_FINAL]); |
- verify([source]); |
- } |
- void test_assignmentToFinal_localVariable() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " final x = 0;", " x = 1;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_FINAL]); |
- verify([source]); |
- } |
- void test_assignmentToFinal_prefixMinusMinus() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " final x = 0;", " --x;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_FINAL]); |
- verify([source]); |
- } |
- void test_assignmentToFinal_prefixPlusPlus() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " final x = 0;", " ++x;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_FINAL]); |
- verify([source]); |
- } |
- void test_assignmentToFinal_propertyAccess() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int get x => 0;", |
- "}", |
- "class B {", |
- " static A a;", |
- "}", |
- "main() {", |
- " B.a.x = 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_FINAL]); |
- verify([source]); |
- } |
- void test_assignmentToFinal_suffixMinusMinus() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " final x = 0;", " x--;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_FINAL]); |
- verify([source]); |
- } |
- void test_assignmentToFinal_suffixPlusPlus() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " final x = 0;", " x++;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_FINAL]); |
- verify([source]); |
- } |
- void test_assignmentToFinal_topLevelVariable() { |
- Source source = addSource(EngineTestCase.createSource(["final x = 0;", "f() { x = 1; }"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_FINAL]); |
- verify([source]); |
- } |
- void test_assignmentToMethod() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m() {}", |
- "}", |
- "f(A a) {", |
- " a.m = () {};", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_METHOD]); |
- verify([source]); |
- } |
- void test_caseBlockNotTerminated() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(int p) {", |
- " switch (p) {", |
- " case 0:", |
- " f(p);", |
- " case 1:", |
- " break;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CASE_BLOCK_NOT_TERMINATED]); |
- verify([source]); |
- } |
- void test_castToNonType() { |
- Source source = addSource(EngineTestCase.createSource(["var A = 0;", "f(String s) { var x = s as A; }"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CAST_TO_NON_TYPE]); |
- verify([source]); |
- } |
- void test_concreteClassWithAbstractMember() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " m();", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingDartImport() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib.dart';", |
- "import 'dart:async';", |
- "Future f = null;", |
- "Stream s;"])); |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "class Future {}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_DART_IMPORT]); |
- } |
- void test_conflictingInstanceGetterAndSuperclassMember_direct_field() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static int v;", |
- "}", |
- "class B extends A {", |
- " get v => 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingInstanceGetterAndSuperclassMember_direct_getter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static get v => 0;", |
- "}", |
- "class B extends A {", |
- " get v => 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingInstanceGetterAndSuperclassMember_direct_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static v() {}", |
- "}", |
- "class B extends A {", |
- " get v => 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingInstanceGetterAndSuperclassMember_direct_setter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static set v(x) {}", |
- "}", |
- "class B extends A {", |
- " get v => 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingInstanceGetterAndSuperclassMember_indirect() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static int v;", |
- "}", |
- "class B extends A {}", |
- "class C extends B {", |
- " get v => 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingInstanceGetterAndSuperclassMember_mixin() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class M {", |
- " static int v;", |
- "}", |
- "class B extends Object with M {", |
- " get v => 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingInstanceSetterAndSuperclassMember() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static int v;", |
- "}", |
- "class B extends A {", |
- " set v(x) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_INSTANCE_SETTER_AND_SUPERCLASS_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingStaticGetterAndInstanceSetter_mixin() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " set x(int p) {}", |
- "}", |
- "class B extends Object with A {", |
- " static get x => 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER]); |
- verify([source]); |
- } |
- void test_conflictingStaticGetterAndInstanceSetter_superClass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " set x(int p) {}", |
- "}", |
- "class B extends A {", |
- " static get x => 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER]); |
- verify([source]); |
- } |
- void test_conflictingStaticGetterAndInstanceSetter_thisClass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static get x => 0;", |
- " set x(int p) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER]); |
- verify([source]); |
- } |
- void test_conflictingStaticSetterAndInstanceMember_thisClass_getter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " get x => 0;", |
- " static set x(int p) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_STATIC_SETTER_AND_INSTANCE_MEMBER]); |
- verify([source]); |
- } |
- void test_conflictingStaticSetterAndInstanceMember_thisClass_method() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " x() {}", " static set x(int p) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONFLICTING_STATIC_SETTER_AND_INSTANCE_MEMBER]); |
- verify([source]); |
- } |
- void test_constWithAbstractClass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " const A();", |
- "}", |
- "void f() {", |
- " A a = const A();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.CONST_WITH_ABSTRACT_CLASS]); |
- verify([source]); |
- } |
- void test_equalKeysInMap() { |
- Source source = addSource(EngineTestCase.createSource(["var m = {'a' : 0, 'b' : 1, 'a' : 2};"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.EQUAL_KEYS_IN_MAP]); |
- verify([source]); |
- } |
- void test_exportDuplicatedLibraryName() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library test;", |
- "export 'lib1.dart';", |
- "export 'lib2.dart';"])); |
- addSource2("/lib1.dart", "library lib;"); |
- addSource2("/lib2.dart", "library lib;"); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.EXPORT_DUPLICATED_LIBRARY_NAME]); |
- verify([source]); |
- } |
- void test_extraPositionalArguments() { |
- Source source = addSource(EngineTestCase.createSource(["f() {}", "main() {", " f(0, 1, '2');", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.EXTRA_POSITIONAL_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_fieldInitializedInInitializerAndDeclaration_final() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " final int x = 0;", |
- " A() : x = 1 {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FIELD_INITIALIZED_IN_INITIALIZER_AND_DECLARATION]); |
- verify([source]); |
- } |
- void test_fieldInitializerNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " A() : x = '';", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FIELD_INITIALIZER_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_fieldInitializingFormalNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " A(String this.x) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FIELD_INITIALIZING_FORMAL_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- |
- /** |
- * This test doesn't test the FINAL_INITIALIZED_IN_DECLARATION_AND_CONSTRUCTOR code, but tests the |
- * FIELD_INITIALIZED_IN_INITIALIZER_AND_DECLARATION code instead. It is provided here to show |
- * coverage over all of the permutations of initializers in constructor declarations. |
- * |
- * Note: FIELD_INITIALIZED_IN_INITIALIZER_AND_DECLARATION covers a subset of |
- * FINAL_INITIALIZED_IN_DECLARATION_AND_CONSTRUCTOR, since it more specific, we use it instead of |
- * the broader code |
- */ |
- void test_finalInitializedInDeclarationAndConstructor_initializers() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final x = 0;", " A() : x = 0 {}", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FIELD_INITIALIZED_IN_INITIALIZER_AND_DECLARATION]); |
- verify([source]); |
- } |
- void test_finalInitializedInDeclarationAndConstructor_initializingFormal() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final x = 0;", " A(this.x) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FINAL_INITIALIZED_IN_DECLARATION_AND_CONSTRUCTOR]); |
- verify([source]); |
- } |
- void test_finalNotInitialized_inConstructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final int x;", " A() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FINAL_NOT_INITIALIZED]); |
- verify([source]); |
- } |
- void test_finalNotInitialized_instanceField_final() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " final F;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FINAL_NOT_INITIALIZED]); |
- verify([source]); |
- } |
- void test_finalNotInitialized_instanceField_final_static() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " static final F;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FINAL_NOT_INITIALIZED]); |
- verify([source]); |
- } |
- void test_finalNotInitialized_library_final() { |
- Source source = addSource(EngineTestCase.createSource(["final F;"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FINAL_NOT_INITIALIZED]); |
- verify([source]); |
- } |
- void test_finalNotInitialized_local_final() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " final int x;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FINAL_NOT_INITIALIZED]); |
- verify([source]); |
- } |
- void test_functionWithoutCall_direct() { |
- Source source = addSource(EngineTestCase.createSource(["class A implements Function {", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FUNCTION_WITHOUT_CALL]); |
- verify([source]); |
- } |
- void test_functionWithoutCall_indirect_extends() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A implements Function {", |
- "}", |
- "class B extends A {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FUNCTION_WITHOUT_CALL]); |
- verify([source]); |
- } |
- void test_functionWithoutCall_indirect_implements() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A implements Function {", |
- "}", |
- "class B implements A {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.FUNCTION_WITHOUT_CALL]); |
- verify([source]); |
- } |
- void test_importDuplicatedLibraryName() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library test;", |
- "import 'lib1.dart';", |
- "import 'lib2.dart';"])); |
- addSource2("/lib1.dart", "library lib;"); |
- addSource2("/lib2.dart", "library lib;"); |
- resolve(source); |
- assertErrors(source, [ |
- StaticWarningCode.IMPORT_DUPLICATED_LIBRARY_NAME, |
- HintCode.UNUSED_IMPORT, |
- HintCode.UNUSED_IMPORT]); |
- verify([source]); |
- } |
- void test_inconsistentMethodInheritanceGetterAndMethod() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " int x();", |
- "}", |
- "abstract class B {", |
- " int get x;", |
- "}", |
- "class C implements A, B {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INCONSISTENT_METHOD_INHERITANCE_GETTER_AND_METHOD]); |
- verify([source]); |
- } |
- void test_instanceMethodNameCollidesWithSuperclassStatic_field() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static var n;", |
- "}", |
- "class B extends A {", |
- " void n() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC]); |
- verify([source]); |
- } |
- void test_instanceMethodNameCollidesWithSuperclassStatic_field2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static var n;", |
- "}", |
- "class B extends A {", |
- "}", |
- "class C extends B {", |
- " void n() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC]); |
- verify([source]); |
- } |
- void test_instanceMethodNameCollidesWithSuperclassStatic_getter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static get n {return 0;}", |
- "}", |
- "class B extends A {", |
- " void n() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC]); |
- verify([source]); |
- } |
- void test_instanceMethodNameCollidesWithSuperclassStatic_getter2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static get n {return 0;}", |
- "}", |
- "class B extends A {", |
- "}", |
- "class C extends B {", |
- " void n() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC]); |
- verify([source]); |
- } |
- void test_instanceMethodNameCollidesWithSuperclassStatic_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static n () {}", |
- "}", |
- "class B extends A {", |
- " void n() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC]); |
- verify([source]); |
- } |
- void test_instanceMethodNameCollidesWithSuperclassStatic_method2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static n () {}", |
- "}", |
- "class B extends A {", |
- "}", |
- "class C extends B {", |
- " void n() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC]); |
- verify([source]); |
- } |
- void test_instanceMethodNameCollidesWithSuperclassStatic_setter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static set n(int x) {}", |
- "}", |
- "class B extends A {", |
- " void n() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC]); |
- verify([source]); |
- } |
- void test_instanceMethodNameCollidesWithSuperclassStatic_setter2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static set n(int x) {}", |
- "}", |
- "class B extends A {", |
- "}", |
- "class C extends B {", |
- " void n() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC]); |
- verify([source]); |
- } |
- void test_invalidGetterOverrideReturnType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int get g { return 0; }", |
- "}", |
- "class B extends A {", |
- " String get g { return 'a'; }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_GETTER_OVERRIDE_RETURN_TYPE]); |
- verify([source]); |
- } |
- void test_invalidGetterOverrideReturnType_implicit() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " String f;", |
- "}", |
- "class B extends A {", |
- " int f;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ |
- StaticWarningCode.INVALID_GETTER_OVERRIDE_RETURN_TYPE, |
- StaticWarningCode.INVALID_SETTER_OVERRIDE_NORMAL_PARAM_TYPE]); |
- verify([source]); |
- } |
- void test_invalidMethodOverrideNamedParamType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m({int a}) {}", |
- "}", |
- "class B implements A {", |
- " m({String a}) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_METHOD_OVERRIDE_NAMED_PARAM_TYPE]); |
- verify([source]); |
- } |
- void test_invalidMethodOverrideNormalParamType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m(int a) {}", |
- "}", |
- "class B implements A {", |
- " m(String a) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_METHOD_OVERRIDE_NORMAL_PARAM_TYPE]); |
- verify([source]); |
- } |
- void test_invalidMethodOverrideOptionalParamType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m([int a]) {}", |
- "}", |
- "class B implements A {", |
- " m([String a]) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_METHOD_OVERRIDE_OPTIONAL_PARAM_TYPE]); |
- verify([source]); |
- } |
- void test_invalidMethodOverrideReturnType_interface() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int m() { return 0; }", |
- "}", |
- "class B implements A {", |
- " String m() { return 'a'; }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_METHOD_OVERRIDE_RETURN_TYPE]); |
- verify([source]); |
- } |
- void test_invalidMethodOverrideReturnType_interface2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " int m();", |
- "}", |
- "abstract class B implements A {", |
- "}", |
- "class C implements B {", |
- " String m() { return 'a'; }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_METHOD_OVERRIDE_RETURN_TYPE]); |
- verify([source]); |
- } |
- void test_invalidMethodOverrideReturnType_mixin() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int m() { return 0; }", |
- "}", |
- "class B extends Object with A {", |
- " String m() { return 'a'; }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_METHOD_OVERRIDE_RETURN_TYPE]); |
- verify([source]); |
- } |
- void test_invalidMethodOverrideReturnType_superclass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int m() { return 0; }", |
- "}", |
- "class B extends A {", |
- " String m() { return 'a'; }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_METHOD_OVERRIDE_RETURN_TYPE]); |
- verify([source]); |
- } |
- void test_invalidMethodOverrideReturnType_superclass2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int m() { return 0; }", |
- "}", |
- "class B extends A {", |
- "}", |
- "class C extends B {", |
- " String m() { return 'a'; }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_METHOD_OVERRIDE_RETURN_TYPE]); |
- verify([source]); |
- } |
- void test_invalidMethodOverrideReturnType_void() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int m() {}", |
- "}", |
- "class B extends A {", |
- " void m() {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_METHOD_OVERRIDE_RETURN_TYPE]); |
- verify([source]); |
- } |
- void test_invalidOverrideDifferentDefaultValues_named() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m({int p : 0}) {}", |
- "}", |
- "class B extends A {", |
- " m({int p : 1}) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_NAMED]); |
- verify([source]); |
- } |
- void test_invalidOverrideDifferentDefaultValues_positional() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m([int p = 0]) {}", |
- "}", |
- "class B extends A {", |
- " m([int p = 1]) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_POSITIONAL]); |
- verify([source]); |
- } |
- void test_invalidOverrideNamed_fewerNamedParameters() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m({a, b}) {}", |
- "}", |
- "class B extends A {", |
- " m({a}) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_OVERRIDE_NAMED]); |
- verify([source]); |
- } |
- void test_invalidOverrideNamed_missingNamedParameter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m({a, b}) {}", |
- "}", |
- "class B extends A {", |
- " m({a, c}) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_OVERRIDE_NAMED]); |
- verify([source]); |
- } |
- void test_invalidOverridePositional_optional() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m([a, b]) {}", |
- "}", |
- "class B extends A {", |
- " m([a]) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_OVERRIDE_POSITIONAL]); |
- verify([source]); |
- } |
- void test_invalidOverridePositional_optionalAndRequired() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m(a, b, [c, d]) {}", |
- "}", |
- "class B extends A {", |
- " m(a, b, [c]) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_OVERRIDE_POSITIONAL]); |
- verify([source]); |
- } |
- void test_invalidOverridePositional_optionalAndRequired2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m(a, b, [c, d]) {}", |
- "}", |
- "class B extends A {", |
- " m(a, [c, d]) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_OVERRIDE_POSITIONAL]); |
- verify([source]); |
- } |
- void test_invalidOverrideRequired() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " m(a) {}", |
- "}", |
- "class B extends A {", |
- " m(a, b) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_OVERRIDE_REQUIRED]); |
- verify([source]); |
- } |
- void test_invalidSetterOverrideNormalParamType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void set s(int v) {}", |
- "}", |
- "class B extends A {", |
- " void set s(String v) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.INVALID_SETTER_OVERRIDE_NORMAL_PARAM_TYPE]); |
- verify([source]); |
- } |
- void test_listElementTypeNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource(["var v = <String> [42];"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.LIST_ELEMENT_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_mapKeyTypeNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource(["var v = <String, int > {1 : 2};"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.MAP_KEY_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_mapValueTypeNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource(["var v = <String, String> {'a' : 2};"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.MAP_VALUE_TYPE_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_mismatchedAccessorTypes_class() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int get g { return 0; }", |
- " set g(String v) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES]); |
- verify([source]); |
- } |
- void test_mismatchedAccessorTypes_getterAndSuperSetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int get g { return 0; }", |
- "}", |
- "class B extends A {", |
- " set g(String v) {}", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES_FROM_SUPERTYPE]); |
- verify([source]); |
- } |
- void test_mismatchedAccessorTypes_setterAndSuperGetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " set g(int v) {}", |
- "}", |
- "class B extends A {", |
- " String get g { return ''; }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES_FROM_SUPERTYPE]); |
- verify([source]); |
- } |
- void test_mismatchedAccessorTypes_topLevel() { |
- Source source = addSource(EngineTestCase.createSource(["int get g { return 0; }", "set g(String v) {}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES]); |
- verify([source]); |
- } |
- void test_mixedReturnTypes_localFunction() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class C {", |
- " m(int x) {", |
- " return (int y) {", |
- " if (y < 0) {", |
- " return;", |
- " }", |
- " return 0;", |
- " };", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.MIXED_RETURN_TYPES]); |
- verify([source]); |
- } |
- void test_mixedReturnTypes_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class C {", |
- " m(int x) {", |
- " if (x < 0) {", |
- " return;", |
- " }", |
- " return 0;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.MIXED_RETURN_TYPES]); |
- verify([source]); |
- } |
- void test_mixedReturnTypes_topLevelFunction() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(int x) {", |
- " if (x < 0) {", |
- " return;", |
- " }", |
- " return 0;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.MIXED_RETURN_TYPES]); |
- verify([source]); |
- } |
- void test_newWithAbstractClass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {}", |
- "void f() {", |
- " A a = new A();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NEW_WITH_ABSTRACT_CLASS]); |
- verify([source]); |
- } |
- void test_newWithInvalidTypeParameters() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "f() { return new A<A>(); }"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NEW_WITH_INVALID_TYPE_PARAMETERS]); |
- verify([source]); |
- } |
- void test_newWithInvalidTypeParameters_tooFew() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class C<K, V> {}", |
- "f(p) {", |
- " return new C<A>();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NEW_WITH_INVALID_TYPE_PARAMETERS]); |
- verify([source]); |
- } |
- void test_newWithInvalidTypeParameters_tooMany() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class C<E> {}", |
- "f(p) {", |
- " return new C<A, A>();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NEW_WITH_INVALID_TYPE_PARAMETERS]); |
- verify([source]); |
- } |
- void test_newWithNonType() { |
- Source source = addSource(EngineTestCase.createSource(["var A = 0;", "void f() {", " var a = new A();", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NEW_WITH_NON_TYPE]); |
- verify([source]); |
- } |
- void test_newWithNonType_fromLibrary() { |
- Source source1 = addSource2("lib.dart", "class B {}"); |
- Source source2 = addSource2("lib2.dart", EngineTestCase.createSource([ |
- "import 'lib.dart' as lib;", |
- "void f() {", |
- " var a = new lib.A();", |
- "}", |
- "lib.B b;"])); |
- resolve(source1); |
- resolve(source2); |
- assertErrors(source2, [StaticWarningCode.NEW_WITH_NON_TYPE]); |
- verify([source1]); |
- } |
- void test_newWithUndefinedConstructor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A() {}", |
- "}", |
- "f() {", |
- " new A.name();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NEW_WITH_UNDEFINED_CONSTRUCTOR]); |
- } |
- void test_newWithUndefinedConstructorDefault() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A.name() {}", |
- "}", |
- "f() {", |
- " new A();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NEW_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberFivePlus() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " m();", |
- " n();", |
- " o();", |
- " p();", |
- " q();", |
- "}", |
- "class C extends A {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FIVE_PLUS]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberFour() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " m();", |
- " n();", |
- " o();", |
- " p();", |
- "}", |
- "class C extends A {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FOUR]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_getter_fromInterface() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class I {", |
- " int get g {return 1;}", |
- "}", |
- "class C implements I {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_getter_fromSuperclass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " int get g;", |
- "}", |
- "class C extends A {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_method_fromInterface() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class I {", |
- " m(p) {}", |
- "}", |
- "class C implements I {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_method_fromSuperclass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " m(p);", |
- "}", |
- "class C extends A {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_method_optionalParamCount() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " int x(int a);", |
- "}", |
- "abstract class B {", |
- " int x(int a, [int b]);", |
- "}", |
- "class C implements A, B {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_setter_fromInterface() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class I {", |
- " set s(int i) {}", |
- "}", |
- "class C implements I {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_setter_fromSuperclass() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " set s(int i);", |
- "}", |
- "class C extends A {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberOne_superclasses_interface() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " get a => 'a';", |
- "}", |
- "abstract class B implements A {", |
- " get b => 'b';", |
- "}", |
- "class C extends B {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberThree() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " m();", |
- " n();", |
- " o();", |
- "}", |
- "class C extends A {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_THREE]); |
- verify([source]); |
- } |
- void test_nonAbstractClassInheritsAbstractMemberTwo() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class A {", |
- " m();", |
- " n();", |
- "}", |
- "class C extends A {", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO]); |
- verify([source]); |
- } |
- void test_nonTypeInCatchClause_noElement() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " try {", " } on T catch (e) {", " }", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_TYPE_IN_CATCH_CLAUSE]); |
- verify([source]); |
- } |
- void test_nonTypeInCatchClause_notType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "var T = 0;", |
- "f() {", |
- " try {", |
- " } on T catch (e) {", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_TYPE_IN_CATCH_CLAUSE]); |
- verify([source]); |
- } |
- void test_nonVoidReturnForOperator() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int operator []=(a, b) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_VOID_RETURN_FOR_OPERATOR]); |
- verify([source]); |
- } |
- void test_nonVoidReturnForSetter_function() { |
- Source source = addSource(EngineTestCase.createSource(["int set x(int v) {", " return 42;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_VOID_RETURN_FOR_SETTER]); |
- verify([source]); |
- } |
- void test_nonVoidReturnForSetter_method() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int set x(int v) {", |
- " return 42;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NON_VOID_RETURN_FOR_SETTER]); |
- verify([source]); |
- } |
- void test_notAType() { |
- Source source = addSource(EngineTestCase.createSource(["f() {}", "main() {", " f v = null;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NOT_A_TYPE]); |
- verify([source]); |
- } |
- void test_notEnoughRequiredArguments() { |
- Source source = addSource(EngineTestCase.createSource(["f(int a, String b) {}", "main() {", " f();", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.NOT_ENOUGH_REQUIRED_ARGUMENTS]); |
- verify([source]); |
- } |
- void test_partOfDifferentLibrary() { |
- Source source = addSource(EngineTestCase.createSource(["library lib;", "part 'part.dart';"])); |
- addSource2("/part.dart", EngineTestCase.createSource(["part of lub;"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.PART_OF_DIFFERENT_LIBRARY]); |
- verify([source]); |
- } |
- void test_redirectToInvalidFunctionType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A implements B {", |
- " A(int p) {}", |
- "}", |
- "class B {", |
- " factory B() = A;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.REDIRECT_TO_INVALID_FUNCTION_TYPE]); |
- verify([source]); |
- } |
- void test_redirectToInvalidReturnType() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A() {}", |
- "}", |
- "class B {", |
- " factory B() = A;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.REDIRECT_TO_INVALID_RETURN_TYPE]); |
- verify([source]); |
- } |
- void test_redirectToMissingConstructor_named() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A implements B{", |
- " A() {}", |
- "}", |
- "class B {", |
- " factory B() = A.name;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.REDIRECT_TO_MISSING_CONSTRUCTOR]); |
- } |
- void test_redirectToMissingConstructor_unnamed() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A implements B{", |
- " A.name() {}", |
- "}", |
- "class B {", |
- " factory B() = A;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.REDIRECT_TO_MISSING_CONSTRUCTOR]); |
- } |
- void test_redirectToNonClass_notAType() { |
- Source source = addSource(EngineTestCase.createSource(["class B {", " int A;", " factory B() = A;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.REDIRECT_TO_NON_CLASS]); |
- verify([source]); |
- } |
- void test_redirectToNonClass_undefinedIdentifier() { |
- Source source = addSource(EngineTestCase.createSource(["class B {", " factory B() = A;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.REDIRECT_TO_NON_CLASS]); |
- verify([source]); |
- } |
- void test_returnWithoutValue() { |
- Source source = addSource(EngineTestCase.createSource(["int f() { return; }"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.RETURN_WITHOUT_VALUE]); |
- verify([source]); |
- } |
- void test_staticAccessToInstanceMember_method_invocation() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " m() {}", "}", "main() {", " A.m();", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.STATIC_ACCESS_TO_INSTANCE_MEMBER]); |
- verify([source]); |
- } |
- void test_staticAccessToInstanceMember_method_reference() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " m() {}", "}", "main() {", " A.m;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.STATIC_ACCESS_TO_INSTANCE_MEMBER]); |
- verify([source]); |
- } |
- void test_staticAccessToInstanceMember_propertyAccess_field() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " var f;", "}", "main() {", " A.f;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.STATIC_ACCESS_TO_INSTANCE_MEMBER]); |
- verify([source]); |
- } |
- void test_staticAccessToInstanceMember_propertyAccess_getter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " get f => 42;", |
- "}", |
- "main() {", |
- " A.f;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.STATIC_ACCESS_TO_INSTANCE_MEMBER]); |
- verify([source]); |
- } |
- void test_staticAccessToInstanceMember_propertyAccess_setter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " set f(x) {}", |
- "}", |
- "main() {", |
- " A.f = 42;", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.STATIC_ACCESS_TO_INSTANCE_MEMBER]); |
- verify([source]); |
- } |
- void test_switchExpressionNotAssignable() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f(int p) {", |
- " switch (p) {", |
- " case 'a': break;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.SWITCH_EXPRESSION_NOT_ASSIGNABLE]); |
- verify([source]); |
- } |
- void test_typeParameterReferencedByStatic_field() { |
- Source source = addSource(EngineTestCase.createSource(["class A<K> {", " static K k;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.TYPE_PARAMETER_REFERENCED_BY_STATIC]); |
- verify([source]); |
- } |
- void test_typeParameterReferencedByStatic_getter() { |
- Source source = addSource(EngineTestCase.createSource(["class A<K> {", " static K get k => 0;", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.TYPE_PARAMETER_REFERENCED_BY_STATIC]); |
- verify([source]); |
- } |
- void test_typeParameterReferencedByStatic_methodBodyReference() { |
- Source source = addSource(EngineTestCase.createSource(["class A<K> {", " static m() {", " K k;", " }", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.TYPE_PARAMETER_REFERENCED_BY_STATIC]); |
- verify([source]); |
- } |
- void test_typeParameterReferencedByStatic_methodParameter() { |
- Source source = addSource(EngineTestCase.createSource(["class A<K> {", " static m(K k) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.TYPE_PARAMETER_REFERENCED_BY_STATIC]); |
- verify([source]); |
- } |
- void test_typeParameterReferencedByStatic_methodReturn() { |
- Source source = addSource(EngineTestCase.createSource(["class A<K> {", " static K m() {}", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.TYPE_PARAMETER_REFERENCED_BY_STATIC]); |
- verify([source]); |
- } |
- void test_typeParameterReferencedByStatic_setter() { |
- Source source = addSource(EngineTestCase.createSource(["class A<K> {", " static set s(K k) {}", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.TYPE_PARAMETER_REFERENCED_BY_STATIC]); |
- verify([source]); |
- } |
- void test_typePromotion_functionType_arg_InterToDyn() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "typedef FuncDyn(x);", |
- "typedef FuncA(A a);", |
- "class A {}", |
- "class B {}", |
- "main(FuncA f) {", |
- " if (f is FuncDyn) {", |
- " f(new B());", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]); |
- } |
- void test_typeTestNonType() { |
- Source source = addSource(EngineTestCase.createSource(["var A = 0;", "f(var p) {", " if (p is A) {", " }", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.TYPE_TEST_NON_TYPE]); |
- verify([source]); |
- } |
- void test_undefinedClass_instanceCreation() { |
- Source source = addSource(EngineTestCase.createSource(["f() { new C(); }"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_CLASS]); |
- } |
- void test_undefinedClass_variableDeclaration() { |
- Source source = addSource(EngineTestCase.createSource(["f() { C c; }"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_CLASS]); |
- } |
- void test_undefinedClassBoolean_variableDeclaration() { |
- Source source = addSource(EngineTestCase.createSource(["f() { boolean v; }"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_CLASS_BOOLEAN]); |
- } |
- void test_undefinedGetter_fromLibrary() { |
- Source source1 = addSource2("lib.dart", ""); |
- Source source2 = addSource2("lib2.dart", EngineTestCase.createSource([ |
- "import 'lib.dart' as lib;", |
- "void f() {", |
- " var g = lib.gg;", |
- "}"])); |
- resolve(source1); |
- resolve(source2); |
- assertErrors(source2, [StaticWarningCode.UNDEFINED_GETTER]); |
- verify([source1]); |
- } |
- void test_undefinedIdentifier_for() { |
- Source source = addSource(EngineTestCase.createSource(["f(var l) {", " for (e in l) {", " }", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_IDENTIFIER]); |
- } |
- void test_undefinedIdentifier_function() { |
- Source source = addSource(EngineTestCase.createSource(["int a() => b;"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_IDENTIFIER]); |
- } |
- void test_undefinedIdentifier_function_prefix() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "class C {}"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as b;", "", "int a() => b;", "b.C c;"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_IDENTIFIER]); |
- verify([source]); |
- } |
- void test_undefinedIdentifier_initializer() { |
- Source source = addSource(EngineTestCase.createSource(["var a = b;"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_IDENTIFIER]); |
- } |
- void test_undefinedIdentifier_initializer_prefix() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "class C {}"])); |
- Source source = addSource(EngineTestCase.createSource(["import 'lib.dart' as b;", "", "var a = b;", "b.C c;"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_IDENTIFIER]); |
- } |
- void test_undefinedIdentifier_metadata() { |
- Source source = addSource(EngineTestCase.createSource(["@undefined class A {}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_IDENTIFIER]); |
- } |
- void test_undefinedIdentifier_methodInvocation() { |
- Source source = addSource(EngineTestCase.createSource(["f() { C.m(); }"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_IDENTIFIER]); |
- } |
- void test_undefinedIdentifier_private_getter() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "class A {", " var _foo;", "}"])); |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib.dart';", |
- "class B extends A {", |
- " test() {", |
- " var v = _foo;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_IDENTIFIER]); |
- } |
- void test_undefinedIdentifier_private_setter() { |
- addSource2("/lib.dart", EngineTestCase.createSource(["library lib;", "class A {", " var _foo;", "}"])); |
- Source source = addSource(EngineTestCase.createSource([ |
- "import 'lib.dart';", |
- "class B extends A {", |
- " test() {", |
- " _foo = 42;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_IDENTIFIER]); |
- } |
- void test_undefinedNamedParameter() { |
- Source source = addSource(EngineTestCase.createSource(["f({a, b}) {}", "main() {", " f(c: 1);", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.UNDEFINED_NAMED_PARAMETER]); |
- } |
- void test_undefinedSetter() { |
- Source source1 = addSource2("lib.dart", ""); |
- Source source2 = addSource2("lib2.dart", EngineTestCase.createSource([ |
- "import 'lib.dart' as lib;", |
- "void f() {", |
- " lib.gg = null;", |
- "}"])); |
- resolve(source1); |
- resolve(source2); |
- assertErrors(source2, [StaticWarningCode.UNDEFINED_SETTER]); |
- } |
- static dartSuite() { |
- _ut.group('StaticWarningCodeTest', () { |
- _ut.test('test_ambiguousImport_as', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_as); |
- }); |
- _ut.test('test_ambiguousImport_extends', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_extends); |
- }); |
- _ut.test('test_ambiguousImport_implements', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_implements); |
- }); |
- _ut.test('test_ambiguousImport_inPart', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_inPart); |
- }); |
- _ut.test('test_ambiguousImport_instanceCreation', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_instanceCreation); |
- }); |
- _ut.test('test_ambiguousImport_is', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_is); |
- }); |
- _ut.test('test_ambiguousImport_qualifier', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_qualifier); |
- }); |
- _ut.test('test_ambiguousImport_typeAnnotation', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_typeAnnotation); |
- }); |
- _ut.test('test_ambiguousImport_typeArgument_annotation', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_typeArgument_annotation); |
- }); |
- _ut.test('test_ambiguousImport_typeArgument_instanceCreation', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_typeArgument_instanceCreation); |
- }); |
- _ut.test('test_ambiguousImport_varRead', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_varRead); |
- }); |
- _ut.test('test_ambiguousImport_varWrite', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_ambiguousImport_varWrite); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_annotation_namedConstructor', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_annotation_namedConstructor); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_annotation_unnamedConstructor', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_annotation_unnamedConstructor); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_binary', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_binary); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_const', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_const); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_const_super', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_const_super); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_index', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_index); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_callParameter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_callParameter); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_callVariable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_callVariable); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_functionParameter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_functionParameter); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_functionParameter_generic', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_functionParameter_generic); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_functionTypes_optional', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_functionTypes_optional); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_generic', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_generic); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_named', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_named); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_optional', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_optional); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_required', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_required); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_typedef_generic', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_typedef_generic); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_typedef_local', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_typedef_local); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_invocation_typedef_parameter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_invocation_typedef_parameter); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_new_generic', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_new_generic); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_new_optional', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_new_optional); |
- }); |
- _ut.test('test_argumentTypeNotAssignable_new_required', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_argumentTypeNotAssignable_new_required); |
- }); |
- _ut.test('test_assignmentToConst_instanceVariable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_assignmentToConst_instanceVariable); |
- }); |
- _ut.test('test_assignmentToConst_localVariable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_assignmentToConst_localVariable); |
- }); |
- _ut.test('test_assignmentToFinal_instanceVariable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_assignmentToFinal_instanceVariable); |
- }); |
- _ut.test('test_assignmentToFinal_localVariable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_assignmentToFinal_localVariable); |
- }); |
- _ut.test('test_assignmentToFinal_prefixMinusMinus', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_assignmentToFinal_prefixMinusMinus); |
- }); |
- _ut.test('test_assignmentToFinal_prefixPlusPlus', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_assignmentToFinal_prefixPlusPlus); |
- }); |
- _ut.test('test_assignmentToFinal_propertyAccess', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_assignmentToFinal_propertyAccess); |
- }); |
- _ut.test('test_assignmentToFinal_suffixMinusMinus', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_assignmentToFinal_suffixMinusMinus); |
- }); |
- _ut.test('test_assignmentToFinal_suffixPlusPlus', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_assignmentToFinal_suffixPlusPlus); |
- }); |
- _ut.test('test_assignmentToFinal_topLevelVariable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_assignmentToFinal_topLevelVariable); |
- }); |
- _ut.test('test_assignmentToMethod', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_assignmentToMethod); |
- }); |
- _ut.test('test_caseBlockNotTerminated', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_caseBlockNotTerminated); |
- }); |
- _ut.test('test_castToNonType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_castToNonType); |
- }); |
- _ut.test('test_concreteClassWithAbstractMember', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_concreteClassWithAbstractMember); |
- }); |
- _ut.test('test_conflictingDartImport', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingDartImport); |
- }); |
- _ut.test('test_conflictingInstanceGetterAndSuperclassMember_direct_field', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingInstanceGetterAndSuperclassMember_direct_field); |
- }); |
- _ut.test('test_conflictingInstanceGetterAndSuperclassMember_direct_getter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingInstanceGetterAndSuperclassMember_direct_getter); |
- }); |
- _ut.test('test_conflictingInstanceGetterAndSuperclassMember_direct_method', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingInstanceGetterAndSuperclassMember_direct_method); |
- }); |
- _ut.test('test_conflictingInstanceGetterAndSuperclassMember_direct_setter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingInstanceGetterAndSuperclassMember_direct_setter); |
- }); |
- _ut.test('test_conflictingInstanceGetterAndSuperclassMember_indirect', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingInstanceGetterAndSuperclassMember_indirect); |
- }); |
- _ut.test('test_conflictingInstanceGetterAndSuperclassMember_mixin', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingInstanceGetterAndSuperclassMember_mixin); |
- }); |
- _ut.test('test_conflictingInstanceSetterAndSuperclassMember', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingInstanceSetterAndSuperclassMember); |
- }); |
- _ut.test('test_conflictingStaticGetterAndInstanceSetter_mixin', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingStaticGetterAndInstanceSetter_mixin); |
- }); |
- _ut.test('test_conflictingStaticGetterAndInstanceSetter_superClass', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingStaticGetterAndInstanceSetter_superClass); |
- }); |
- _ut.test('test_conflictingStaticGetterAndInstanceSetter_thisClass', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingStaticGetterAndInstanceSetter_thisClass); |
- }); |
- _ut.test('test_conflictingStaticSetterAndInstanceMember_thisClass_getter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingStaticSetterAndInstanceMember_thisClass_getter); |
- }); |
- _ut.test('test_conflictingStaticSetterAndInstanceMember_thisClass_method', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_conflictingStaticSetterAndInstanceMember_thisClass_method); |
- }); |
- _ut.test('test_constWithAbstractClass', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_constWithAbstractClass); |
- }); |
- _ut.test('test_equalKeysInMap', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_equalKeysInMap); |
- }); |
- _ut.test('test_exportDuplicatedLibraryName', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_exportDuplicatedLibraryName); |
- }); |
- _ut.test('test_extraPositionalArguments', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_extraPositionalArguments); |
- }); |
- _ut.test('test_fieldInitializedInInitializerAndDeclaration_final', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializedInInitializerAndDeclaration_final); |
- }); |
- _ut.test('test_fieldInitializerNotAssignable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializerNotAssignable); |
- }); |
- _ut.test('test_fieldInitializingFormalNotAssignable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_fieldInitializingFormalNotAssignable); |
- }); |
- _ut.test('test_finalInitializedInDeclarationAndConstructor_initializers', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_finalInitializedInDeclarationAndConstructor_initializers); |
- }); |
- _ut.test('test_finalInitializedInDeclarationAndConstructor_initializingFormal', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_finalInitializedInDeclarationAndConstructor_initializingFormal); |
- }); |
- _ut.test('test_finalNotInitialized_inConstructor', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_inConstructor); |
- }); |
- _ut.test('test_finalNotInitialized_instanceField_final', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_instanceField_final); |
- }); |
- _ut.test('test_finalNotInitialized_instanceField_final_static', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_instanceField_final_static); |
- }); |
- _ut.test('test_finalNotInitialized_library_final', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_library_final); |
- }); |
- _ut.test('test_finalNotInitialized_local_final', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_finalNotInitialized_local_final); |
- }); |
- _ut.test('test_functionWithoutCall_direct', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_functionWithoutCall_direct); |
- }); |
- _ut.test('test_functionWithoutCall_indirect_extends', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_functionWithoutCall_indirect_extends); |
- }); |
- _ut.test('test_functionWithoutCall_indirect_implements', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_functionWithoutCall_indirect_implements); |
- }); |
- _ut.test('test_importDuplicatedLibraryName', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_importDuplicatedLibraryName); |
- }); |
- _ut.test('test_inconsistentMethodInheritanceGetterAndMethod', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_inconsistentMethodInheritanceGetterAndMethod); |
- }); |
- _ut.test('test_instanceMethodNameCollidesWithSuperclassStatic_field', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceMethodNameCollidesWithSuperclassStatic_field); |
- }); |
- _ut.test('test_instanceMethodNameCollidesWithSuperclassStatic_field2', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceMethodNameCollidesWithSuperclassStatic_field2); |
- }); |
- _ut.test('test_instanceMethodNameCollidesWithSuperclassStatic_getter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceMethodNameCollidesWithSuperclassStatic_getter); |
- }); |
- _ut.test('test_instanceMethodNameCollidesWithSuperclassStatic_getter2', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceMethodNameCollidesWithSuperclassStatic_getter2); |
- }); |
- _ut.test('test_instanceMethodNameCollidesWithSuperclassStatic_method', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceMethodNameCollidesWithSuperclassStatic_method); |
- }); |
- _ut.test('test_instanceMethodNameCollidesWithSuperclassStatic_method2', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceMethodNameCollidesWithSuperclassStatic_method2); |
- }); |
- _ut.test('test_instanceMethodNameCollidesWithSuperclassStatic_setter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceMethodNameCollidesWithSuperclassStatic_setter); |
- }); |
- _ut.test('test_instanceMethodNameCollidesWithSuperclassStatic_setter2', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_instanceMethodNameCollidesWithSuperclassStatic_setter2); |
- }); |
- _ut.test('test_invalidGetterOverrideReturnType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidGetterOverrideReturnType); |
- }); |
- _ut.test('test_invalidGetterOverrideReturnType_implicit', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidGetterOverrideReturnType_implicit); |
- }); |
- _ut.test('test_invalidMethodOverrideNamedParamType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidMethodOverrideNamedParamType); |
- }); |
- _ut.test('test_invalidMethodOverrideNormalParamType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidMethodOverrideNormalParamType); |
- }); |
- _ut.test('test_invalidMethodOverrideOptionalParamType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidMethodOverrideOptionalParamType); |
- }); |
- _ut.test('test_invalidMethodOverrideReturnType_interface', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidMethodOverrideReturnType_interface); |
- }); |
- _ut.test('test_invalidMethodOverrideReturnType_interface2', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidMethodOverrideReturnType_interface2); |
- }); |
- _ut.test('test_invalidMethodOverrideReturnType_mixin', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidMethodOverrideReturnType_mixin); |
- }); |
- _ut.test('test_invalidMethodOverrideReturnType_superclass', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidMethodOverrideReturnType_superclass); |
- }); |
- _ut.test('test_invalidMethodOverrideReturnType_superclass2', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidMethodOverrideReturnType_superclass2); |
- }); |
- _ut.test('test_invalidMethodOverrideReturnType_void', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidMethodOverrideReturnType_void); |
- }); |
- _ut.test('test_invalidOverrideDifferentDefaultValues_named', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideDifferentDefaultValues_named); |
- }); |
- _ut.test('test_invalidOverrideDifferentDefaultValues_positional', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideDifferentDefaultValues_positional); |
- }); |
- _ut.test('test_invalidOverrideNamed_fewerNamedParameters', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideNamed_fewerNamedParameters); |
- }); |
- _ut.test('test_invalidOverrideNamed_missingNamedParameter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideNamed_missingNamedParameter); |
- }); |
- _ut.test('test_invalidOverridePositional_optional', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidOverridePositional_optional); |
- }); |
- _ut.test('test_invalidOverridePositional_optionalAndRequired', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidOverridePositional_optionalAndRequired); |
- }); |
- _ut.test('test_invalidOverridePositional_optionalAndRequired2', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidOverridePositional_optionalAndRequired2); |
- }); |
- _ut.test('test_invalidOverrideRequired', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidOverrideRequired); |
- }); |
- _ut.test('test_invalidSetterOverrideNormalParamType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_invalidSetterOverrideNormalParamType); |
- }); |
- _ut.test('test_listElementTypeNotAssignable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_listElementTypeNotAssignable); |
- }); |
- _ut.test('test_mapKeyTypeNotAssignable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_mapKeyTypeNotAssignable); |
- }); |
- _ut.test('test_mapValueTypeNotAssignable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_mapValueTypeNotAssignable); |
- }); |
- _ut.test('test_mismatchedAccessorTypes_class', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_mismatchedAccessorTypes_class); |
- }); |
- _ut.test('test_mismatchedAccessorTypes_getterAndSuperSetter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_mismatchedAccessorTypes_getterAndSuperSetter); |
- }); |
- _ut.test('test_mismatchedAccessorTypes_setterAndSuperGetter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_mismatchedAccessorTypes_setterAndSuperGetter); |
- }); |
- _ut.test('test_mismatchedAccessorTypes_topLevel', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_mismatchedAccessorTypes_topLevel); |
- }); |
- _ut.test('test_mixedReturnTypes_localFunction', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_mixedReturnTypes_localFunction); |
- }); |
- _ut.test('test_mixedReturnTypes_method', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_mixedReturnTypes_method); |
- }); |
- _ut.test('test_mixedReturnTypes_topLevelFunction', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_mixedReturnTypes_topLevelFunction); |
- }); |
- _ut.test('test_newWithAbstractClass', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_newWithAbstractClass); |
- }); |
- _ut.test('test_newWithInvalidTypeParameters', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_newWithInvalidTypeParameters); |
- }); |
- _ut.test('test_newWithInvalidTypeParameters_tooFew', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_newWithInvalidTypeParameters_tooFew); |
- }); |
- _ut.test('test_newWithInvalidTypeParameters_tooMany', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_newWithInvalidTypeParameters_tooMany); |
- }); |
- _ut.test('test_newWithNonType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_newWithNonType); |
- }); |
- _ut.test('test_newWithNonType_fromLibrary', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_newWithNonType_fromLibrary); |
- }); |
- _ut.test('test_newWithUndefinedConstructor', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_newWithUndefinedConstructor); |
- }); |
- _ut.test('test_newWithUndefinedConstructorDefault', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_newWithUndefinedConstructorDefault); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberFivePlus', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberFivePlus); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberFour', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberFour); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_getter_fromInterface', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_getter_fromInterface); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_getter_fromSuperclass', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_getter_fromSuperclass); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_method_fromInterface', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_method_fromInterface); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_method_fromSuperclass', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_method_fromSuperclass); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_method_optionalParamCount', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_method_optionalParamCount); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_setter_fromInterface', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_setter_fromInterface); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_setter_fromSuperclass', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_setter_fromSuperclass); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_superclasses_interface', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_superclasses_interface); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberThree', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberThree); |
- }); |
- _ut.test('test_nonAbstractClassInheritsAbstractMemberTwo', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberTwo); |
- }); |
- _ut.test('test_nonTypeInCatchClause_noElement', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonTypeInCatchClause_noElement); |
- }); |
- _ut.test('test_nonTypeInCatchClause_notType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonTypeInCatchClause_notType); |
- }); |
- _ut.test('test_nonVoidReturnForOperator', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonVoidReturnForOperator); |
- }); |
- _ut.test('test_nonVoidReturnForSetter_function', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonVoidReturnForSetter_function); |
- }); |
- _ut.test('test_nonVoidReturnForSetter_method', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_nonVoidReturnForSetter_method); |
- }); |
- _ut.test('test_notAType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_notAType); |
- }); |
- _ut.test('test_notEnoughRequiredArguments', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_notEnoughRequiredArguments); |
- }); |
- _ut.test('test_partOfDifferentLibrary', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_partOfDifferentLibrary); |
- }); |
- _ut.test('test_redirectToInvalidFunctionType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_redirectToInvalidFunctionType); |
- }); |
- _ut.test('test_redirectToInvalidReturnType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_redirectToInvalidReturnType); |
- }); |
- _ut.test('test_redirectToMissingConstructor_named', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_redirectToMissingConstructor_named); |
- }); |
- _ut.test('test_redirectToMissingConstructor_unnamed', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_redirectToMissingConstructor_unnamed); |
- }); |
- _ut.test('test_redirectToNonClass_notAType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_redirectToNonClass_notAType); |
- }); |
- _ut.test('test_redirectToNonClass_undefinedIdentifier', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_redirectToNonClass_undefinedIdentifier); |
- }); |
- _ut.test('test_returnWithoutValue', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_returnWithoutValue); |
- }); |
- _ut.test('test_staticAccessToInstanceMember_method_invocation', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_staticAccessToInstanceMember_method_invocation); |
- }); |
- _ut.test('test_staticAccessToInstanceMember_method_reference', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_staticAccessToInstanceMember_method_reference); |
- }); |
- _ut.test('test_staticAccessToInstanceMember_propertyAccess_field', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_staticAccessToInstanceMember_propertyAccess_field); |
- }); |
- _ut.test('test_staticAccessToInstanceMember_propertyAccess_getter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_staticAccessToInstanceMember_propertyAccess_getter); |
- }); |
- _ut.test('test_staticAccessToInstanceMember_propertyAccess_setter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_staticAccessToInstanceMember_propertyAccess_setter); |
- }); |
- _ut.test('test_switchExpressionNotAssignable', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_switchExpressionNotAssignable); |
- }); |
- _ut.test('test_typeParameterReferencedByStatic_field', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeParameterReferencedByStatic_field); |
- }); |
- _ut.test('test_typeParameterReferencedByStatic_getter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeParameterReferencedByStatic_getter); |
- }); |
- _ut.test('test_typeParameterReferencedByStatic_methodBodyReference', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeParameterReferencedByStatic_methodBodyReference); |
- }); |
- _ut.test('test_typeParameterReferencedByStatic_methodParameter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeParameterReferencedByStatic_methodParameter); |
- }); |
- _ut.test('test_typeParameterReferencedByStatic_methodReturn', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeParameterReferencedByStatic_methodReturn); |
- }); |
- _ut.test('test_typeParameterReferencedByStatic_setter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeParameterReferencedByStatic_setter); |
- }); |
- _ut.test('test_typePromotion_functionType_arg_InterToDyn', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typePromotion_functionType_arg_InterToDyn); |
- }); |
- _ut.test('test_typeTestNonType', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_typeTestNonType); |
- }); |
- _ut.test('test_undefinedClassBoolean_variableDeclaration', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedClassBoolean_variableDeclaration); |
- }); |
- _ut.test('test_undefinedClass_instanceCreation', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedClass_instanceCreation); |
- }); |
- _ut.test('test_undefinedClass_variableDeclaration', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedClass_variableDeclaration); |
- }); |
- _ut.test('test_undefinedGetter_fromLibrary', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedGetter_fromLibrary); |
- }); |
- _ut.test('test_undefinedIdentifier_for', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedIdentifier_for); |
- }); |
- _ut.test('test_undefinedIdentifier_function', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedIdentifier_function); |
- }); |
- _ut.test('test_undefinedIdentifier_function_prefix', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedIdentifier_function_prefix); |
- }); |
- _ut.test('test_undefinedIdentifier_initializer', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedIdentifier_initializer); |
- }); |
- _ut.test('test_undefinedIdentifier_initializer_prefix', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedIdentifier_initializer_prefix); |
- }); |
- _ut.test('test_undefinedIdentifier_metadata', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedIdentifier_metadata); |
- }); |
- _ut.test('test_undefinedIdentifier_methodInvocation', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedIdentifier_methodInvocation); |
- }); |
- _ut.test('test_undefinedIdentifier_private_getter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedIdentifier_private_getter); |
- }); |
- _ut.test('test_undefinedIdentifier_private_setter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedIdentifier_private_setter); |
- }); |
- _ut.test('test_undefinedNamedParameter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedNamedParameter); |
- }); |
- _ut.test('test_undefinedSetter', () { |
- final __test = new StaticWarningCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedSetter); |
- }); |
- }); |
- } |
-} |
-class ErrorResolverTest extends ResolverTestCase { |
- void test_breakLabelOnSwitchMember() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void m(int i) {", |
- " switch (i) {", |
- " l: case 0:", |
- " break;", |
- " case 1:", |
- " break l;", |
- " }", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ResolverErrorCode.BREAK_LABEL_ON_SWITCH_MEMBER]); |
- verify([source]); |
- } |
- void test_continueLabelOnSwitch() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void m(int i) {", |
- " l: switch (i) {", |
- " case 0:", |
- " continue l;", |
- " }", |
- " }", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [ResolverErrorCode.CONTINUE_LABEL_ON_SWITCH]); |
- verify([source]); |
- } |
- static dartSuite() { |
- _ut.group('ErrorResolverTest', () { |
- _ut.test('test_breakLabelOnSwitchMember', () { |
- final __test = new ErrorResolverTest(); |
- runJUnitTest(__test, __test.test_breakLabelOnSwitchMember); |
- }); |
- _ut.test('test_continueLabelOnSwitch', () { |
- final __test = new ErrorResolverTest(); |
- runJUnitTest(__test, __test.test_continueLabelOnSwitch); |
- }); |
- }); |
- } |
-} |
-/** |
- * Instances of the class `TestTypeProvider` implement a type provider that can be used by |
- * tests without creating the element model for the core library. |
- */ |
-class TestTypeProvider implements TypeProvider { |
- |
- /** |
- * The type representing the built-in type 'bool'. |
- */ |
- InterfaceType _boolType; |
- |
- /** |
- * The type representing the type 'bottom'. |
- */ |
- Type2 _bottomType; |
- |
- /** |
- * The type representing the built-in type 'double'. |
- */ |
- InterfaceType _doubleType; |
- |
- /** |
- * The type representing the built-in type 'dynamic'. |
- */ |
- Type2 _dynamicType; |
- |
- /** |
- * The type representing the built-in type 'Function'. |
- */ |
- InterfaceType _functionType; |
- |
- /** |
- * The type representing the built-in type 'int'. |
- */ |
- InterfaceType _intType; |
- |
- /** |
- * The type representing the built-in type 'Iterable'. |
- */ |
- InterfaceType _iterableType; |
- |
- /** |
- * The type representing the built-in type 'Iterator'. |
- */ |
- InterfaceType _iteratorType; |
- |
- /** |
- * The type representing the built-in type 'List'. |
- */ |
- InterfaceType _listType; |
- |
- /** |
- * The type representing the built-in type 'Map'. |
- */ |
- InterfaceType _mapType; |
- |
- /** |
- * The type representing the built-in type 'Null'. |
- */ |
- InterfaceType _nullType; |
- |
- /** |
- * The type representing the built-in type 'num'. |
- */ |
- InterfaceType _numType; |
- |
- /** |
- * The type representing the built-in type 'Object'. |
- */ |
- InterfaceType _objectType; |
- |
- /** |
- * The type representing the built-in type 'StackTrace'. |
- */ |
- InterfaceType _stackTraceType; |
- |
- /** |
- * The type representing the built-in type 'String'. |
- */ |
- InterfaceType _stringType; |
- |
- /** |
- * The type representing the built-in type 'Symbol'. |
- */ |
- InterfaceType _symbolType; |
- |
- /** |
- * The type representing the built-in type 'Type'. |
- */ |
- InterfaceType _typeType; |
- InterfaceType get boolType { |
- if (_boolType == null) { |
- _boolType = ElementFactory.classElement2("bool", []).type; |
- } |
- return _boolType; |
- } |
- Type2 get bottomType { |
- if (_bottomType == null) { |
- _bottomType = BottomTypeImpl.instance; |
- } |
- return _bottomType; |
- } |
- InterfaceType get doubleType { |
- if (_doubleType == null) { |
- initializeNumericTypes(); |
- } |
- return _doubleType; |
- } |
- Type2 get dynamicType { |
- if (_dynamicType == null) { |
- _dynamicType = DynamicTypeImpl.instance; |
- } |
- return _dynamicType; |
- } |
- InterfaceType get functionType { |
- if (_functionType == null) { |
- _functionType = ElementFactory.classElement2("Function", []).type; |
- } |
- return _functionType; |
- } |
- InterfaceType get intType { |
- if (_intType == null) { |
- initializeNumericTypes(); |
- } |
- return _intType; |
- } |
- InterfaceType get iterableType { |
- if (_iterableType == null) { |
- ClassElementImpl iterableElement = ElementFactory.classElement2("Iterable", ["E"]); |
- _iterableType = iterableElement.type; |
- Type2 eType = iterableElement.typeParameters[0].type; |
- iterableElement.accessors = <PropertyAccessorElement> [ |
- ElementFactory.getterElement("iterator", false, iteratorType.substitute4(<Type2> [eType])), |
- ElementFactory.getterElement("last", false, eType)]; |
- propagateTypeArguments(iterableElement); |
- } |
- return _iterableType; |
- } |
- InterfaceType get iteratorType { |
- if (_iteratorType == null) { |
- ClassElementImpl iteratorElement = ElementFactory.classElement2("Iterator", ["E"]); |
- _iteratorType = iteratorElement.type; |
- Type2 eType = iteratorElement.typeParameters[0].type; |
- iteratorElement.accessors = <PropertyAccessorElement> [ElementFactory.getterElement("current", false, eType)]; |
- propagateTypeArguments(iteratorElement); |
- } |
- return _iteratorType; |
- } |
- InterfaceType get listType { |
- if (_listType == null) { |
- ClassElementImpl listElement = ElementFactory.classElement2("List", ["E"]); |
- listElement.constructors = <ConstructorElement> [ElementFactory.constructorElement(listElement, null)]; |
- _listType = listElement.type; |
- Type2 eType = listElement.typeParameters[0].type; |
- InterfaceType iterableType = this.iterableType.substitute4(<Type2> [eType]); |
- listElement.interfaces = <InterfaceType> [iterableType]; |
- listElement.accessors = <PropertyAccessorElement> [ElementFactory.getterElement("length", false, intType)]; |
- listElement.methods = <MethodElement> [ |
- ElementFactory.methodElement("[]", eType, [intType]), |
- ElementFactory.methodElement("[]=", VoidTypeImpl.instance, [intType, eType]), |
- ElementFactory.methodElement("add", VoidTypeImpl.instance, [eType])]; |
- propagateTypeArguments(listElement); |
- } |
- return _listType; |
- } |
- InterfaceType get mapType { |
- if (_mapType == null) { |
- ClassElementImpl mapElement = ElementFactory.classElement2("Map", ["K", "V"]); |
- _mapType = mapElement.type; |
- mapElement.accessors = <PropertyAccessorElement> [ElementFactory.getterElement("length", false, intType)]; |
- propagateTypeArguments(mapElement); |
- } |
- return _mapType; |
- } |
- InterfaceType get nullType { |
- if (_nullType == null) { |
- _nullType = ElementFactory.classElement2("Null", []).type; |
- } |
- return _nullType; |
- } |
- InterfaceType get numType { |
- if (_numType == null) { |
- initializeNumericTypes(); |
- } |
- return _numType; |
- } |
- InterfaceType get objectType { |
- if (_objectType == null) { |
- ClassElementImpl objectElement = ElementFactory.object; |
- _objectType = objectElement.type; |
- objectElement.constructors = <ConstructorElement> [ElementFactory.constructorElement(objectElement, null)]; |
- objectElement.methods = <MethodElement> [ |
- ElementFactory.methodElement("toString", stringType, []), |
- ElementFactory.methodElement("==", boolType, [_objectType]), |
- ElementFactory.methodElement("noSuchMethod", dynamicType, [dynamicType])]; |
- objectElement.accessors = <PropertyAccessorElement> [ |
- ElementFactory.getterElement("hashCode", false, intType), |
- ElementFactory.getterElement("runtimeType", false, typeType)]; |
- } |
- return _objectType; |
- } |
- InterfaceType get stackTraceType { |
- if (_stackTraceType == null) { |
- _stackTraceType = ElementFactory.classElement2("StackTrace", []).type; |
- } |
- return _stackTraceType; |
- } |
- InterfaceType get stringType { |
- if (_stringType == null) { |
- _stringType = ElementFactory.classElement2("String", []).type; |
- ClassElementImpl stringElement = _stringType.element as ClassElementImpl; |
- stringElement.accessors = <PropertyAccessorElement> [ |
- ElementFactory.getterElement("isEmpty", false, boolType), |
- ElementFactory.getterElement("length", false, intType), |
- ElementFactory.getterElement("codeUnits", false, listType.substitute4(<Type2> [intType]))]; |
- stringElement.methods = <MethodElement> [ |
- ElementFactory.methodElement("+", _stringType, [_stringType]), |
- ElementFactory.methodElement("toLowerCase", _stringType, []), |
- ElementFactory.methodElement("toUpperCase", _stringType, [])]; |
- } |
- return _stringType; |
- } |
- InterfaceType get symbolType { |
- if (_symbolType == null) { |
- _symbolType = ElementFactory.classElement2("Symbol", []).type; |
- } |
- return _symbolType; |
- } |
- InterfaceType get typeType { |
- if (_typeType == null) { |
- _typeType = ElementFactory.classElement2("Type", []).type; |
- } |
- return _typeType; |
- } |
- |
- /** |
- * Initialize the numeric types. They are created as a group so that we can (a) create the right |
- * hierarchy and (b) add members to them. |
- */ |
- void initializeNumericTypes() { |
- ClassElementImpl numElement = ElementFactory.classElement2("num", []); |
- _numType = numElement.type; |
- ClassElementImpl intElement = ElementFactory.classElement("int", _numType, []); |
- _intType = intElement.type; |
- ClassElementImpl doubleElement = ElementFactory.classElement("double", _numType, []); |
- _doubleType = doubleElement.type; |
- boolType; |
- stringType; |
- numElement.methods = <MethodElement> [ |
- ElementFactory.methodElement("+", _numType, [_numType]), |
- ElementFactory.methodElement("-", _numType, [_numType]), |
- ElementFactory.methodElement("*", _numType, [_numType]), |
- ElementFactory.methodElement("%", _numType, [_numType]), |
- ElementFactory.methodElement("/", _doubleType, [_numType]), |
- ElementFactory.methodElement("~/", _numType, [_numType]), |
- ElementFactory.methodElement("-", _numType, []), |
- ElementFactory.methodElement("remainder", _numType, [_numType]), |
- ElementFactory.methodElement("<", _boolType, [_numType]), |
- ElementFactory.methodElement("<=", _boolType, [_numType]), |
- ElementFactory.methodElement(">", _boolType, [_numType]), |
- ElementFactory.methodElement(">=", _boolType, [_numType]), |
- ElementFactory.methodElement("isNaN", _boolType, []), |
- ElementFactory.methodElement("isNegative", _boolType, []), |
- ElementFactory.methodElement("isInfinite", _boolType, []), |
- ElementFactory.methodElement("abs", _numType, []), |
- ElementFactory.methodElement("floor", _numType, []), |
- ElementFactory.methodElement("ceil", _numType, []), |
- ElementFactory.methodElement("round", _numType, []), |
- ElementFactory.methodElement("truncate", _numType, []), |
- ElementFactory.methodElement("toInt", _intType, []), |
- ElementFactory.methodElement("toDouble", _doubleType, []), |
- ElementFactory.methodElement("toStringAsFixed", _stringType, [_intType]), |
- ElementFactory.methodElement("toStringAsExponential", _stringType, [_intType]), |
- ElementFactory.methodElement("toStringAsPrecision", _stringType, [_intType]), |
- ElementFactory.methodElement("toRadixString", _stringType, [_intType])]; |
- intElement.methods = <MethodElement> [ |
- ElementFactory.methodElement("&", _intType, [_intType]), |
- ElementFactory.methodElement("|", _intType, [_intType]), |
- ElementFactory.methodElement("^", _intType, [_intType]), |
- ElementFactory.methodElement("~", _intType, []), |
- ElementFactory.methodElement("<<", _intType, [_intType]), |
- ElementFactory.methodElement(">>", _intType, [_intType]), |
- ElementFactory.methodElement("-", _intType, []), |
- ElementFactory.methodElement("abs", _intType, []), |
- ElementFactory.methodElement("round", _intType, []), |
- ElementFactory.methodElement("floor", _intType, []), |
- ElementFactory.methodElement("ceil", _intType, []), |
- ElementFactory.methodElement("truncate", _intType, []), |
- ElementFactory.methodElement("toString", _stringType, [])]; |
- List<FieldElement> fields = <FieldElement> [ |
- ElementFactory.fieldElement("NAN", true, false, true, _doubleType), |
- ElementFactory.fieldElement("INFINITY", true, false, true, _doubleType), |
- ElementFactory.fieldElement("NEGATIVE_INFINITY", true, false, true, _doubleType), |
- ElementFactory.fieldElement("MIN_POSITIVE", true, false, true, _doubleType), |
- ElementFactory.fieldElement("MAX_FINITE", true, false, true, _doubleType)]; |
- doubleElement.fields = fields; |
- int fieldCount = fields.length; |
- List<PropertyAccessorElement> accessors = new List<PropertyAccessorElement>(fieldCount); |
- for (int i = 0; i < fieldCount; i++) { |
- accessors[i] = fields[i].getter; |
- } |
- doubleElement.accessors = accessors; |
- doubleElement.methods = <MethodElement> [ |
- ElementFactory.methodElement("remainder", _doubleType, [_numType]), |
- ElementFactory.methodElement("+", _doubleType, [_numType]), |
- ElementFactory.methodElement("-", _doubleType, [_numType]), |
- ElementFactory.methodElement("*", _doubleType, [_numType]), |
- ElementFactory.methodElement("%", _doubleType, [_numType]), |
- ElementFactory.methodElement("/", _doubleType, [_numType]), |
- ElementFactory.methodElement("~/", _doubleType, [_numType]), |
- ElementFactory.methodElement("-", _doubleType, []), |
- ElementFactory.methodElement("abs", _doubleType, []), |
- ElementFactory.methodElement("round", _doubleType, []), |
- ElementFactory.methodElement("floor", _doubleType, []), |
- ElementFactory.methodElement("ceil", _doubleType, []), |
- ElementFactory.methodElement("truncate", _doubleType, []), |
- ElementFactory.methodElement("toString", _stringType, [])]; |
- } |
- |
- /** |
- * Given a class element representing a class with type parameters, propagate those type |
- * parameters to all of the accessors, methods and constructors defined for the class. |
- * |
- * @param classElement the element representing the class with type parameters |
- */ |
- void propagateTypeArguments(ClassElementImpl classElement) { |
- List<Type2> typeArguments = TypeParameterTypeImpl.getTypes(classElement.typeParameters); |
- for (PropertyAccessorElement accessor in classElement.accessors) { |
- FunctionTypeImpl functionType = accessor.type as FunctionTypeImpl; |
- functionType.typeArguments = typeArguments; |
- } |
- for (MethodElement method in classElement.methods) { |
- FunctionTypeImpl functionType = method.type as FunctionTypeImpl; |
- functionType.typeArguments = typeArguments; |
- } |
- for (ConstructorElement constructor in classElement.constructors) { |
- FunctionTypeImpl functionType = constructor.type as FunctionTypeImpl; |
- functionType.typeArguments = typeArguments; |
- } |
- } |
-} |
-/** |
- * The class `AnalysisContextFactory` defines utility methods used to create analysis contexts |
- * for testing purposes. |
- */ |
-class AnalysisContextFactory { |
- |
- /** |
- * Create an analysis context that has a fake core library already resolved. |
- * |
- * @return the analysis context that was created |
- */ |
- static AnalysisContextImpl contextWithCore() { |
- AnalysisContext sdkContext = DirectoryBasedDartSdk.defaultSdk.context; |
- SourceFactory sourceFactory = sdkContext.sourceFactory; |
- TestTypeProvider provider = new TestTypeProvider(); |
- CompilationUnitElementImpl coreUnit = new CompilationUnitElementImpl("core.dart"); |
- Source coreSource = sourceFactory.forUri(DartSdk.DART_CORE); |
- sdkContext.setContents(coreSource, ""); |
- coreUnit.source = coreSource; |
- coreUnit.types = <ClassElement> [ |
- provider.boolType.element, |
- provider.doubleType.element, |
- provider.functionType.element, |
- provider.intType.element, |
- provider.listType.element, |
- provider.mapType.element, |
- provider.nullType.element, |
- provider.numType.element, |
- provider.objectType.element, |
- provider.stackTraceType.element, |
- provider.stringType.element, |
- provider.symbolType.element, |
- provider.typeType.element]; |
- coreUnit.functions = <FunctionElement> [ElementFactory.functionElement3("identical", provider.boolType.element, <ClassElement> [provider.objectType.element, provider.objectType.element], null)]; |
- LibraryElementImpl coreLibrary = new LibraryElementImpl(sdkContext, ASTFactory.libraryIdentifier2(["dart", "core"])); |
- coreLibrary.definingCompilationUnit = coreUnit; |
- CompilationUnitElementImpl htmlUnit = new CompilationUnitElementImpl("html_dartium.dart"); |
- Source htmlSource = sourceFactory.forUri(DartSdk.DART_HTML); |
- sdkContext.setContents(htmlSource, ""); |
- htmlUnit.source = htmlSource; |
- ClassElementImpl elementElement = ElementFactory.classElement2("Element", []); |
- InterfaceType elementType = elementElement.type; |
- ClassElementImpl documentElement = ElementFactory.classElement("Document", elementType, []); |
- ClassElementImpl htmlDocumentElement = ElementFactory.classElement("HtmlDocument", documentElement.type, []); |
- htmlDocumentElement.methods = <MethodElement> [ElementFactory.methodElement("query", elementType, <Type2> [provider.stringType])]; |
- htmlUnit.types = <ClassElement> [ |
- ElementFactory.classElement("AnchorElement", elementType, []), |
- ElementFactory.classElement("BodyElement", elementType, []), |
- ElementFactory.classElement("ButtonElement", elementType, []), |
- ElementFactory.classElement("DivElement", elementType, []), |
- documentElement, |
- elementElement, |
- htmlDocumentElement, |
- ElementFactory.classElement("InputElement", elementType, []), |
- ElementFactory.classElement("SelectElement", elementType, [])]; |
- htmlUnit.functions = <FunctionElement> [ElementFactory.functionElement3("query", elementElement, <ClassElement> [provider.stringType.element], ClassElementImpl.EMPTY_ARRAY)]; |
- TopLevelVariableElementImpl document = ElementFactory.topLevelVariableElement3("document", true, htmlDocumentElement.type); |
- htmlUnit.topLevelVariables = <TopLevelVariableElement> [document]; |
- htmlUnit.accessors = <PropertyAccessorElement> [document.getter]; |
- LibraryElementImpl htmlLibrary = new LibraryElementImpl(sdkContext, ASTFactory.libraryIdentifier2(["dart", "dom", "html"])); |
- htmlLibrary.definingCompilationUnit = htmlUnit; |
- Map<Source, LibraryElement> elementMap = new Map<Source, LibraryElement>(); |
- elementMap[coreSource] = coreLibrary; |
- elementMap[htmlSource] = htmlLibrary; |
- ((sdkContext as AnalysisContextImpl)).recordLibraryElements(elementMap); |
- AnalysisContextImpl context = new DelegatingAnalysisContextImpl(); |
- sourceFactory = new SourceFactory.con2([ |
- new DartUriResolver(sdkContext.sourceFactory.dartSdk), |
- new FileUriResolver()]); |
- context.sourceFactory = sourceFactory; |
- return context; |
- } |
-} |
-class LibraryImportScopeTest extends ResolverTestCase { |
- void test_conflictingImports() { |
- AnalysisContext context = new AnalysisContextImpl(); |
- String typeNameA = "A"; |
- String typeNameB = "B"; |
- String typeNameC = "C"; |
- ClassElement typeA = ElementFactory.classElement2(typeNameA, []); |
- ClassElement typeB1 = ElementFactory.classElement2(typeNameB, []); |
- ClassElement typeB2 = ElementFactory.classElement2(typeNameB, []); |
- ClassElement typeC = ElementFactory.classElement2(typeNameC, []); |
- LibraryElement importedLibrary1 = createTestLibrary2(context, "imported1", []); |
- ((importedLibrary1.definingCompilationUnit as CompilationUnitElementImpl)).types = <ClassElement> [typeA, typeB1]; |
- ImportElementImpl import1 = ElementFactory.importFor(importedLibrary1, null, []); |
- LibraryElement importedLibrary2 = createTestLibrary2(context, "imported2", []); |
- ((importedLibrary2.definingCompilationUnit as CompilationUnitElementImpl)).types = <ClassElement> [typeB2, typeC]; |
- ImportElementImpl import2 = ElementFactory.importFor(importedLibrary2, null, []); |
- LibraryElementImpl importingLibrary = createTestLibrary2(context, "importing", []); |
- importingLibrary.imports = <ImportElement> [import1, import2]; |
- { |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- Scope scope = new LibraryImportScope(importingLibrary, errorListener); |
- JUnitTestCase.assertEquals(typeA, scope.lookup(ASTFactory.identifier3(typeNameA), importingLibrary)); |
- errorListener.assertNoErrors(); |
- JUnitTestCase.assertEquals(typeC, scope.lookup(ASTFactory.identifier3(typeNameC), importingLibrary)); |
- errorListener.assertNoErrors(); |
- Element element = scope.lookup(ASTFactory.identifier3(typeNameB), importingLibrary); |
- errorListener.assertErrors2([StaticWarningCode.AMBIGUOUS_IMPORT]); |
- EngineTestCase.assertInstanceOf(MultiplyDefinedElement, element); |
- List<Element> conflictingElements = ((element as MultiplyDefinedElement)).conflictingElements; |
- EngineTestCase.assertLength(2, conflictingElements); |
- if (identical(conflictingElements[0], typeB1)) { |
- JUnitTestCase.assertSame(typeB2, conflictingElements[1]); |
- } else if (identical(conflictingElements[0], typeB2)) { |
- JUnitTestCase.assertSame(typeB1, conflictingElements[1]); |
- } else { |
- JUnitTestCase.assertSame(typeB1, conflictingElements[0]); |
- } |
- } |
- { |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- Scope scope = new LibraryImportScope(importingLibrary, errorListener); |
- Identifier identifier = ASTFactory.identifier3(typeNameB); |
- ASTFactory.methodDeclaration(null, ASTFactory.typeName3(identifier, []), null, null, ASTFactory.identifier3("foo"), null); |
- Element element = scope.lookup(identifier, importingLibrary); |
- errorListener.assertErrors2([StaticWarningCode.AMBIGUOUS_IMPORT]); |
- EngineTestCase.assertInstanceOf(MultiplyDefinedElement, element); |
- } |
- } |
- void test_creation_empty() { |
- LibraryElement definingLibrary = createTestLibrary(); |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- new LibraryImportScope(definingLibrary, errorListener); |
- } |
- void test_creation_nonEmpty() { |
- AnalysisContext context = new AnalysisContextImpl(); |
- String importedTypeName = "A"; |
- ClassElement importedType = new ClassElementImpl(ASTFactory.identifier3(importedTypeName)); |
- LibraryElement importedLibrary = createTestLibrary2(context, "imported", []); |
- ((importedLibrary.definingCompilationUnit as CompilationUnitElementImpl)).types = <ClassElement> [importedType]; |
- LibraryElementImpl definingLibrary = createTestLibrary2(context, "importing", []); |
- ImportElementImpl importElement = new ImportElementImpl(); |
- importElement.importedLibrary = importedLibrary; |
- definingLibrary.imports = <ImportElement> [importElement]; |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- Scope scope = new LibraryImportScope(definingLibrary, errorListener); |
- JUnitTestCase.assertEquals(importedType, scope.lookup(ASTFactory.identifier3(importedTypeName), definingLibrary)); |
- } |
- void test_getDefiningLibrary() { |
- LibraryElement definingLibrary = createTestLibrary(); |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- LibraryImportScope scope = new LibraryImportScope(definingLibrary, errorListener); |
- JUnitTestCase.assertEquals(definingLibrary, scope.definingLibrary); |
- } |
- void test_getErrorListener() { |
- LibraryElement definingLibrary = createTestLibrary(); |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- LibraryImportScope scope = new LibraryImportScope(definingLibrary, errorListener); |
- JUnitTestCase.assertEquals(errorListener, scope.errorListener); |
- } |
- void test_nonConflictingImports_fromSdk() { |
- AnalysisContext context = AnalysisContextFactory.contextWithCore(); |
- String typeName = "List"; |
- ClassElement type = ElementFactory.classElement2(typeName, []); |
- LibraryElement importedLibrary = createTestLibrary2(context, "lib", []); |
- ((importedLibrary.definingCompilationUnit as CompilationUnitElementImpl)).types = <ClassElement> [type]; |
- ImportElementImpl importCore = ElementFactory.importFor(context.getLibraryElement(context.sourceFactory.forUri("dart:core")), null, []); |
- ImportElementImpl importLib = ElementFactory.importFor(importedLibrary, null, []); |
- LibraryElementImpl importingLibrary = createTestLibrary2(context, "importing", []); |
- importingLibrary.imports = <ImportElement> [importCore, importLib]; |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- Scope scope = new LibraryImportScope(importingLibrary, errorListener); |
- JUnitTestCase.assertEquals(type, scope.lookup(ASTFactory.identifier3(typeName), importingLibrary)); |
- errorListener.assertErrors2([StaticWarningCode.CONFLICTING_DART_IMPORT]); |
- } |
- void test_nonConflictingImports_sameElement() { |
- AnalysisContext context = new AnalysisContextImpl(); |
- String typeNameA = "A"; |
- String typeNameB = "B"; |
- ClassElement typeA = ElementFactory.classElement2(typeNameA, []); |
- ClassElement typeB = ElementFactory.classElement2(typeNameB, []); |
- LibraryElement importedLibrary = createTestLibrary2(context, "imported", []); |
- ((importedLibrary.definingCompilationUnit as CompilationUnitElementImpl)).types = <ClassElement> [typeA, typeB]; |
- ImportElementImpl import1 = ElementFactory.importFor(importedLibrary, null, []); |
- ImportElementImpl import2 = ElementFactory.importFor(importedLibrary, null, []); |
- LibraryElementImpl importingLibrary = createTestLibrary2(context, "importing", []); |
- importingLibrary.imports = <ImportElement> [import1, import2]; |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- Scope scope = new LibraryImportScope(importingLibrary, errorListener); |
- JUnitTestCase.assertEquals(typeA, scope.lookup(ASTFactory.identifier3(typeNameA), importingLibrary)); |
- errorListener.assertNoErrors(); |
- JUnitTestCase.assertEquals(typeB, scope.lookup(ASTFactory.identifier3(typeNameB), importingLibrary)); |
- errorListener.assertNoErrors(); |
- } |
- void test_prefixedAndNonPrefixed() { |
- AnalysisContext context = new AnalysisContextImpl(); |
- String typeName = "C"; |
- String prefixName = "p"; |
- ClassElement prefixedType = ElementFactory.classElement2(typeName, []); |
- ClassElement nonPrefixedType = ElementFactory.classElement2(typeName, []); |
- LibraryElement prefixedLibrary = createTestLibrary2(context, "import.prefixed", []); |
- ((prefixedLibrary.definingCompilationUnit as CompilationUnitElementImpl)).types = <ClassElement> [prefixedType]; |
- ImportElementImpl prefixedImport = ElementFactory.importFor(prefixedLibrary, ElementFactory.prefix(prefixName), []); |
- LibraryElement nonPrefixedLibrary = createTestLibrary2(context, "import.nonPrefixed", []); |
- ((nonPrefixedLibrary.definingCompilationUnit as CompilationUnitElementImpl)).types = <ClassElement> [nonPrefixedType]; |
- ImportElementImpl nonPrefixedImport = ElementFactory.importFor(nonPrefixedLibrary, null, []); |
- LibraryElementImpl importingLibrary = createTestLibrary2(context, "importing", []); |
- importingLibrary.imports = <ImportElement> [prefixedImport, nonPrefixedImport]; |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- Scope scope = new LibraryImportScope(importingLibrary, errorListener); |
- Element prefixedElement = scope.lookup(ASTFactory.identifier5(prefixName, typeName), importingLibrary); |
- errorListener.assertNoErrors(); |
- JUnitTestCase.assertSame(prefixedType, prefixedElement); |
- Element nonPrefixedElement = scope.lookup(ASTFactory.identifier3(typeName), importingLibrary); |
- errorListener.assertNoErrors(); |
- JUnitTestCase.assertSame(nonPrefixedType, nonPrefixedElement); |
- } |
- static dartSuite() { |
- _ut.group('LibraryImportScopeTest', () { |
- _ut.test('test_conflictingImports', () { |
- final __test = new LibraryImportScopeTest(); |
- runJUnitTest(__test, __test.test_conflictingImports); |
- }); |
- _ut.test('test_creation_empty', () { |
- final __test = new LibraryImportScopeTest(); |
- runJUnitTest(__test, __test.test_creation_empty); |
- }); |
- _ut.test('test_creation_nonEmpty', () { |
- final __test = new LibraryImportScopeTest(); |
- runJUnitTest(__test, __test.test_creation_nonEmpty); |
- }); |
- _ut.test('test_getDefiningLibrary', () { |
- final __test = new LibraryImportScopeTest(); |
- runJUnitTest(__test, __test.test_getDefiningLibrary); |
- }); |
- _ut.test('test_getErrorListener', () { |
- final __test = new LibraryImportScopeTest(); |
- runJUnitTest(__test, __test.test_getErrorListener); |
- }); |
- _ut.test('test_nonConflictingImports_fromSdk', () { |
- final __test = new LibraryImportScopeTest(); |
- runJUnitTest(__test, __test.test_nonConflictingImports_fromSdk); |
- }); |
- _ut.test('test_nonConflictingImports_sameElement', () { |
- final __test = new LibraryImportScopeTest(); |
- runJUnitTest(__test, __test.test_nonConflictingImports_sameElement); |
- }); |
- _ut.test('test_prefixedAndNonPrefixed', () { |
- final __test = new LibraryImportScopeTest(); |
- runJUnitTest(__test, __test.test_prefixedAndNonPrefixed); |
- }); |
- }); |
- } |
-} |
-/** |
- * Instances of the class `ResolutionVerifier` verify that all of the nodes in an AST |
- * structure that should have been resolved were resolved. |
- */ |
-class ResolutionVerifier extends RecursiveASTVisitor<Object> { |
- |
- /** |
- * A set containing nodes that are known to not be resolvable and should therefore not cause the |
- * test to fail. |
- */ |
- Set<ASTNode> _knownExceptions; |
- |
- /** |
- * A list containing all of the AST nodes that were not resolved. |
- */ |
- List<ASTNode> _unresolvedNodes = new List<ASTNode>(); |
- |
- /** |
- * A list containing all of the AST nodes that were resolved to an element of the wrong type. |
- */ |
- List<ASTNode> _wrongTypedNodes = new List<ASTNode>(); |
- |
- /** |
- * Initialize a newly created verifier to verify that all of the nodes in the visited AST |
- * structures that are expected to have been resolved have an element associated with them. |
- */ |
- ResolutionVerifier() : this.con1(null); |
- |
- /** |
- * Initialize a newly created verifier to verify that all of the identifiers in the visited AST |
- * structures that are expected to have been resolved have an element associated with them. Nodes |
- * in the set of known exceptions are not expected to have been resolved, even if they normally |
- * would have been expected to have been resolved. |
- * |
- * @param knownExceptions a set containing nodes that are known to not be resolvable and should |
- * therefore not cause the test to fail |
- **/ |
- ResolutionVerifier.con1(Set<ASTNode> knownExceptions) { |
- this._knownExceptions = knownExceptions; |
- } |
- |
- /** |
- * Assert that all of the visited identifiers were resolved. |
- */ |
- void assertResolved() { |
- if (!_unresolvedNodes.isEmpty || !_wrongTypedNodes.isEmpty) { |
- PrintStringWriter writer = new PrintStringWriter(); |
- if (!_unresolvedNodes.isEmpty) { |
- writer.print("Failed to resolve "); |
- writer.print(_unresolvedNodes.length); |
- writer.println(" nodes:"); |
- printNodes(writer, _unresolvedNodes); |
- } |
- if (!_wrongTypedNodes.isEmpty) { |
- writer.print("Resolved "); |
- writer.print(_wrongTypedNodes.length); |
- writer.println(" to the wrong type of element:"); |
- printNodes(writer, _wrongTypedNodes); |
- } |
- JUnitTestCase.fail(writer.toString()); |
- } |
- } |
- Object visitBinaryExpression(BinaryExpression node) { |
- node.visitChildren(this); |
- if (!node.operator.isUserDefinableOperator) { |
- return null; |
- } |
- Type2 operandType = node.leftOperand.staticType; |
- if (operandType == null || operandType.isDynamic) { |
- return null; |
- } |
- return checkResolved2(node, node.staticElement, MethodElement); |
- } |
- Object visitCommentReference(CommentReference node) => null; |
- Object visitCompilationUnit(CompilationUnit node) { |
- node.visitChildren(this); |
- return checkResolved2(node, node.element, CompilationUnitElement); |
- } |
- Object visitExportDirective(ExportDirective node) => checkResolved2(node, node.element, ExportElement); |
- Object visitFunctionDeclaration(FunctionDeclaration node) { |
- node.visitChildren(this); |
- if (node.element is LibraryElement) { |
- _wrongTypedNodes.add(node); |
- } |
- return null; |
- } |
- Object visitFunctionExpressionInvocation(FunctionExpressionInvocation node) { |
- node.visitChildren(this); |
- return null; |
- } |
- Object visitImportDirective(ImportDirective node) { |
- checkResolved2(node, node.element, ImportElement); |
- SimpleIdentifier prefix = node.prefix; |
- if (prefix == null) { |
- return null; |
- } |
- return checkResolved2(prefix, prefix.staticElement, PrefixElement); |
- } |
- Object visitIndexExpression(IndexExpression node) { |
- node.visitChildren(this); |
- Type2 targetType = node.realTarget.staticType; |
- if (targetType == null || targetType.isDynamic) { |
- return null; |
- } |
- return checkResolved2(node, node.staticElement, MethodElement); |
- } |
- Object visitLibraryDirective(LibraryDirective node) => checkResolved2(node, node.element, LibraryElement); |
- Object visitNamedExpression(NamedExpression node) => node.expression.accept(this); |
- Object visitPartDirective(PartDirective node) => checkResolved2(node, node.element, CompilationUnitElement); |
- Object visitPartOfDirective(PartOfDirective node) => checkResolved2(node, node.element, LibraryElement); |
- Object visitPostfixExpression(PostfixExpression node) { |
- node.visitChildren(this); |
- if (!node.operator.isUserDefinableOperator) { |
- return null; |
- } |
- Type2 operandType = node.operand.staticType; |
- if (operandType == null || operandType.isDynamic) { |
- return null; |
- } |
- return checkResolved2(node, node.staticElement, MethodElement); |
- } |
- Object visitPrefixedIdentifier(PrefixedIdentifier node) { |
- SimpleIdentifier prefix = node.prefix; |
- prefix.accept(this); |
- Type2 prefixType = prefix.staticType; |
- if (prefixType == null || prefixType.isDynamic) { |
- return null; |
- } |
- return checkResolved(node, node.staticElement); |
- } |
- Object visitPrefixExpression(PrefixExpression node) { |
- node.visitChildren(this); |
- if (!node.operator.isUserDefinableOperator) { |
- return null; |
- } |
- Type2 operandType = node.operand.staticType; |
- if (operandType == null || operandType.isDynamic) { |
- return null; |
- } |
- return checkResolved2(node, node.staticElement, MethodElement); |
- } |
- Object visitPropertyAccess(PropertyAccess node) { |
- Expression target = node.realTarget; |
- target.accept(this); |
- Type2 targetType = target.staticType; |
- if (targetType == null || targetType.isDynamic) { |
- return null; |
- } |
- return node.propertyName.accept(this); |
- } |
- Object visitSimpleIdentifier(SimpleIdentifier node) { |
- if (node.name == "void") { |
- return null; |
- } |
- ASTNode parent = node.parent; |
- if (parent is MethodInvocation) { |
- MethodInvocation invocation = parent as MethodInvocation; |
- if (identical(invocation.methodName, node)) { |
- Expression target = invocation.realTarget; |
- Type2 targetType = target == null ? null : target.staticType; |
- if (targetType == null || targetType.isDynamic) { |
- return null; |
- } |
- } |
- } |
- return checkResolved(node, node.staticElement); |
- } |
- Object checkResolved(ASTNode node, Element element) => checkResolved2(node, element, null); |
- Object checkResolved2(ASTNode node, Element element, Type expectedClass) { |
- if (element == null) { |
- if (_knownExceptions == null || !_knownExceptions.contains(node)) { |
- _unresolvedNodes.add(node); |
- } |
- } else if (expectedClass != null) { |
- if (!isInstanceOf(element, expectedClass)) { |
- _wrongTypedNodes.add(node); |
- } |
- } |
- return null; |
- } |
- String getFileName(ASTNode node) { |
- if (node != null) { |
- ASTNode root = node.root; |
- if (root is CompilationUnit) { |
- CompilationUnit rootCU = root as CompilationUnit; |
- if (rootCU.element != null) { |
- return rootCU.element.source.fullName; |
- } else { |
- return "<unknown file- CompilationUnit.getElement() returned null>"; |
- } |
- } else { |
- return "<unknown file- CompilationUnit.getRoot() is not a CompilationUnit>"; |
- } |
- } |
- return "<unknown file- ASTNode is null>"; |
- } |
- void printNodes(PrintStringWriter writer, List<ASTNode> nodes) { |
- for (ASTNode identifier in nodes) { |
- writer.print(" "); |
- writer.print(identifier.toString()); |
- writer.print(" ("); |
- writer.print(getFileName(identifier)); |
- writer.print(" : "); |
- writer.print(identifier.offset); |
- writer.println(")"); |
- } |
- } |
-} |
-class MemberMapTest extends JUnitTestCase { |
- |
- /** |
- * The null type. |
- */ |
- InterfaceType _nullType; |
- void setUp() { |
- _nullType = new TestTypeProvider().nullType; |
- } |
- void test_MemberMap_copyConstructor() { |
- MethodElement m1 = ElementFactory.methodElement("m1", _nullType, []); |
- MethodElement m2 = ElementFactory.methodElement("m2", _nullType, []); |
- MethodElement m3 = ElementFactory.methodElement("m3", _nullType, []); |
- MemberMap map = new MemberMap(); |
- map.put(m1.name, m1); |
- map.put(m2.name, m2); |
- map.put(m3.name, m3); |
- MemberMap copy = new MemberMap.con2(map); |
- JUnitTestCase.assertEquals(map.size, copy.size); |
- JUnitTestCase.assertEquals(m1, copy.get(m1.name)); |
- JUnitTestCase.assertEquals(m2, copy.get(m2.name)); |
- JUnitTestCase.assertEquals(m3, copy.get(m3.name)); |
- } |
- void test_MemberMap_override() { |
- MethodElement m1 = ElementFactory.methodElement("m", _nullType, []); |
- MethodElement m2 = ElementFactory.methodElement("m", _nullType, []); |
- MemberMap map = new MemberMap(); |
- map.put(m1.name, m1); |
- map.put(m2.name, m2); |
- JUnitTestCase.assertEquals(1, map.size); |
- JUnitTestCase.assertEquals(m2, map.get("m")); |
- } |
- void test_MemberMap_put() { |
- MethodElement m1 = ElementFactory.methodElement("m1", _nullType, []); |
- MemberMap map = new MemberMap(); |
- JUnitTestCase.assertEquals(0, map.size); |
- map.put(m1.name, m1); |
- JUnitTestCase.assertEquals(1, map.size); |
- JUnitTestCase.assertEquals(m1, map.get("m1")); |
- } |
- static dartSuite() { |
- _ut.group('MemberMapTest', () { |
- _ut.test('test_MemberMap_copyConstructor', () { |
- final __test = new MemberMapTest(); |
- runJUnitTest(__test, __test.test_MemberMap_copyConstructor); |
- }); |
- _ut.test('test_MemberMap_override', () { |
- final __test = new MemberMapTest(); |
- runJUnitTest(__test, __test.test_MemberMap_override); |
- }); |
- _ut.test('test_MemberMap_put', () { |
- final __test = new MemberMapTest(); |
- runJUnitTest(__test, __test.test_MemberMap_put); |
- }); |
- }); |
- } |
-} |
-class LibraryScopeTest extends ResolverTestCase { |
- void test_creation_empty() { |
- LibraryElement definingLibrary = createTestLibrary(); |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- new LibraryScope(definingLibrary, errorListener); |
- } |
- void test_creation_nonEmpty() { |
- AnalysisContext context = new AnalysisContextImpl(); |
- String importedTypeName = "A"; |
- ClassElement importedType = new ClassElementImpl(ASTFactory.identifier3(importedTypeName)); |
- LibraryElement importedLibrary = createTestLibrary2(context, "imported", []); |
- ((importedLibrary.definingCompilationUnit as CompilationUnitElementImpl)).types = <ClassElement> [importedType]; |
- LibraryElementImpl definingLibrary = createTestLibrary2(context, "importing", []); |
- ImportElementImpl importElement = new ImportElementImpl(); |
- importElement.importedLibrary = importedLibrary; |
- definingLibrary.imports = <ImportElement> [importElement]; |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- Scope scope = new LibraryScope(definingLibrary, errorListener); |
- JUnitTestCase.assertEquals(importedType, scope.lookup(ASTFactory.identifier3(importedTypeName), definingLibrary)); |
- } |
- void test_getDefiningLibrary() { |
- LibraryElement definingLibrary = createTestLibrary(); |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- LibraryScope scope = new LibraryScope(definingLibrary, errorListener); |
- JUnitTestCase.assertEquals(definingLibrary, scope.definingLibrary); |
- } |
- void test_getErrorListener() { |
- LibraryElement definingLibrary = createTestLibrary(); |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- LibraryScope scope = new LibraryScope(definingLibrary, errorListener); |
- JUnitTestCase.assertEquals(errorListener, scope.errorListener); |
- } |
- static dartSuite() { |
- _ut.group('LibraryScopeTest', () { |
- _ut.test('test_creation_empty', () { |
- final __test = new LibraryScopeTest(); |
- runJUnitTest(__test, __test.test_creation_empty); |
- }); |
- _ut.test('test_creation_nonEmpty', () { |
- final __test = new LibraryScopeTest(); |
- runJUnitTest(__test, __test.test_creation_nonEmpty); |
- }); |
- _ut.test('test_getDefiningLibrary', () { |
- final __test = new LibraryScopeTest(); |
- runJUnitTest(__test, __test.test_getDefiningLibrary); |
- }); |
- _ut.test('test_getErrorListener', () { |
- final __test = new LibraryScopeTest(); |
- runJUnitTest(__test, __test.test_getErrorListener); |
- }); |
- }); |
- } |
-} |
-class StaticTypeAnalyzerTest extends EngineTestCase { |
- |
- /** |
- * The error listener to which errors will be reported. |
- */ |
- GatheringErrorListener _listener; |
- |
- /** |
- * The resolver visitor used to create the analyzer. |
- */ |
- ResolverVisitor _visitor; |
- |
- /** |
- * The analyzer being used to analyze the test cases. |
- */ |
- StaticTypeAnalyzer _analyzer; |
- |
- /** |
- * The type provider used to access the types. |
- */ |
- TestTypeProvider _typeProvider; |
- void fail_visitFunctionExpressionInvocation() { |
- JUnitTestCase.fail("Not yet tested"); |
- _listener.assertNoErrors(); |
- } |
- void fail_visitMethodInvocation() { |
- JUnitTestCase.fail("Not yet tested"); |
- _listener.assertNoErrors(); |
- } |
- void fail_visitSimpleIdentifier() { |
- JUnitTestCase.fail("Not yet tested"); |
- _listener.assertNoErrors(); |
- } |
- void setUp() { |
- _listener = new GatheringErrorListener(); |
- _typeProvider = new TestTypeProvider(); |
- _analyzer = createAnalyzer(); |
- } |
- void test_visitAdjacentStrings() { |
- Expression node = ASTFactory.adjacentStrings([resolvedString("a"), resolvedString("b")]); |
- JUnitTestCase.assertSame(_typeProvider.stringType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitArgumentDefinitionTest() { |
- Expression node = ASTFactory.argumentDefinitionTest("p"); |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitAsExpression() { |
- ClassElement superclass = ElementFactory.classElement2("A", []); |
- InterfaceType superclassType = superclass.type; |
- ClassElement subclass = ElementFactory.classElement("B", superclassType, []); |
- Expression node = ASTFactory.asExpression(ASTFactory.thisExpression(), ASTFactory.typeName(subclass, [])); |
- JUnitTestCase.assertSame(subclass.type, analyze2(node, superclassType)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitAssignmentExpression_compound() { |
- InterfaceType numType = _typeProvider.numType; |
- SimpleIdentifier identifier = resolvedVariable(_typeProvider.intType, "i"); |
- AssignmentExpression node = ASTFactory.assignmentExpression(identifier, TokenType.PLUS_EQ, resolvedInteger(1)); |
- MethodElement plusMethod = getMethod(numType, "+"); |
- node.staticElement = plusMethod; |
- JUnitTestCase.assertSame(numType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitAssignmentExpression_simple() { |
- InterfaceType intType = _typeProvider.intType; |
- Expression node = ASTFactory.assignmentExpression(resolvedVariable(intType, "i"), TokenType.EQ, resolvedInteger(0)); |
- JUnitTestCase.assertSame(intType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBinaryExpression_equals() { |
- Expression node = ASTFactory.binaryExpression(resolvedInteger(2), TokenType.EQ_EQ, resolvedInteger(3)); |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBinaryExpression_logicalAnd() { |
- Expression node = ASTFactory.binaryExpression(ASTFactory.booleanLiteral(false), TokenType.AMPERSAND_AMPERSAND, ASTFactory.booleanLiteral(true)); |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBinaryExpression_logicalOr() { |
- Expression node = ASTFactory.binaryExpression(ASTFactory.booleanLiteral(false), TokenType.BAR_BAR, ASTFactory.booleanLiteral(true)); |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBinaryExpression_notEquals() { |
- Expression node = ASTFactory.binaryExpression(resolvedInteger(2), TokenType.BANG_EQ, resolvedInteger(3)); |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBinaryExpression_plusID() { |
- BinaryExpression node = ASTFactory.binaryExpression(resolvedInteger(1), TokenType.PLUS, resolvedDouble(2.0)); |
- node.staticElement = getMethod(_typeProvider.numType, "+"); |
- JUnitTestCase.assertSame(_typeProvider.doubleType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBinaryExpression_plusII() { |
- BinaryExpression node = ASTFactory.binaryExpression(resolvedInteger(1), TokenType.PLUS, resolvedInteger(2)); |
- node.staticElement = getMethod(_typeProvider.numType, "+"); |
- JUnitTestCase.assertSame(_typeProvider.intType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBinaryExpression_slash() { |
- BinaryExpression node = ASTFactory.binaryExpression(resolvedInteger(2), TokenType.SLASH, resolvedInteger(2)); |
- node.staticElement = getMethod(_typeProvider.numType, "/"); |
- JUnitTestCase.assertSame(_typeProvider.doubleType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBinaryExpression_star_notSpecial() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- InterfaceType typeA = classA.type; |
- MethodElement operator = ElementFactory.methodElement("*", typeA, [_typeProvider.doubleType]); |
- classA.methods = <MethodElement> [operator]; |
- BinaryExpression node = ASTFactory.binaryExpression(ASTFactory.asExpression(ASTFactory.identifier3("a"), ASTFactory.typeName(classA, [])), TokenType.PLUS, resolvedDouble(2.0)); |
- node.staticElement = operator; |
- JUnitTestCase.assertSame(typeA, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBinaryExpression_starID() { |
- BinaryExpression node = ASTFactory.binaryExpression(resolvedInteger(1), TokenType.PLUS, resolvedDouble(2.0)); |
- node.staticElement = getMethod(_typeProvider.numType, "*"); |
- JUnitTestCase.assertSame(_typeProvider.doubleType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBooleanLiteral_false() { |
- Expression node = ASTFactory.booleanLiteral(false); |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitBooleanLiteral_true() { |
- Expression node = ASTFactory.booleanLiteral(true); |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitCascadeExpression() { |
- Expression node = ASTFactory.cascadeExpression(resolvedString("a"), [ASTFactory.propertyAccess2(null, "length")]); |
- JUnitTestCase.assertSame(_typeProvider.stringType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitConditionalExpression_differentTypes() { |
- Expression node = ASTFactory.conditionalExpression(ASTFactory.booleanLiteral(true), resolvedDouble(1.0), resolvedInteger(0)); |
- JUnitTestCase.assertSame(_typeProvider.numType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitConditionalExpression_sameTypes() { |
- Expression node = ASTFactory.conditionalExpression(ASTFactory.booleanLiteral(true), resolvedInteger(1), resolvedInteger(0)); |
- JUnitTestCase.assertSame(_typeProvider.intType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitDoubleLiteral() { |
- Expression node = ASTFactory.doubleLiteral(4.33); |
- JUnitTestCase.assertSame(_typeProvider.doubleType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFunctionExpression_named_block() { |
- Type2 dynamicType = _typeProvider.dynamicType; |
- FormalParameter p1 = ASTFactory.namedFormalParameter(ASTFactory.simpleFormalParameter3("p1"), resolvedInteger(0)); |
- setType(p1, dynamicType); |
- FormalParameter p2 = ASTFactory.namedFormalParameter(ASTFactory.simpleFormalParameter3("p2"), resolvedInteger(0)); |
- setType(p2, dynamicType); |
- FunctionExpression node = resolvedFunctionExpression(ASTFactory.formalParameterList([p1, p2]), ASTFactory.blockFunctionBody2([])); |
- analyze3(p1); |
- analyze3(p2); |
- Type2 resultType = analyze(node); |
- Map<String, Type2> expectedNamedTypes = new Map<String, Type2>(); |
- expectedNamedTypes["p1"] = dynamicType; |
- expectedNamedTypes["p2"] = dynamicType; |
- assertFunctionType(dynamicType, null, null, expectedNamedTypes, resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFunctionExpression_named_expression() { |
- Type2 dynamicType = _typeProvider.dynamicType; |
- FormalParameter p = ASTFactory.namedFormalParameter(ASTFactory.simpleFormalParameter3("p"), resolvedInteger(0)); |
- setType(p, dynamicType); |
- FunctionExpression node = resolvedFunctionExpression(ASTFactory.formalParameterList([p]), ASTFactory.expressionFunctionBody(resolvedInteger(0))); |
- analyze3(p); |
- Type2 resultType = analyze(node); |
- Map<String, Type2> expectedNamedTypes = new Map<String, Type2>(); |
- expectedNamedTypes["p"] = dynamicType; |
- assertFunctionType(_typeProvider.intType, null, null, expectedNamedTypes, resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFunctionExpression_normal_block() { |
- Type2 dynamicType = _typeProvider.dynamicType; |
- FormalParameter p1 = ASTFactory.simpleFormalParameter3("p1"); |
- setType(p1, dynamicType); |
- FormalParameter p2 = ASTFactory.simpleFormalParameter3("p2"); |
- setType(p2, dynamicType); |
- FunctionExpression node = resolvedFunctionExpression(ASTFactory.formalParameterList([p1, p2]), ASTFactory.blockFunctionBody2([])); |
- analyze3(p1); |
- analyze3(p2); |
- Type2 resultType = analyze(node); |
- assertFunctionType(dynamicType, <Type2> [dynamicType, dynamicType], null, null, resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFunctionExpression_normal_expression() { |
- Type2 dynamicType = _typeProvider.dynamicType; |
- FormalParameter p = ASTFactory.simpleFormalParameter3("p"); |
- setType(p, dynamicType); |
- FunctionExpression node = resolvedFunctionExpression(ASTFactory.formalParameterList([p]), ASTFactory.expressionFunctionBody(resolvedInteger(0))); |
- analyze3(p); |
- Type2 resultType = analyze(node); |
- assertFunctionType(_typeProvider.intType, <Type2> [dynamicType], null, null, resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFunctionExpression_normalAndNamed_block() { |
- Type2 dynamicType = _typeProvider.dynamicType; |
- FormalParameter p1 = ASTFactory.simpleFormalParameter3("p1"); |
- setType(p1, dynamicType); |
- FormalParameter p2 = ASTFactory.namedFormalParameter(ASTFactory.simpleFormalParameter3("p2"), resolvedInteger(0)); |
- setType(p2, dynamicType); |
- FunctionExpression node = resolvedFunctionExpression(ASTFactory.formalParameterList([p1, p2]), ASTFactory.blockFunctionBody2([])); |
- analyze3(p2); |
- Type2 resultType = analyze(node); |
- Map<String, Type2> expectedNamedTypes = new Map<String, Type2>(); |
- expectedNamedTypes["p2"] = dynamicType; |
- assertFunctionType(dynamicType, <Type2> [dynamicType], null, expectedNamedTypes, resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFunctionExpression_normalAndNamed_expression() { |
- Type2 dynamicType = _typeProvider.dynamicType; |
- FormalParameter p1 = ASTFactory.simpleFormalParameter3("p1"); |
- setType(p1, dynamicType); |
- FormalParameter p2 = ASTFactory.namedFormalParameter(ASTFactory.simpleFormalParameter3("p2"), resolvedInteger(0)); |
- setType(p2, dynamicType); |
- FunctionExpression node = resolvedFunctionExpression(ASTFactory.formalParameterList([p1, p2]), ASTFactory.expressionFunctionBody(resolvedInteger(0))); |
- analyze3(p2); |
- Type2 resultType = analyze(node); |
- Map<String, Type2> expectedNamedTypes = new Map<String, Type2>(); |
- expectedNamedTypes["p2"] = dynamicType; |
- assertFunctionType(_typeProvider.intType, <Type2> [dynamicType], null, expectedNamedTypes, resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFunctionExpression_normalAndPositional_block() { |
- Type2 dynamicType = _typeProvider.dynamicType; |
- FormalParameter p1 = ASTFactory.simpleFormalParameter3("p1"); |
- setType(p1, dynamicType); |
- FormalParameter p2 = ASTFactory.positionalFormalParameter(ASTFactory.simpleFormalParameter3("p2"), resolvedInteger(0)); |
- setType(p2, dynamicType); |
- FunctionExpression node = resolvedFunctionExpression(ASTFactory.formalParameterList([p1, p2]), ASTFactory.blockFunctionBody2([])); |
- analyze3(p1); |
- analyze3(p2); |
- Type2 resultType = analyze(node); |
- assertFunctionType(dynamicType, <Type2> [dynamicType], <Type2> [dynamicType], null, resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFunctionExpression_normalAndPositional_expression() { |
- Type2 dynamicType = _typeProvider.dynamicType; |
- FormalParameter p1 = ASTFactory.simpleFormalParameter3("p1"); |
- setType(p1, dynamicType); |
- FormalParameter p2 = ASTFactory.positionalFormalParameter(ASTFactory.simpleFormalParameter3("p2"), resolvedInteger(0)); |
- setType(p2, dynamicType); |
- FunctionExpression node = resolvedFunctionExpression(ASTFactory.formalParameterList([p1, p2]), ASTFactory.expressionFunctionBody(resolvedInteger(0))); |
- analyze3(p1); |
- analyze3(p2); |
- Type2 resultType = analyze(node); |
- assertFunctionType(_typeProvider.intType, <Type2> [dynamicType], <Type2> [dynamicType], null, resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFunctionExpression_positional_block() { |
- Type2 dynamicType = _typeProvider.dynamicType; |
- FormalParameter p1 = ASTFactory.positionalFormalParameter(ASTFactory.simpleFormalParameter3("p1"), resolvedInteger(0)); |
- setType(p1, dynamicType); |
- FormalParameter p2 = ASTFactory.positionalFormalParameter(ASTFactory.simpleFormalParameter3("p2"), resolvedInteger(0)); |
- setType(p2, dynamicType); |
- FunctionExpression node = resolvedFunctionExpression(ASTFactory.formalParameterList([p1, p2]), ASTFactory.blockFunctionBody2([])); |
- analyze3(p1); |
- analyze3(p2); |
- Type2 resultType = analyze(node); |
- assertFunctionType(dynamicType, null, <Type2> [dynamicType, dynamicType], null, resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitFunctionExpression_positional_expression() { |
- Type2 dynamicType = _typeProvider.dynamicType; |
- FormalParameter p = ASTFactory.positionalFormalParameter(ASTFactory.simpleFormalParameter3("p"), resolvedInteger(0)); |
- setType(p, dynamicType); |
- FunctionExpression node = resolvedFunctionExpression(ASTFactory.formalParameterList([p]), ASTFactory.expressionFunctionBody(resolvedInteger(0))); |
- analyze3(p); |
- Type2 resultType = analyze(node); |
- assertFunctionType(_typeProvider.intType, null, <Type2> [dynamicType], null, resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitIndexExpression_getter() { |
- InterfaceType listType = _typeProvider.listType; |
- SimpleIdentifier identifier = resolvedVariable(listType, "a"); |
- IndexExpression node = ASTFactory.indexExpression(identifier, resolvedInteger(2)); |
- MethodElement indexMethod = listType.element.methods[0]; |
- node.staticElement = indexMethod; |
- JUnitTestCase.assertSame(listType.typeArguments[0], analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitIndexExpression_setter() { |
- InterfaceType listType = _typeProvider.listType; |
- SimpleIdentifier identifier = resolvedVariable(listType, "a"); |
- IndexExpression node = ASTFactory.indexExpression(identifier, resolvedInteger(2)); |
- MethodElement indexMethod = listType.element.methods[1]; |
- node.staticElement = indexMethod; |
- ASTFactory.assignmentExpression(node, TokenType.EQ, ASTFactory.integer(0)); |
- JUnitTestCase.assertSame(listType.typeArguments[0], analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitIndexExpression_typeParameters() { |
- InterfaceType intType = _typeProvider.intType; |
- InterfaceType listType = _typeProvider.listType; |
- MethodElement methodElement = getMethod(listType, "[]"); |
- SimpleIdentifier identifier = ASTFactory.identifier3("list"); |
- InterfaceType listOfIntType = listType.substitute4(<Type2> [intType]); |
- identifier.staticType = listOfIntType; |
- IndexExpression indexExpression = ASTFactory.indexExpression(identifier, ASTFactory.integer(0)); |
- MethodElement indexMethod = MethodMember.from(methodElement, listOfIntType); |
- indexExpression.staticElement = indexMethod; |
- JUnitTestCase.assertSame(intType, analyze(indexExpression)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitIndexExpression_typeParameters_inSetterContext() { |
- InterfaceType intType = _typeProvider.intType; |
- InterfaceType listType = _typeProvider.listType; |
- MethodElement methodElement = getMethod(listType, "[]="); |
- SimpleIdentifier identifier = ASTFactory.identifier3("list"); |
- InterfaceType listOfIntType = listType.substitute4(<Type2> [intType]); |
- identifier.staticType = listOfIntType; |
- IndexExpression indexExpression = ASTFactory.indexExpression(identifier, ASTFactory.integer(0)); |
- MethodElement indexMethod = MethodMember.from(methodElement, listOfIntType); |
- indexExpression.staticElement = indexMethod; |
- ASTFactory.assignmentExpression(indexExpression, TokenType.EQ, ASTFactory.integer(0)); |
- JUnitTestCase.assertSame(intType, analyze(indexExpression)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitInstanceCreationExpression_named() { |
- ClassElementImpl classElement = ElementFactory.classElement2("C", []); |
- String constructorName = "m"; |
- ConstructorElementImpl constructor = ElementFactory.constructorElement(classElement, constructorName); |
- constructor.returnType = classElement.type; |
- FunctionTypeImpl constructorType = new FunctionTypeImpl.con1(constructor); |
- constructor.type = constructorType; |
- classElement.constructors = <ConstructorElement> [constructor]; |
- InstanceCreationExpression node = ASTFactory.instanceCreationExpression2(null, ASTFactory.typeName(classElement, []), [ASTFactory.identifier3(constructorName)]); |
- node.staticElement = constructor; |
- JUnitTestCase.assertSame(classElement.type, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitInstanceCreationExpression_typeParameters() { |
- ClassElementImpl elementC = ElementFactory.classElement2("C", ["E"]); |
- ClassElementImpl elementI = ElementFactory.classElement2("I", []); |
- ConstructorElementImpl constructor = ElementFactory.constructorElement(elementC, null); |
- elementC.constructors = <ConstructorElement> [constructor]; |
- constructor.returnType = elementC.type; |
- FunctionTypeImpl constructorType = new FunctionTypeImpl.con1(constructor); |
- constructor.type = constructorType; |
- TypeName typeName = ASTFactory.typeName(elementC, [ASTFactory.typeName(elementI, [])]); |
- typeName.type = elementC.type.substitute4(<Type2> [elementI.type]); |
- InstanceCreationExpression node = ASTFactory.instanceCreationExpression2(null, typeName, []); |
- node.staticElement = constructor; |
- InterfaceType interfaceType = analyze(node) as InterfaceType; |
- List<Type2> typeArgs = interfaceType.typeArguments; |
- JUnitTestCase.assertEquals(1, typeArgs.length); |
- JUnitTestCase.assertEquals(elementI.type, typeArgs[0]); |
- _listener.assertNoErrors(); |
- } |
- void test_visitInstanceCreationExpression_unnamed() { |
- ClassElementImpl classElement = ElementFactory.classElement2("C", []); |
- ConstructorElementImpl constructor = ElementFactory.constructorElement(classElement, null); |
- constructor.returnType = classElement.type; |
- FunctionTypeImpl constructorType = new FunctionTypeImpl.con1(constructor); |
- constructor.type = constructorType; |
- classElement.constructors = <ConstructorElement> [constructor]; |
- InstanceCreationExpression node = ASTFactory.instanceCreationExpression2(null, ASTFactory.typeName(classElement, []), []); |
- node.staticElement = constructor; |
- JUnitTestCase.assertSame(classElement.type, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitIntegerLiteral() { |
- Expression node = resolvedInteger(42); |
- JUnitTestCase.assertSame(_typeProvider.intType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitIsExpression_negated() { |
- Expression node = ASTFactory.isExpression(resolvedString("a"), true, ASTFactory.typeName4("String", [])); |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitIsExpression_notNegated() { |
- Expression node = ASTFactory.isExpression(resolvedString("a"), false, ASTFactory.typeName4("String", [])); |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitListLiteral_empty() { |
- Expression node = ASTFactory.listLiteral([]); |
- Type2 resultType = analyze(node); |
- assertType2(_typeProvider.listType.substitute4(<Type2> [_typeProvider.dynamicType]), resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitListLiteral_nonEmpty() { |
- Expression node = ASTFactory.listLiteral([resolvedInteger(0)]); |
- Type2 resultType = analyze(node); |
- assertType2(_typeProvider.listType.substitute4(<Type2> [_typeProvider.dynamicType]), resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitMapLiteral_empty() { |
- Expression node = ASTFactory.mapLiteral2([]); |
- Type2 resultType = analyze(node); |
- assertType2(_typeProvider.mapType.substitute4(<Type2> [_typeProvider.dynamicType, _typeProvider.dynamicType]), resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitMapLiteral_nonEmpty() { |
- Expression node = ASTFactory.mapLiteral2([ASTFactory.mapLiteralEntry("k", resolvedInteger(0))]); |
- Type2 resultType = analyze(node); |
- assertType2(_typeProvider.mapType.substitute4(<Type2> [_typeProvider.dynamicType, _typeProvider.dynamicType]), resultType); |
- _listener.assertNoErrors(); |
- } |
- void test_visitMethodInvocation_then() { |
- Expression node = ASTFactory.methodInvocation(null, "then", []); |
- analyze(node); |
- _listener.assertNoErrors(); |
- } |
- void test_visitNamedExpression() { |
- Expression node = ASTFactory.namedExpression2("n", resolvedString("a")); |
- JUnitTestCase.assertSame(_typeProvider.stringType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitNullLiteral() { |
- Expression node = ASTFactory.nullLiteral(); |
- JUnitTestCase.assertSame(_typeProvider.bottomType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitParenthesizedExpression() { |
- Expression node = ASTFactory.parenthesizedExpression(resolvedInteger(0)); |
- JUnitTestCase.assertSame(_typeProvider.intType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPostfixExpression_minusMinus() { |
- PostfixExpression node = ASTFactory.postfixExpression(resolvedInteger(0), TokenType.MINUS_MINUS); |
- JUnitTestCase.assertSame(_typeProvider.intType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPostfixExpression_plusPlus() { |
- PostfixExpression node = ASTFactory.postfixExpression(resolvedInteger(0), TokenType.PLUS_PLUS); |
- JUnitTestCase.assertSame(_typeProvider.intType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixedIdentifier_getter() { |
- Type2 boolType = _typeProvider.boolType; |
- PropertyAccessorElementImpl getter = ElementFactory.getterElement("b", false, boolType); |
- PrefixedIdentifier node = ASTFactory.identifier5("a", "b"); |
- node.identifier.staticElement = getter; |
- JUnitTestCase.assertSame(boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixedIdentifier_setter() { |
- Type2 boolType = _typeProvider.boolType; |
- FieldElementImpl field = ElementFactory.fieldElement("b", false, false, false, boolType); |
- PropertyAccessorElement setter = field.setter; |
- PrefixedIdentifier node = ASTFactory.identifier5("a", "b"); |
- node.identifier.staticElement = setter; |
- JUnitTestCase.assertSame(boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixedIdentifier_variable() { |
- VariableElementImpl variable = ElementFactory.localVariableElement2("b"); |
- variable.type = _typeProvider.boolType; |
- PrefixedIdentifier node = ASTFactory.identifier5("a", "b"); |
- node.identifier.staticElement = variable; |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixExpression_bang() { |
- PrefixExpression node = ASTFactory.prefixExpression(TokenType.BANG, resolvedInteger(0)); |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixExpression_minus() { |
- PrefixExpression node = ASTFactory.prefixExpression(TokenType.MINUS, resolvedInteger(0)); |
- MethodElement minusMethod = getMethod(_typeProvider.numType, "-"); |
- node.staticElement = minusMethod; |
- JUnitTestCase.assertSame(_typeProvider.numType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixExpression_minusMinus() { |
- PrefixExpression node = ASTFactory.prefixExpression(TokenType.MINUS_MINUS, resolvedInteger(0)); |
- MethodElement minusMethod = getMethod(_typeProvider.numType, "-"); |
- node.staticElement = minusMethod; |
- JUnitTestCase.assertSame(_typeProvider.intType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixExpression_not() { |
- Expression node = ASTFactory.prefixExpression(TokenType.BANG, ASTFactory.booleanLiteral(true)); |
- JUnitTestCase.assertSame(_typeProvider.boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixExpression_plusPlus() { |
- PrefixExpression node = ASTFactory.prefixExpression(TokenType.PLUS_PLUS, resolvedInteger(0)); |
- MethodElement plusMethod = getMethod(_typeProvider.numType, "+"); |
- node.staticElement = plusMethod; |
- JUnitTestCase.assertSame(_typeProvider.intType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPrefixExpression_tilde() { |
- PrefixExpression node = ASTFactory.prefixExpression(TokenType.TILDE, resolvedInteger(0)); |
- MethodElement tildeMethod = getMethod(_typeProvider.intType, "~"); |
- node.staticElement = tildeMethod; |
- JUnitTestCase.assertSame(_typeProvider.intType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPropertyAccess_getter() { |
- Type2 boolType = _typeProvider.boolType; |
- PropertyAccessorElementImpl getter = ElementFactory.getterElement("b", false, boolType); |
- PropertyAccess node = ASTFactory.propertyAccess2(ASTFactory.identifier3("a"), "b"); |
- node.propertyName.staticElement = getter; |
- JUnitTestCase.assertSame(boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitPropertyAccess_setter() { |
- Type2 boolType = _typeProvider.boolType; |
- FieldElementImpl field = ElementFactory.fieldElement("b", false, false, false, boolType); |
- PropertyAccessorElement setter = field.setter; |
- PropertyAccess node = ASTFactory.propertyAccess2(ASTFactory.identifier3("a"), "b"); |
- node.propertyName.staticElement = setter; |
- JUnitTestCase.assertSame(boolType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitSimpleStringLiteral() { |
- Expression node = resolvedString("a"); |
- JUnitTestCase.assertSame(_typeProvider.stringType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitStringInterpolation() { |
- Expression node = ASTFactory.string([ |
- ASTFactory.interpolationString("a", "a"), |
- ASTFactory.interpolationExpression(resolvedString("b")), |
- ASTFactory.interpolationString("c", "c")]); |
- JUnitTestCase.assertSame(_typeProvider.stringType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitSuperExpression() { |
- InterfaceType superType = ElementFactory.classElement2("A", []).type; |
- InterfaceType thisType = ElementFactory.classElement("B", superType, []).type; |
- Expression node = ASTFactory.superExpression(); |
- JUnitTestCase.assertSame(thisType, analyze2(node, thisType)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitSymbolLiteral() { |
- JUnitTestCase.assertSame(_typeProvider.symbolType, analyze(ASTFactory.symbolLiteral(["a"]))); |
- } |
- void test_visitThisExpression() { |
- InterfaceType thisType = ElementFactory.classElement("B", ElementFactory.classElement2("A", []).type, []).type; |
- Expression node = ASTFactory.thisExpression(); |
- JUnitTestCase.assertSame(thisType, analyze2(node, thisType)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitThrowExpression_withoutValue() { |
- Expression node = ASTFactory.throwExpression(); |
- JUnitTestCase.assertSame(_typeProvider.bottomType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- void test_visitThrowExpression_withValue() { |
- Expression node = ASTFactory.throwExpression2(resolvedInteger(0)); |
- JUnitTestCase.assertSame(_typeProvider.bottomType, analyze(node)); |
- _listener.assertNoErrors(); |
- } |
- |
- /** |
- * Return the type associated with the given expression after the static type analyzer has |
- * computed a type for it. |
- * |
- * @param node the expression with which the type is associated |
- * @return the type associated with the expression |
- */ |
- Type2 analyze(Expression node) => analyze2(node, null); |
- |
- /** |
- * Return the type associated with the given expression after the static type analyzer has |
- * computed a type for it. |
- * |
- * @param node the expression with which the type is associated |
- * @param thisType the type of 'this' |
- * @return the type associated with the expression |
- */ |
- Type2 analyze2(Expression node, InterfaceType thisType) { |
- try { |
- _analyzer.thisType_J2DAccessor = thisType; |
- } on JavaException catch (exception) { |
- throw new IllegalArgumentException("Could not set type of 'this'", exception); |
- } |
- node.accept(_analyzer); |
- return node.staticType; |
- } |
- |
- /** |
- * Return the type associated with the given parameter after the static type analyzer has computed |
- * a type for it. |
- * |
- * @param node the parameter with which the type is associated |
- * @return the type associated with the parameter |
- */ |
- Type2 analyze3(FormalParameter node) { |
- node.accept(_analyzer); |
- return ((node.identifier.staticElement as ParameterElement)).type; |
- } |
- |
- /** |
- * Assert that the actual type is a function type with the expected characteristics. |
- * |
- * @param expectedReturnType the expected return type of the function |
- * @param expectedNormalTypes the expected types of the normal parameters |
- * @param expectedOptionalTypes the expected types of the optional parameters |
- * @param expectedNamedTypes the expected types of the named parameters |
- * @param actualType the type being tested |
- */ |
- void assertFunctionType(Type2 expectedReturnType, List<Type2> expectedNormalTypes, List<Type2> expectedOptionalTypes, Map<String, Type2> expectedNamedTypes, Type2 actualType) { |
- EngineTestCase.assertInstanceOf(FunctionType, actualType); |
- FunctionType functionType = actualType as FunctionType; |
- List<Type2> normalTypes = functionType.normalParameterTypes; |
- if (expectedNormalTypes == null) { |
- EngineTestCase.assertLength(0, normalTypes); |
- } else { |
- int expectedCount = expectedNormalTypes.length; |
- EngineTestCase.assertLength(expectedCount, normalTypes); |
- for (int i = 0; i < expectedCount; i++) { |
- JUnitTestCase.assertSame(expectedNormalTypes[i], normalTypes[i]); |
- } |
- } |
- List<Type2> optionalTypes = functionType.optionalParameterTypes; |
- if (expectedOptionalTypes == null) { |
- EngineTestCase.assertLength(0, optionalTypes); |
- } else { |
- int expectedCount = expectedOptionalTypes.length; |
- EngineTestCase.assertLength(expectedCount, optionalTypes); |
- for (int i = 0; i < expectedCount; i++) { |
- JUnitTestCase.assertSame(expectedOptionalTypes[i], optionalTypes[i]); |
- } |
- } |
- Map<String, Type2> namedTypes = functionType.namedParameterTypes; |
- if (expectedNamedTypes == null) { |
- EngineTestCase.assertSize2(0, namedTypes); |
- } else { |
- EngineTestCase.assertSize2(expectedNamedTypes.length, namedTypes); |
- for (MapEntry<String, Type2> entry in getMapEntrySet(expectedNamedTypes)) { |
- JUnitTestCase.assertSame(entry.getValue(), namedTypes[entry.getKey()]); |
- } |
- } |
- JUnitTestCase.assertSame(expectedReturnType, functionType.returnType); |
- } |
- void assertType(InterfaceTypeImpl expectedType, InterfaceTypeImpl actualType) { |
- JUnitTestCase.assertEquals(expectedType.displayName, actualType.displayName); |
- JUnitTestCase.assertEquals(expectedType.element, actualType.element); |
- List<Type2> expectedArguments = expectedType.typeArguments; |
- int length = expectedArguments.length; |
- List<Type2> actualArguments = actualType.typeArguments; |
- EngineTestCase.assertLength(length, actualArguments); |
- for (int i = 0; i < length; i++) { |
- assertType2(expectedArguments[i], actualArguments[i]); |
- } |
- } |
- void assertType2(Type2 expectedType, Type2 actualType) { |
- if (expectedType is InterfaceTypeImpl) { |
- EngineTestCase.assertInstanceOf(InterfaceTypeImpl, actualType); |
- assertType(expectedType as InterfaceTypeImpl, actualType as InterfaceTypeImpl); |
- } |
- } |
- |
- /** |
- * Create the analyzer used by the tests. |
- * |
- * @return the analyzer to be used by the tests |
- */ |
- StaticTypeAnalyzer createAnalyzer() { |
- AnalysisContextImpl context = new AnalysisContextImpl(); |
- SourceFactory sourceFactory = new SourceFactory.con2([new DartUriResolver(DirectoryBasedDartSdk.defaultSdk)]); |
- context.sourceFactory = sourceFactory; |
- FileBasedSource source = new FileBasedSource.con1(sourceFactory.contentCache, FileUtilities2.createFile("/lib.dart")); |
- CompilationUnitElementImpl definingCompilationUnit = new CompilationUnitElementImpl("lib.dart"); |
- definingCompilationUnit.source = source; |
- LibraryElementImpl definingLibrary = new LibraryElementImpl(context, null); |
- definingLibrary.definingCompilationUnit = definingCompilationUnit; |
- Library library = new Library(context, _listener, source); |
- library.libraryElement = definingLibrary; |
- _visitor = new ResolverVisitor.con1(library, source, _typeProvider); |
- _visitor.overrideManager.enterScope(); |
- try { |
- return _visitor.typeAnalyzer_J2DAccessor as StaticTypeAnalyzer; |
- } on JavaException catch (exception) { |
- throw new IllegalArgumentException("Could not create analyzer", exception); |
- } |
- } |
- |
- /** |
- * Return an integer literal that has been resolved to the correct type. |
- * |
- * @param value the value of the literal |
- * @return an integer literal that has been resolved to the correct type |
- */ |
- DoubleLiteral resolvedDouble(double value) { |
- DoubleLiteral literal = ASTFactory.doubleLiteral(value); |
- literal.staticType = _typeProvider.doubleType; |
- return literal; |
- } |
- |
- /** |
- * Create a function expression that has an element associated with it, where the element has an |
- * incomplete type associated with it (just like the one |
- * [ElementBuilder#visitFunctionExpression] would have built if we had |
- * run it). |
- * |
- * @param parameters the parameters to the function |
- * @param body the body of the function |
- * @return a resolved function expression |
- */ |
- FunctionExpression resolvedFunctionExpression(FormalParameterList parameters, FunctionBody body) { |
- List<ParameterElement> parameterElements = new List<ParameterElement>(); |
- for (FormalParameter parameter in parameters.parameters) { |
- ParameterElementImpl element = new ParameterElementImpl.con1(parameter.identifier); |
- element.parameterKind = parameter.kind; |
- element.type = _typeProvider.dynamicType; |
- parameter.identifier.staticElement = element; |
- parameterElements.add(element); |
- } |
- FunctionExpression node = ASTFactory.functionExpression2(parameters, body); |
- FunctionElementImpl element = new FunctionElementImpl.con1(null); |
- element.parameters = new List.from(parameterElements); |
- element.type = new FunctionTypeImpl.con1(element); |
- node.element = element; |
- return node; |
- } |
- |
- /** |
- * Return an integer literal that has been resolved to the correct type. |
- * |
- * @param value the value of the literal |
- * @return an integer literal that has been resolved to the correct type |
- */ |
- IntegerLiteral resolvedInteger(int value) { |
- IntegerLiteral literal = ASTFactory.integer(value); |
- literal.staticType = _typeProvider.intType; |
- return literal; |
- } |
- |
- /** |
- * Return a string literal that has been resolved to the correct type. |
- * |
- * @param value the value of the literal |
- * @return a string literal that has been resolved to the correct type |
- */ |
- SimpleStringLiteral resolvedString(String value) { |
- SimpleStringLiteral string = ASTFactory.string2(value); |
- string.staticType = _typeProvider.stringType; |
- return string; |
- } |
- |
- /** |
- * Return a simple identifier that has been resolved to a variable element with the given type. |
- * |
- * @param type the type of the variable being represented |
- * @param variableName the name of the variable |
- * @return a simple identifier that has been resolved to a variable element with the given type |
- */ |
- SimpleIdentifier resolvedVariable(InterfaceType type, String variableName) { |
- SimpleIdentifier identifier = ASTFactory.identifier3(variableName); |
- VariableElementImpl element = ElementFactory.localVariableElement(identifier); |
- element.type = type; |
- identifier.staticElement = element; |
- identifier.staticType = type; |
- return identifier; |
- } |
- |
- /** |
- * Set the type of the given parameter to the given type. |
- * |
- * @param parameter the parameter whose type is to be set |
- * @param type the new type of the given parameter |
- */ |
- void setType(FormalParameter parameter, Type2 type) { |
- SimpleIdentifier identifier = parameter.identifier; |
- Element element = identifier.staticElement; |
- if (element is! ParameterElement) { |
- element = new ParameterElementImpl.con1(identifier); |
- identifier.staticElement = element; |
- } |
- ((element as ParameterElementImpl)).type = type; |
- } |
- static dartSuite() { |
- _ut.group('StaticTypeAnalyzerTest', () { |
- _ut.test('test_visitAdjacentStrings', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitAdjacentStrings); |
- }); |
- _ut.test('test_visitArgumentDefinitionTest', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitArgumentDefinitionTest); |
- }); |
- _ut.test('test_visitAsExpression', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitAsExpression); |
- }); |
- _ut.test('test_visitAssignmentExpression_compound', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitAssignmentExpression_compound); |
- }); |
- _ut.test('test_visitAssignmentExpression_simple', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitAssignmentExpression_simple); |
- }); |
- _ut.test('test_visitBinaryExpression_equals', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitBinaryExpression_equals); |
- }); |
- _ut.test('test_visitBinaryExpression_logicalAnd', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitBinaryExpression_logicalAnd); |
- }); |
- _ut.test('test_visitBinaryExpression_logicalOr', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitBinaryExpression_logicalOr); |
- }); |
- _ut.test('test_visitBinaryExpression_notEquals', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitBinaryExpression_notEquals); |
- }); |
- _ut.test('test_visitBinaryExpression_plusID', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitBinaryExpression_plusID); |
- }); |
- _ut.test('test_visitBinaryExpression_plusII', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitBinaryExpression_plusII); |
- }); |
- _ut.test('test_visitBinaryExpression_slash', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitBinaryExpression_slash); |
- }); |
- _ut.test('test_visitBinaryExpression_starID', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitBinaryExpression_starID); |
- }); |
- _ut.test('test_visitBinaryExpression_star_notSpecial', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitBinaryExpression_star_notSpecial); |
- }); |
- _ut.test('test_visitBooleanLiteral_false', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitBooleanLiteral_false); |
- }); |
- _ut.test('test_visitBooleanLiteral_true', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitBooleanLiteral_true); |
- }); |
- _ut.test('test_visitCascadeExpression', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitCascadeExpression); |
- }); |
- _ut.test('test_visitConditionalExpression_differentTypes', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitConditionalExpression_differentTypes); |
- }); |
- _ut.test('test_visitConditionalExpression_sameTypes', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitConditionalExpression_sameTypes); |
- }); |
- _ut.test('test_visitDoubleLiteral', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitDoubleLiteral); |
- }); |
- _ut.test('test_visitFunctionExpression_named_block', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitFunctionExpression_named_block); |
- }); |
- _ut.test('test_visitFunctionExpression_named_expression', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitFunctionExpression_named_expression); |
- }); |
- _ut.test('test_visitFunctionExpression_normalAndNamed_block', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitFunctionExpression_normalAndNamed_block); |
- }); |
- _ut.test('test_visitFunctionExpression_normalAndNamed_expression', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitFunctionExpression_normalAndNamed_expression); |
- }); |
- _ut.test('test_visitFunctionExpression_normalAndPositional_block', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitFunctionExpression_normalAndPositional_block); |
- }); |
- _ut.test('test_visitFunctionExpression_normalAndPositional_expression', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitFunctionExpression_normalAndPositional_expression); |
- }); |
- _ut.test('test_visitFunctionExpression_normal_block', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitFunctionExpression_normal_block); |
- }); |
- _ut.test('test_visitFunctionExpression_normal_expression', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitFunctionExpression_normal_expression); |
- }); |
- _ut.test('test_visitFunctionExpression_positional_block', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitFunctionExpression_positional_block); |
- }); |
- _ut.test('test_visitFunctionExpression_positional_expression', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitFunctionExpression_positional_expression); |
- }); |
- _ut.test('test_visitIndexExpression_getter', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitIndexExpression_getter); |
- }); |
- _ut.test('test_visitIndexExpression_setter', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitIndexExpression_setter); |
- }); |
- _ut.test('test_visitIndexExpression_typeParameters', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitIndexExpression_typeParameters); |
- }); |
- _ut.test('test_visitIndexExpression_typeParameters_inSetterContext', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitIndexExpression_typeParameters_inSetterContext); |
- }); |
- _ut.test('test_visitInstanceCreationExpression_named', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitInstanceCreationExpression_named); |
- }); |
- _ut.test('test_visitInstanceCreationExpression_typeParameters', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitInstanceCreationExpression_typeParameters); |
- }); |
- _ut.test('test_visitInstanceCreationExpression_unnamed', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitInstanceCreationExpression_unnamed); |
- }); |
- _ut.test('test_visitIntegerLiteral', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitIntegerLiteral); |
- }); |
- _ut.test('test_visitIsExpression_negated', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitIsExpression_negated); |
- }); |
- _ut.test('test_visitIsExpression_notNegated', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitIsExpression_notNegated); |
- }); |
- _ut.test('test_visitListLiteral_empty', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitListLiteral_empty); |
- }); |
- _ut.test('test_visitListLiteral_nonEmpty', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitListLiteral_nonEmpty); |
- }); |
- _ut.test('test_visitMapLiteral_empty', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitMapLiteral_empty); |
- }); |
- _ut.test('test_visitMapLiteral_nonEmpty', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitMapLiteral_nonEmpty); |
- }); |
- _ut.test('test_visitMethodInvocation_then', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitMethodInvocation_then); |
- }); |
- _ut.test('test_visitNamedExpression', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitNamedExpression); |
- }); |
- _ut.test('test_visitNullLiteral', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitNullLiteral); |
- }); |
- _ut.test('test_visitParenthesizedExpression', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitParenthesizedExpression); |
- }); |
- _ut.test('test_visitPostfixExpression_minusMinus', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPostfixExpression_minusMinus); |
- }); |
- _ut.test('test_visitPostfixExpression_plusPlus', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPostfixExpression_plusPlus); |
- }); |
- _ut.test('test_visitPrefixExpression_bang', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPrefixExpression_bang); |
- }); |
- _ut.test('test_visitPrefixExpression_minus', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPrefixExpression_minus); |
- }); |
- _ut.test('test_visitPrefixExpression_minusMinus', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPrefixExpression_minusMinus); |
- }); |
- _ut.test('test_visitPrefixExpression_not', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPrefixExpression_not); |
- }); |
- _ut.test('test_visitPrefixExpression_plusPlus', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPrefixExpression_plusPlus); |
- }); |
- _ut.test('test_visitPrefixExpression_tilde', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPrefixExpression_tilde); |
- }); |
- _ut.test('test_visitPrefixedIdentifier_getter', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPrefixedIdentifier_getter); |
- }); |
- _ut.test('test_visitPrefixedIdentifier_setter', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPrefixedIdentifier_setter); |
- }); |
- _ut.test('test_visitPrefixedIdentifier_variable', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPrefixedIdentifier_variable); |
- }); |
- _ut.test('test_visitPropertyAccess_getter', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPropertyAccess_getter); |
- }); |
- _ut.test('test_visitPropertyAccess_setter', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitPropertyAccess_setter); |
- }); |
- _ut.test('test_visitSimpleStringLiteral', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitSimpleStringLiteral); |
- }); |
- _ut.test('test_visitStringInterpolation', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitStringInterpolation); |
- }); |
- _ut.test('test_visitSuperExpression', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitSuperExpression); |
- }); |
- _ut.test('test_visitSymbolLiteral', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitSymbolLiteral); |
- }); |
- _ut.test('test_visitThisExpression', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitThisExpression); |
- }); |
- _ut.test('test_visitThrowExpression_withValue', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitThrowExpression_withValue); |
- }); |
- _ut.test('test_visitThrowExpression_withoutValue', () { |
- final __test = new StaticTypeAnalyzerTest(); |
- runJUnitTest(__test, __test.test_visitThrowExpression_withoutValue); |
- }); |
- }); |
- } |
-} |
-class NonHintCodeTest extends ResolverTestCase { |
- void test_deadCode_deadBlock_conditionalElse_debugConst() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "const bool DEBUG = true;", |
- "f() {", |
- " DEBUG ? 1 : 2;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_conditionalIf_debugConst() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "const bool DEBUG = false;", |
- "f() {", |
- " DEBUG ? 1 : 2;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_else() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "const bool DEBUG = true;", |
- "f() {", |
- " if(DEBUG) {} else {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_if_debugConst_prefixedIdentifier() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static const bool DEBUG = false;", |
- "}", |
- "f() {", |
- " if(A.DEBUG) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_if_debugConst_prefixedIdentifier2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib2.dart';", |
- "f() {", |
- " if(A.DEBUG) {}", |
- "}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource([ |
- "library lib2;", |
- "class A {", |
- " static const bool DEBUG = false;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_if_debugConst_propertyAccessor() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib2.dart' as LIB;", |
- "f() {", |
- " if(LIB.A.DEBUG) {}", |
- "}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource([ |
- "library lib2;", |
- "class A {", |
- " static const bool DEBUG = false;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_if_debugConst_simpleIdentifier() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "const bool DEBUG = false;", |
- "f() {", |
- " if(DEBUG) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_deadCode_deadBlock_while_debugConst() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "const bool DEBUG = false;", |
- "f() {", |
- " while(DEBUG) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_deadCode_deadCatch_onCatchSubtype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {}", |
- "f() {", |
- " try {} on B catch (e) {} on A catch (e) {} catch (e) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_deadCode_deadOperandLHS_and_debugConst() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "const bool DEBUG = false;", |
- "f() {", |
- " bool b = DEBUG && false;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_deadCode_deadOperandLHS_or_debugConst() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "const bool DEBUG = true;", |
- "f() {", |
- " bool b = DEBUG || true;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_divisionOptimization() { |
- Source source = addSource(EngineTestCase.createSource(["f(int x, int y) {", " var v = x / y.toInt();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_divisionOptimization_supressIfDivisionNotDefinedInCore() { |
- Source source = addSource(EngineTestCase.createSource(["f(x, y) {", " var v = (x / y).toInt();", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_divisionOptimization_supressIfDivisionOverridden() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " num operator /(x) {}", |
- "}", |
- "f(A x, A y) {", |
- " var v = (x / y).toInt();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_duplicateImport_as() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart';", |
- "import 'lib1.dart' as one;", |
- "A a;", |
- "one.A a2;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_duplicateImport_hide() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart';", |
- "import 'lib1.dart' hide A;", |
- "A a;", |
- "B b;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}", "class B {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_duplicateImport_show() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart';", |
- "import 'lib1.dart' show A;", |
- "A a;", |
- "B b;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}", "class B {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_overriddingPrivateMember_sameLibrary() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " _m(int x) => 0;", |
- "}", |
- "class B extends A {", |
- " _m(int x) => 0;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_overrideEqualsButNotHashCode() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " bool operator ==(x) {}", |
- " get hashCode => 0;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_proxy_annotation_prefixed() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'meta.dart';", |
- "@proxy", |
- "class A {}", |
- "f(var a) {", |
- " a = new A();", |
- " a.m();", |
- " var x = a.g;", |
- " a.s = 1;", |
- " var y = a + a;", |
- " a++;", |
- " ++a;", |
- "}"])); |
- addSource2("/meta.dart", EngineTestCase.createSource([ |
- "library meta;", |
- "const proxy = const _Proxy();", |
- "class _Proxy { const _Proxy(); }"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_proxy_annotation_prefixed2() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'meta.dart';", |
- "@proxy", |
- "class A {}", |
- "class B {", |
- " f(var a) {", |
- " a = new A();", |
- " a.m();", |
- " var x = a.g;", |
- " a.s = 1;", |
- " var y = a + a;", |
- " a++;", |
- " ++a;", |
- " }", |
- "}"])); |
- addSource2("/meta.dart", EngineTestCase.createSource([ |
- "library meta;", |
- "const proxy = const _Proxy();", |
- "class _Proxy { const _Proxy(); }"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_proxy_annotation_prefixed3() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'meta.dart';", |
- "class B {", |
- " f(var a) {", |
- " a = new A();", |
- " a.m();", |
- " var x = a.g;", |
- " a.s = 1;", |
- " var y = a + a;", |
- " a++;", |
- " ++a;", |
- " }", |
- "}", |
- "@proxy", |
- "class A {}"])); |
- addSource2("/meta.dart", EngineTestCase.createSource([ |
- "library meta;", |
- "const proxy = const _Proxy();", |
- "class _Proxy { const _Proxy(); }"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedGetter_inSubtype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " get b => 0;", |
- "}", |
- "f(var a) {", |
- " if(a is A) {", |
- " return a.b;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedMethod_assignmentExpression_inSubtype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " operator +(B b) {return new B();}", |
- "}", |
- "f(var a, var a2) {", |
- " a = new A();", |
- " a2 = new A();", |
- " a += a2;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedMethod_inSubtype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " b() {}", |
- "}", |
- "f() {", |
- " var a = new A();", |
- " a.b();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedOperator_binaryExpression_inSubtype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " operator +(B b) {}", |
- "}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a + 1;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedOperator_indexBoth_inSubtype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " operator [](int index) {}", |
- "}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a[0]++;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedOperator_indexGetter_inSubtype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " operator [](int index) {}", |
- "}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a[0];", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedOperator_indexSetter_inSubtype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " operator []=(i, v) {}", |
- "}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a[0] = 1;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedOperator_postfixExpression() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " operator +(B b) {return new B();}", |
- "}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a++;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedOperator_prefixExpression() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " operator +(B b) {return new B();}", |
- "}", |
- "f(var a) {", |
- " if(a is A) {", |
- " ++a;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_undefinedSetter_inSubtype() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {}", |
- "class B extends A {", |
- " set b(x) {}", |
- "}", |
- "f(var a) {", |
- " if(a is A) {", |
- " a.b = 0;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_unnecessaryCast_13855_parameter_A() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A{", |
- " a() {}", |
- "}", |
- "class B<E> {", |
- " E e;", |
- " m() {", |
- " (e as A).a();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_unnecessaryCast_dynamic_type() { |
- Source source = addSource(EngineTestCase.createSource(["m(v) {", " var b = v as Object;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_unnecessaryCast_type_dynamic() { |
- Source source = addSource(EngineTestCase.createSource(["m(v) {", " var b = Object as dynamic;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_unusedImport_annotationOnDirective() { |
- Source source = addSource(EngineTestCase.createSource(["library L;", "@A()", "import 'lib1.dart';"])); |
- Source source2 = addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {", " const A() {}", "}"])); |
- resolve(source); |
- assertErrors(source, []); |
- verify([source, source2]); |
- } |
- void test_unusedImport_core_library() { |
- Source source = addSource(EngineTestCase.createSource(["library L;", "import 'dart:core';"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_unusedImport_export() { |
- Source source = addSource(EngineTestCase.createSource(["library L;", "import 'lib1.dart';", "Two two;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "export 'lib2.dart';", "class One {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "class Two {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_unusedImport_export_infiniteLoop() { |
- Source source = addSource(EngineTestCase.createSource(["library L;", "import 'lib1.dart';", "Two two;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "export 'lib2.dart';", "class One {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "export 'lib3.dart';", "class Two {}"])); |
- addSource2("/lib3.dart", EngineTestCase.createSource(["library lib3;", "export 'lib2.dart';", "class Three {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_unusedImport_export2() { |
- Source source = addSource(EngineTestCase.createSource(["library L;", "import 'lib1.dart';", "Three three;"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "export 'lib2.dart';", "class One {}"])); |
- addSource2("/lib2.dart", EngineTestCase.createSource(["library lib2;", "export 'lib3.dart';", "class Two {}"])); |
- addSource2("/lib3.dart", EngineTestCase.createSource(["library lib3;", "class Three {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_unusedImport_prefix_topLevelFunction() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "library L;", |
- "import 'lib1.dart' hide topLevelFunction;", |
- "import 'lib1.dart' as one show topLevelFunction;", |
- "class A {", |
- " static void x() {", |
- " One o;", |
- " one.topLevelFunction();", |
- " }", |
- "}"])); |
- addSource2("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class One {}", "topLevelFunction() {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- static dartSuite() { |
- _ut.group('NonHintCodeTest', () { |
- _ut.test('test_deadCode_deadBlock_conditionalElse_debugConst', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_conditionalElse_debugConst); |
- }); |
- _ut.test('test_deadCode_deadBlock_conditionalIf_debugConst', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_conditionalIf_debugConst); |
- }); |
- _ut.test('test_deadCode_deadBlock_else', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_else); |
- }); |
- _ut.test('test_deadCode_deadBlock_if_debugConst_prefixedIdentifier', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_if_debugConst_prefixedIdentifier); |
- }); |
- _ut.test('test_deadCode_deadBlock_if_debugConst_prefixedIdentifier2', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_if_debugConst_prefixedIdentifier2); |
- }); |
- _ut.test('test_deadCode_deadBlock_if_debugConst_propertyAccessor', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_if_debugConst_propertyAccessor); |
- }); |
- _ut.test('test_deadCode_deadBlock_if_debugConst_simpleIdentifier', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_if_debugConst_simpleIdentifier); |
- }); |
- _ut.test('test_deadCode_deadBlock_while_debugConst', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadBlock_while_debugConst); |
- }); |
- _ut.test('test_deadCode_deadCatch_onCatchSubtype', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadCatch_onCatchSubtype); |
- }); |
- _ut.test('test_deadCode_deadOperandLHS_and_debugConst', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadOperandLHS_and_debugConst); |
- }); |
- _ut.test('test_deadCode_deadOperandLHS_or_debugConst', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_deadCode_deadOperandLHS_or_debugConst); |
- }); |
- _ut.test('test_divisionOptimization', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_divisionOptimization); |
- }); |
- _ut.test('test_divisionOptimization_supressIfDivisionNotDefinedInCore', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_divisionOptimization_supressIfDivisionNotDefinedInCore); |
- }); |
- _ut.test('test_divisionOptimization_supressIfDivisionOverridden', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_divisionOptimization_supressIfDivisionOverridden); |
- }); |
- _ut.test('test_duplicateImport_as', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateImport_as); |
- }); |
- _ut.test('test_duplicateImport_hide', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateImport_hide); |
- }); |
- _ut.test('test_duplicateImport_show', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_duplicateImport_show); |
- }); |
- _ut.test('test_overriddingPrivateMember_sameLibrary', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_overriddingPrivateMember_sameLibrary); |
- }); |
- _ut.test('test_overrideEqualsButNotHashCode', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_overrideEqualsButNotHashCode); |
- }); |
- _ut.test('test_proxy_annotation_prefixed', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_proxy_annotation_prefixed); |
- }); |
- _ut.test('test_proxy_annotation_prefixed2', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_proxy_annotation_prefixed2); |
- }); |
- _ut.test('test_proxy_annotation_prefixed3', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_proxy_annotation_prefixed3); |
- }); |
- _ut.test('test_undefinedGetter_inSubtype', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedGetter_inSubtype); |
- }); |
- _ut.test('test_undefinedMethod_assignmentExpression_inSubtype', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedMethod_assignmentExpression_inSubtype); |
- }); |
- _ut.test('test_undefinedMethod_inSubtype', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedMethod_inSubtype); |
- }); |
- _ut.test('test_undefinedOperator_binaryExpression_inSubtype', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_binaryExpression_inSubtype); |
- }); |
- _ut.test('test_undefinedOperator_indexBoth_inSubtype', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_indexBoth_inSubtype); |
- }); |
- _ut.test('test_undefinedOperator_indexGetter_inSubtype', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_indexGetter_inSubtype); |
- }); |
- _ut.test('test_undefinedOperator_indexSetter_inSubtype', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_indexSetter_inSubtype); |
- }); |
- _ut.test('test_undefinedOperator_postfixExpression', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_postfixExpression); |
- }); |
- _ut.test('test_undefinedOperator_prefixExpression', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedOperator_prefixExpression); |
- }); |
- _ut.test('test_undefinedSetter_inSubtype', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_undefinedSetter_inSubtype); |
- }); |
- _ut.test('test_unnecessaryCast_13855_parameter_A', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_unnecessaryCast_13855_parameter_A); |
- }); |
- _ut.test('test_unnecessaryCast_dynamic_type', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_unnecessaryCast_dynamic_type); |
- }); |
- _ut.test('test_unnecessaryCast_type_dynamic', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_unnecessaryCast_type_dynamic); |
- }); |
- _ut.test('test_unusedImport_annotationOnDirective', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_unusedImport_annotationOnDirective); |
- }); |
- _ut.test('test_unusedImport_core_library', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_unusedImport_core_library); |
- }); |
- _ut.test('test_unusedImport_export', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_unusedImport_export); |
- }); |
- _ut.test('test_unusedImport_export2', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_unusedImport_export2); |
- }); |
- _ut.test('test_unusedImport_export_infiniteLoop', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_unusedImport_export_infiniteLoop); |
- }); |
- _ut.test('test_unusedImport_prefix_topLevelFunction', () { |
- final __test = new NonHintCodeTest(); |
- runJUnitTest(__test, __test.test_unusedImport_prefix_topLevelFunction); |
- }); |
- }); |
- } |
-} |
-class EnclosedScopeTest extends ResolverTestCase { |
- void test_define_duplicate() { |
- LibraryElement definingLibrary2 = createTestLibrary(); |
- GatheringErrorListener errorListener2 = new GatheringErrorListener(); |
- Scope rootScope = new Scope_21(definingLibrary2, errorListener2); |
- EnclosedScope scope = new EnclosedScope(rootScope); |
- VariableElement element1 = ElementFactory.localVariableElement(ASTFactory.identifier3("v1")); |
- VariableElement element2 = ElementFactory.localVariableElement(ASTFactory.identifier3("v1")); |
- scope.define(element1); |
- scope.define(element2); |
- errorListener2.assertErrors3([ErrorSeverity.ERROR]); |
- } |
- void test_define_normal() { |
- LibraryElement definingLibrary3 = createTestLibrary(); |
- GatheringErrorListener errorListener3 = new GatheringErrorListener(); |
- Scope rootScope = new Scope_22(definingLibrary3, errorListener3); |
- EnclosedScope outerScope = new EnclosedScope(rootScope); |
- EnclosedScope innerScope = new EnclosedScope(outerScope); |
- VariableElement element1 = ElementFactory.localVariableElement(ASTFactory.identifier3("v1")); |
- VariableElement element2 = ElementFactory.localVariableElement(ASTFactory.identifier3("v2")); |
- outerScope.define(element1); |
- innerScope.define(element2); |
- errorListener3.assertNoErrors(); |
- } |
- static dartSuite() { |
- _ut.group('EnclosedScopeTest', () { |
- _ut.test('test_define_duplicate', () { |
- final __test = new EnclosedScopeTest(); |
- runJUnitTest(__test, __test.test_define_duplicate); |
- }); |
- _ut.test('test_define_normal', () { |
- final __test = new EnclosedScopeTest(); |
- runJUnitTest(__test, __test.test_define_normal); |
- }); |
- }); |
- } |
-} |
-class Scope_21 extends Scope { |
- LibraryElement definingLibrary2; |
- GatheringErrorListener errorListener2; |
- Scope_21(this.definingLibrary2, this.errorListener2) : super(); |
- LibraryElement get definingLibrary => definingLibrary2; |
- AnalysisErrorListener get errorListener => errorListener2; |
- Element lookup3(Identifier identifier, String name, LibraryElement referencingLibrary) => null; |
-} |
-class Scope_22 extends Scope { |
- LibraryElement definingLibrary3; |
- GatheringErrorListener errorListener3; |
- Scope_22(this.definingLibrary3, this.errorListener3) : super(); |
- LibraryElement get definingLibrary => definingLibrary3; |
- AnalysisErrorListener get errorListener => errorListener3; |
- Element lookup3(Identifier identifier, String name, LibraryElement referencingLibrary) => null; |
-} |
-class LibraryElementBuilderTest extends EngineTestCase { |
- |
- /** |
- * The source factory used to create [Source]. |
- */ |
- SourceFactory _sourceFactory; |
- void setUp() { |
- _sourceFactory = new SourceFactory.con2([new FileUriResolver()]); |
- } |
- void test_accessorsAcrossFiles() { |
- Source librarySource = addSource("/lib.dart", EngineTestCase.createSource([ |
- "library lib;", |
- "part 'first.dart';", |
- "part 'second.dart';"])); |
- addSource("/first.dart", EngineTestCase.createSource(["part of lib;", "int get V => 0;"])); |
- addSource("/second.dart", EngineTestCase.createSource(["part of lib;", "void set V(int v) {}"])); |
- LibraryElement element = buildLibrary(librarySource, []); |
- JUnitTestCase.assertNotNull(element); |
- List<CompilationUnitElement> sourcedUnits = element.parts; |
- EngineTestCase.assertLength(2, sourcedUnits); |
- List<PropertyAccessorElement> firstAccessors = sourcedUnits[0].accessors; |
- EngineTestCase.assertLength(1, firstAccessors); |
- List<PropertyAccessorElement> secondAccessors = sourcedUnits[1].accessors; |
- EngineTestCase.assertLength(1, secondAccessors); |
- JUnitTestCase.assertSame(firstAccessors[0].variable, secondAccessors[0].variable); |
- } |
- void test_empty() { |
- Source librarySource = addSource("/lib.dart", "library lib;"); |
- LibraryElement element = buildLibrary(librarySource, []); |
- JUnitTestCase.assertNotNull(element); |
- JUnitTestCase.assertEquals("lib", element.name); |
- JUnitTestCase.assertNull(element.entryPoint); |
- EngineTestCase.assertLength(0, element.importedLibraries); |
- EngineTestCase.assertLength(0, element.imports); |
- JUnitTestCase.assertSame(element, element.library); |
- EngineTestCase.assertLength(0, element.prefixes); |
- EngineTestCase.assertLength(0, element.parts); |
- CompilationUnitElement unit = element.definingCompilationUnit; |
- JUnitTestCase.assertNotNull(unit); |
- JUnitTestCase.assertEquals("lib.dart", unit.name); |
- JUnitTestCase.assertEquals(element, unit.library); |
- EngineTestCase.assertLength(0, unit.accessors); |
- EngineTestCase.assertLength(0, unit.functions); |
- EngineTestCase.assertLength(0, unit.functionTypeAliases); |
- EngineTestCase.assertLength(0, unit.types); |
- EngineTestCase.assertLength(0, unit.topLevelVariables); |
- } |
- void test_invalidUri_part() { |
- Source librarySource = addSource("/lib.dart", EngineTestCase.createSource(["library lib;", "", "part '\${'a'}.dart';"])); |
- LibraryElement element = buildLibrary(librarySource, [CompileTimeErrorCode.URI_WITH_INTERPOLATION]); |
- JUnitTestCase.assertNotNull(element); |
- } |
- void test_missingLibraryDirectiveWithPart() { |
- addSource("/a.dart", EngineTestCase.createSource(["part of lib;"])); |
- Source librarySource = addSource("/lib.dart", EngineTestCase.createSource(["part 'a.dart';"])); |
- LibraryElement element = buildLibrary(librarySource, [ResolverErrorCode.MISSING_LIBRARY_DIRECTIVE_WITH_PART]); |
- JUnitTestCase.assertNotNull(element); |
- } |
- void test_missingPartOfDirective() { |
- addSource("/a.dart", "class A {}"); |
- Source librarySource = addSource("/lib.dart", EngineTestCase.createSource(["library lib;", "", "part 'a.dart';"])); |
- LibraryElement element = buildLibrary(librarySource, [CompileTimeErrorCode.PART_OF_NON_PART]); |
- JUnitTestCase.assertNotNull(element); |
- } |
- void test_multipleFiles() { |
- Source librarySource = addSource("/lib.dart", EngineTestCase.createSource([ |
- "library lib;", |
- "part 'first.dart';", |
- "part 'second.dart';", |
- "", |
- "class A {}"])); |
- addSource("/first.dart", EngineTestCase.createSource(["part of lib;", "class B {}"])); |
- addSource("/second.dart", EngineTestCase.createSource(["part of lib;", "class C {}"])); |
- LibraryElement element = buildLibrary(librarySource, []); |
- JUnitTestCase.assertNotNull(element); |
- List<CompilationUnitElement> sourcedUnits = element.parts; |
- EngineTestCase.assertLength(2, sourcedUnits); |
- assertTypes(element.definingCompilationUnit, ["A"]); |
- if (sourcedUnits[0].name == "first.dart") { |
- assertTypes(sourcedUnits[0], ["B"]); |
- assertTypes(sourcedUnits[1], ["C"]); |
- } else { |
- assertTypes(sourcedUnits[0], ["C"]); |
- assertTypes(sourcedUnits[1], ["B"]); |
- } |
- } |
- void test_singleFile() { |
- Source librarySource = addSource("/lib.dart", EngineTestCase.createSource(["library lib;", "", "class A {}"])); |
- LibraryElement element = buildLibrary(librarySource, []); |
- JUnitTestCase.assertNotNull(element); |
- assertTypes(element.definingCompilationUnit, ["A"]); |
- } |
- |
- /** |
- * Add a source file to the content provider. The file path should be absolute. |
- * |
- * @param filePath the path of the file being added |
- * @param contents the contents to be returned by the content provider for the specified file |
- * @return the source object representing the added file |
- */ |
- Source addSource(String filePath, String contents) { |
- Source source = new FileBasedSource.con1(_sourceFactory.contentCache, FileUtilities2.createFile(filePath)); |
- _sourceFactory.setContents(source, contents); |
- return source; |
- } |
- |
- /** |
- * Ensure that there are elements representing all of the types in the given array of type names. |
- * |
- * @param unit the compilation unit containing the types |
- * @param typeNames the names of the types that should be found |
- */ |
- void assertTypes(CompilationUnitElement unit, List<String> typeNames) { |
- JUnitTestCase.assertNotNull(unit); |
- List<ClassElement> types = unit.types; |
- EngineTestCase.assertLength(typeNames.length, types); |
- for (ClassElement type in types) { |
- JUnitTestCase.assertNotNull(type); |
- String actualTypeName = type.displayName; |
- bool wasExpected = false; |
- for (String expectedTypeName in typeNames) { |
- if (expectedTypeName == actualTypeName) { |
- wasExpected = true; |
- } |
- } |
- if (!wasExpected) { |
- JUnitTestCase.fail("Found unexpected type ${actualTypeName}"); |
- } |
- } |
- } |
- |
- /** |
- * Build the element model for the library whose defining compilation unit has the given source. |
- * |
- * @param librarySource the source of the defining compilation unit for the library |
- * @param expectedErrorCodes the errors that are expected to be found while building the element |
- * model |
- * @return the element model that was built for the library |
- * @throws Exception if the element model could not be built |
- */ |
- LibraryElement buildLibrary(Source librarySource, List<ErrorCode> expectedErrorCodes) { |
- AnalysisContextImpl context = new AnalysisContextImpl(); |
- context.sourceFactory = new SourceFactory.con2([ |
- new DartUriResolver(DirectoryBasedDartSdk.defaultSdk), |
- new FileUriResolver()]); |
- LibraryResolver resolver = new LibraryResolver(context); |
- LibraryElementBuilder builder = new LibraryElementBuilder(resolver); |
- Library library = resolver.createLibrary(librarySource) as Library; |
- LibraryElement element = builder.buildLibrary(library); |
- GatheringErrorListener listener = new GatheringErrorListener(); |
- listener.addAll(resolver.errorListener); |
- listener.assertErrors2(expectedErrorCodes); |
- return element; |
- } |
- static dartSuite() { |
- _ut.group('LibraryElementBuilderTest', () { |
- _ut.test('test_accessorsAcrossFiles', () { |
- final __test = new LibraryElementBuilderTest(); |
- runJUnitTest(__test, __test.test_accessorsAcrossFiles); |
- }); |
- _ut.test('test_empty', () { |
- final __test = new LibraryElementBuilderTest(); |
- runJUnitTest(__test, __test.test_empty); |
- }); |
- _ut.test('test_invalidUri_part', () { |
- final __test = new LibraryElementBuilderTest(); |
- runJUnitTest(__test, __test.test_invalidUri_part); |
- }); |
- _ut.test('test_missingLibraryDirectiveWithPart', () { |
- final __test = new LibraryElementBuilderTest(); |
- runJUnitTest(__test, __test.test_missingLibraryDirectiveWithPart); |
- }); |
- _ut.test('test_missingPartOfDirective', () { |
- final __test = new LibraryElementBuilderTest(); |
- runJUnitTest(__test, __test.test_missingPartOfDirective); |
- }); |
- _ut.test('test_multipleFiles', () { |
- final __test = new LibraryElementBuilderTest(); |
- runJUnitTest(__test, __test.test_multipleFiles); |
- }); |
- _ut.test('test_singleFile', () { |
- final __test = new LibraryElementBuilderTest(); |
- runJUnitTest(__test, __test.test_singleFile); |
- }); |
- }); |
- } |
-} |
-class ScopeTest extends ResolverTestCase { |
- void test_define_duplicate() { |
- LibraryElement definingLibrary = createTestLibrary(); |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- ScopeTest_TestScope scope = new ScopeTest_TestScope(definingLibrary, errorListener); |
- VariableElement element1 = ElementFactory.localVariableElement(ASTFactory.identifier3("v1")); |
- VariableElement element2 = ElementFactory.localVariableElement(ASTFactory.identifier3("v1")); |
- scope.define(element1); |
- scope.define(element2); |
- errorListener.assertErrors3([ErrorSeverity.ERROR]); |
- } |
- void test_define_normal() { |
- LibraryElement definingLibrary = createTestLibrary(); |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- ScopeTest_TestScope scope = new ScopeTest_TestScope(definingLibrary, errorListener); |
- VariableElement element1 = ElementFactory.localVariableElement(ASTFactory.identifier3("v1")); |
- VariableElement element2 = ElementFactory.localVariableElement(ASTFactory.identifier3("v2")); |
- scope.define(element1); |
- scope.define(element2); |
- errorListener.assertNoErrors(); |
- } |
- void test_getDefiningLibrary() { |
- LibraryElement definingLibrary = createTestLibrary(); |
- ScopeTest_TestScope scope = new ScopeTest_TestScope(definingLibrary, null); |
- JUnitTestCase.assertEquals(definingLibrary, scope.definingLibrary); |
- } |
- void test_getErrorListener() { |
- LibraryElement definingLibrary = new LibraryElementImpl(new AnalysisContextImpl(), ASTFactory.libraryIdentifier2(["test"])); |
- GatheringErrorListener errorListener = new GatheringErrorListener(); |
- ScopeTest_TestScope scope = new ScopeTest_TestScope(definingLibrary, errorListener); |
- JUnitTestCase.assertEquals(errorListener, scope.errorListener); |
- } |
- void test_isPrivateName_nonPrivate() { |
- JUnitTestCase.assertFalse(Scope.isPrivateName("Public")); |
- } |
- void test_isPrivateName_private() { |
- JUnitTestCase.assertTrue(Scope.isPrivateName("_Private")); |
- } |
- static dartSuite() { |
- _ut.group('ScopeTest', () { |
- _ut.test('test_define_duplicate', () { |
- final __test = new ScopeTest(); |
- runJUnitTest(__test, __test.test_define_duplicate); |
- }); |
- _ut.test('test_define_normal', () { |
- final __test = new ScopeTest(); |
- runJUnitTest(__test, __test.test_define_normal); |
- }); |
- _ut.test('test_getDefiningLibrary', () { |
- final __test = new ScopeTest(); |
- runJUnitTest(__test, __test.test_getDefiningLibrary); |
- }); |
- _ut.test('test_getErrorListener', () { |
- final __test = new ScopeTest(); |
- runJUnitTest(__test, __test.test_getErrorListener); |
- }); |
- _ut.test('test_isPrivateName_nonPrivate', () { |
- final __test = new ScopeTest(); |
- runJUnitTest(__test, __test.test_isPrivateName_nonPrivate); |
- }); |
- _ut.test('test_isPrivateName_private', () { |
- final __test = new ScopeTest(); |
- runJUnitTest(__test, __test.test_isPrivateName_private); |
- }); |
- }); |
- } |
-} |
-/** |
- * A non-abstract subclass that can be used for testing purposes. |
- */ |
-class ScopeTest_TestScope extends Scope { |
- |
- /** |
- * The element representing the library in which this scope is enclosed. |
- */ |
- LibraryElement _definingLibrary; |
- |
- /** |
- * The listener that is to be informed when an error is encountered. |
- */ |
- AnalysisErrorListener _errorListener; |
- ScopeTest_TestScope(LibraryElement definingLibrary, AnalysisErrorListener errorListener) { |
- this._definingLibrary = definingLibrary; |
- this._errorListener = errorListener; |
- } |
- LibraryElement get definingLibrary => _definingLibrary; |
- AnalysisErrorListener get errorListener => _errorListener; |
- Element lookup3(Identifier identifier, String name, LibraryElement referencingLibrary) => localLookup(name, referencingLibrary); |
-} |
-class SimpleResolverTest extends ResolverTestCase { |
- void fail_staticInvocation() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " static int get g => (a,b) => 0;", |
- "}", |
- "class B {", |
- " f() {", |
- " A.g(1,0);", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_argumentResolution_required_matching() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void f() {", |
- " g(1, 2, 3);", |
- " }", |
- " void g(a, b, c) {}", |
- "}"])); |
- validateArgumentResolution(source, [0, 1, 2]); |
- } |
- void test_argumentResolution_required_tooFew() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void f() {", |
- " g(1, 2);", |
- " }", |
- " void g(a, b, c) {}", |
- "}"])); |
- validateArgumentResolution(source, [0, 1]); |
- } |
- void test_argumentResolution_required_tooMany() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void f() {", |
- " g(1, 2, 3);", |
- " }", |
- " void g(a, b) {}", |
- "}"])); |
- validateArgumentResolution(source, [0, 1, -1]); |
- } |
- void test_argumentResolution_requiredAndNamed_extra() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void f() {", |
- " g(1, 2, c: 3, d: 4);", |
- " }", |
- " void g(a, b, {c}) {}", |
- "}"])); |
- validateArgumentResolution(source, [0, 1, 2, -1]); |
- } |
- void test_argumentResolution_requiredAndNamed_matching() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void f() {", |
- " g(1, 2, c: 3);", |
- " }", |
- " void g(a, b, {c}) {}", |
- "}"])); |
- validateArgumentResolution(source, [0, 1, 2]); |
- } |
- void test_argumentResolution_requiredAndNamed_missing() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void f() {", |
- " g(1, 2, d: 3);", |
- " }", |
- " void g(a, b, {c, d}) {}", |
- "}"])); |
- validateArgumentResolution(source, [0, 1, 3]); |
- } |
- void test_argumentResolution_requiredAndPositional_fewer() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void f() {", |
- " g(1, 2, 3);", |
- " }", |
- " void g(a, b, [c, d]) {}", |
- "}"])); |
- validateArgumentResolution(source, [0, 1, 2]); |
- } |
- void test_argumentResolution_requiredAndPositional_matching() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void f() {", |
- " g(1, 2, 3, 4);", |
- " }", |
- " void g(a, b, [c, d]) {}", |
- "}"])); |
- validateArgumentResolution(source, [0, 1, 2, 3]); |
- } |
- void test_argumentResolution_requiredAndPositional_more() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void f() {", |
- " g(1, 2, 3, 4);", |
- " }", |
- " void g(a, b, [c]) {}", |
- "}"])); |
- validateArgumentResolution(source, [0, 1, 2, -1]); |
- } |
- void test_class_definesCall() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int call(int x) { return x; }", |
- "}", |
- "int f(A a) {", |
- " return a(0);", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_class_extends_implements() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A extends B implements C {}", |
- "class B {}", |
- "class C {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_commentReference_class() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {}", |
- "/** [A] [new A] [A.n] [new A.n] [m] [f] */", |
- "class A {", |
- " A() {}", |
- " A.n() {}", |
- " m() {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_commentReference_parameter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " A() {}", |
- " A.n() {}", |
- " /** [e] [f] */", |
- " m(e, f()) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_commentReference_singleLine() { |
- Source source = addSource(EngineTestCase.createSource(["/// [A]", "class A {}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_empty() { |
- Source source = addSource(""); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_extractedMethodAsConstant() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "abstract class Comparable<T> {", |
- " int compareTo(T other);", |
- " static int compare(Comparable a, Comparable b) => a.compareTo(b);", |
- "}", |
- "class A {", |
- " void sort([compare = Comparable.compare]) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_fieldFormalParameter() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " int x;", " A(this.x) {}", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_forEachLoops_nonConflicting() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " List list = [1,2,3];", |
- " for (int x in list) {}", |
- " for (int x in list) {}", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_forLoops_nonConflicting() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " for (int i = 0; i < 3; i++) {", |
- " }", |
- " for (int i = 0; i < 3; i++) {", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_functionTypeAlias() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "typedef bool P(e);", |
- "class A {", |
- " P p;", |
- " m(e) {", |
- " if (p(e)) {}", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_getterAndSetterWithDifferentTypes() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int get f => 0;", |
- " void set f(String s) {}", |
- "}", |
- "g (A a) {", |
- " a.f = a.f.toString();", |
- "}"])); |
- resolve(source); |
- assertErrors(source, [StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES]); |
- verify([source]); |
- } |
- void test_hasReferenceToSuper() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}", "class B {toString() => super.toString();}"])); |
- LibraryElement library = resolve(source); |
- JUnitTestCase.assertNotNull(library); |
- CompilationUnitElement unit = library.definingCompilationUnit; |
- JUnitTestCase.assertNotNull(unit); |
- List<ClassElement> classes = unit.types; |
- EngineTestCase.assertLength(2, classes); |
- JUnitTestCase.assertFalse(classes[0].hasReferenceToSuper()); |
- JUnitTestCase.assertTrue(classes[1].hasReferenceToSuper()); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_import_hide() { |
- addSource2("lib1.dart", EngineTestCase.createSource(["library lib1;", "set foo(value) {}", "class A {}"])); |
- addSource2("lib2.dart", EngineTestCase.createSource(["library lib2;", "set foo(value) {}"])); |
- Source source = addSource2("lib3.dart", EngineTestCase.createSource([ |
- "import 'lib1.dart' hide foo;", |
- "import 'lib2.dart';", |
- "", |
- "main() {", |
- " foo = 0;", |
- "}", |
- "A a;"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_import_prefix() { |
- addSource2("/two.dart", EngineTestCase.createSource(["library two;", "f(int x) {", " return x * x;", "}"])); |
- Source source = addSource2("/one.dart", EngineTestCase.createSource([ |
- "library one;", |
- "import 'two.dart' as _two;", |
- "main() {", |
- " _two.f(0);", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_import_spaceInUri() { |
- addSource2("sub folder/lib.dart", EngineTestCase.createSource(["library lib;", "foo() {}"])); |
- Source source = addSource2("app.dart", EngineTestCase.createSource([ |
- "import 'sub folder/lib.dart';", |
- "", |
- "main() {", |
- " foo();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_indexExpression_typeParameters() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "f() {", |
- " List<int> a;", |
- " a[0];", |
- " List<List<int>> b;", |
- " b[0][0];", |
- " List<List<List<int>>> c;", |
- " c[0][0][0];", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_indexExpression_typeParameters_invalidAssignmentWarning() { |
- Source source = addSource(EngineTestCase.createSource(["f() {", " List<List<int>> b;", " b[0][0] = 'hi';", "}"])); |
- resolve(source); |
- assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
- verify([source]); |
- } |
- void test_indirectOperatorThroughCall() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " B call() { return new B(); }", |
- "}", |
- "", |
- "class B {", |
- " int operator [](int i) { return i; }", |
- "}", |
- "", |
- "A f = new A();", |
- "", |
- "g(int x) {}", |
- "", |
- "main() {", |
- " g(f()[0]);", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_invoke_dynamicThroughGetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " List get X => [() => 0];", |
- " m(A a) {", |
- " X.last;", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_isValidMixin_badSuperclass() { |
- Source source = addSource(EngineTestCase.createSource(["class A extends B {}", "class B {}"])); |
- LibraryElement library = resolve(source); |
- JUnitTestCase.assertNotNull(library); |
- CompilationUnitElement unit = library.definingCompilationUnit; |
- JUnitTestCase.assertNotNull(unit); |
- List<ClassElement> classes = unit.types; |
- EngineTestCase.assertLength(2, classes); |
- JUnitTestCase.assertFalse(classes[0].isValidMixin); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_isValidMixin_constructor() { |
- Source source = addSource(EngineTestCase.createSource(["class A {", " A() {}", "}"])); |
- LibraryElement library = resolve(source); |
- JUnitTestCase.assertNotNull(library); |
- CompilationUnitElement unit = library.definingCompilationUnit; |
- JUnitTestCase.assertNotNull(unit); |
- List<ClassElement> classes = unit.types; |
- EngineTestCase.assertLength(1, classes); |
- JUnitTestCase.assertFalse(classes[0].isValidMixin); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_isValidMixin_super() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " toString() {", |
- " return super.toString();", |
- " }", |
- "}"])); |
- LibraryElement library = resolve(source); |
- JUnitTestCase.assertNotNull(library); |
- CompilationUnitElement unit = library.definingCompilationUnit; |
- JUnitTestCase.assertNotNull(unit); |
- List<ClassElement> classes = unit.types; |
- EngineTestCase.assertLength(1, classes); |
- JUnitTestCase.assertFalse(classes[0].isValidMixin); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_isValidMixin_valid() { |
- Source source = addSource(EngineTestCase.createSource(["class A {}"])); |
- LibraryElement library = resolve(source); |
- JUnitTestCase.assertNotNull(library); |
- CompilationUnitElement unit = library.definingCompilationUnit; |
- JUnitTestCase.assertNotNull(unit); |
- List<ClassElement> classes = unit.types; |
- EngineTestCase.assertLength(1, classes); |
- JUnitTestCase.assertTrue(classes[0].isValidMixin); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_labels_switch() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "void doSwitch(int target) {", |
- " switch (target) {", |
- " l0: case 0:", |
- " continue l1;", |
- " l1: case 1:", |
- " continue l0;", |
- " default:", |
- " continue l1;", |
- " }", |
- "}"])); |
- LibraryElement library = resolve(source); |
- JUnitTestCase.assertNotNull(library); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_metadata_class() { |
- Source source = addSource(EngineTestCase.createSource(["const A = null;", "@A class C {}"])); |
- LibraryElement library = resolve(source); |
- JUnitTestCase.assertNotNull(library); |
- CompilationUnitElement unit = library.definingCompilationUnit; |
- JUnitTestCase.assertNotNull(unit); |
- List<ClassElement> classes = unit.types; |
- EngineTestCase.assertLength(1, classes); |
- List<ElementAnnotation> annotations = classes[0].metadata; |
- EngineTestCase.assertLength(1, annotations); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_metadata_field() { |
- Source source = addSource(EngineTestCase.createSource(["const A = null;", "class C {", " @A int f;", "}"])); |
- LibraryElement library = resolve(source); |
- JUnitTestCase.assertNotNull(library); |
- CompilationUnitElement unit = library.definingCompilationUnit; |
- JUnitTestCase.assertNotNull(unit); |
- List<ClassElement> classes = unit.types; |
- EngineTestCase.assertLength(1, classes); |
- FieldElement field = classes[0].fields[0]; |
- List<ElementAnnotation> annotations = field.metadata; |
- EngineTestCase.assertLength(1, annotations); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_metadata_libraryDirective() { |
- Source source = addSource(EngineTestCase.createSource(["@A library lib;", "const A = null;"])); |
- LibraryElement library = resolve(source); |
- JUnitTestCase.assertNotNull(library); |
- List<ElementAnnotation> annotations = library.metadata; |
- EngineTestCase.assertLength(1, annotations); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_metadata_method() { |
- Source source = addSource(EngineTestCase.createSource(["const A = null;", "class C {", " @A void m() {}", "}"])); |
- LibraryElement library = resolve(source); |
- JUnitTestCase.assertNotNull(library); |
- CompilationUnitElement unit = library.definingCompilationUnit; |
- JUnitTestCase.assertNotNull(unit); |
- List<ClassElement> classes = unit.types; |
- EngineTestCase.assertLength(1, classes); |
- MethodElement method = classes[0].methods[0]; |
- List<ElementAnnotation> annotations = method.metadata; |
- EngineTestCase.assertLength(1, annotations); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_method_fromMixin() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class B {", |
- " bar() => 1;", |
- "}", |
- "class A {", |
- " foo() => 2;", |
- "}", |
- "", |
- "class C extends B with A {", |
- " bar() => super.bar();", |
- " foo() => super.foo();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_method_fromSuperclassMixin() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void m1() {}", |
- "}", |
- "class B extends Object with A {", |
- "}", |
- "class C extends B {", |
- "}", |
- "f(C c) {", |
- " c.m1();", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_methodCascades() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " void m1() {}", |
- " void m2() {}", |
- " void m() {", |
- " A a = new A();", |
- " a..m1()", |
- " ..m2();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_methodCascades_withSetter() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " String name;", |
- " void m1() {}", |
- " void m2() {}", |
- " void m() {", |
- " A a = new A();", |
- " a..m1()", |
- " ..name = 'name'", |
- " ..m2();", |
- " }", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_resolveAgainstNull() { |
- Source source = addSource(EngineTestCase.createSource(["f(var p) {", " return null == p;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- } |
- void test_setter_inherited() { |
- Source source = addSource(EngineTestCase.createSource([ |
- "class A {", |
- " int get x => 0;", |
- " set x(int p) {}", |
- "}", |
- "class B extends A {", |
- " int get x => super.x == null ? 0 : super.x;", |
- " int f() => x = 1;", |
- "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- void test_setter_static() { |
- Source source = addSource(EngineTestCase.createSource(["set s(x) {", "}", "", "main() {", " s = 123;", "}"])); |
- resolve(source); |
- assertNoErrors(source); |
- verify([source]); |
- } |
- |
- /** |
- * Resolve the given source and verify that the arguments in a specific method invocation were |
- * correctly resolved. |
- * |
- * The source is expected to be source for a compilation unit, the first declaration is expected |
- * to be a class, the first member of which is expected to be a method with a block body, and the |
- * first statement in the body is expected to be an expression statement whose expression is a |
- * method invocation. It is the arguments to that method invocation that are tested. The method |
- * invocation can contain errors. |
- * |
- * The arguments were resolved correctly if the number of expressions in the list matches the |
- * length of the array of indices and if, for each index in the array of indices, the parameter to |
- * which the argument expression was resolved is the parameter in the invoked method's list of |
- * parameters at that index. Arguments that should not be resolved to a parameter because of an |
- * error can be denoted by including a negative index in the array of indices. |
- * |
- * @param source the source to be resolved |
- * @param indices the array of indices used to associate arguments with parameters |
- * @throws Exception if the source could not be resolved or if the structure of the source is not |
- * valid |
- */ |
- void validateArgumentResolution(Source source, List<int> indices) { |
- LibraryElement library = resolve(source); |
- JUnitTestCase.assertNotNull(library); |
- ClassElement classElement = library.definingCompilationUnit.types[0]; |
- List<ParameterElement> parameters = classElement.methods[1].parameters; |
- CompilationUnit unit = resolveCompilationUnit(source, library); |
- JUnitTestCase.assertNotNull(unit); |
- ClassDeclaration classDeclaration = unit.declarations[0] as ClassDeclaration; |
- MethodDeclaration methodDeclaration = classDeclaration.members[0] as MethodDeclaration; |
- Block block = ((methodDeclaration.body as BlockFunctionBody)).block; |
- ExpressionStatement statement = block.statements[0] as ExpressionStatement; |
- MethodInvocation invocation = statement.expression as MethodInvocation; |
- NodeList<Expression> arguments = invocation.argumentList.arguments; |
- int argumentCount = arguments.length; |
- JUnitTestCase.assertEquals(indices.length, argumentCount); |
- for (int i = 0; i < argumentCount; i++) { |
- Expression argument = arguments[i]; |
- ParameterElement element = argument.staticParameterElement; |
- int index = indices[i]; |
- if (index < 0) { |
- JUnitTestCase.assertNull(element); |
- } else { |
- JUnitTestCase.assertSame(parameters[index], element); |
- } |
- } |
- } |
- static dartSuite() { |
- _ut.group('SimpleResolverTest', () { |
- _ut.test('test_argumentResolution_requiredAndNamed_extra', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_argumentResolution_requiredAndNamed_extra); |
- }); |
- _ut.test('test_argumentResolution_requiredAndNamed_matching', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_argumentResolution_requiredAndNamed_matching); |
- }); |
- _ut.test('test_argumentResolution_requiredAndNamed_missing', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_argumentResolution_requiredAndNamed_missing); |
- }); |
- _ut.test('test_argumentResolution_requiredAndPositional_fewer', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_argumentResolution_requiredAndPositional_fewer); |
- }); |
- _ut.test('test_argumentResolution_requiredAndPositional_matching', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_argumentResolution_requiredAndPositional_matching); |
- }); |
- _ut.test('test_argumentResolution_requiredAndPositional_more', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_argumentResolution_requiredAndPositional_more); |
- }); |
- _ut.test('test_argumentResolution_required_matching', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_argumentResolution_required_matching); |
- }); |
- _ut.test('test_argumentResolution_required_tooFew', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_argumentResolution_required_tooFew); |
- }); |
- _ut.test('test_argumentResolution_required_tooMany', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_argumentResolution_required_tooMany); |
- }); |
- _ut.test('test_class_definesCall', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_class_definesCall); |
- }); |
- _ut.test('test_class_extends_implements', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_class_extends_implements); |
- }); |
- _ut.test('test_commentReference_class', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_commentReference_class); |
- }); |
- _ut.test('test_commentReference_parameter', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_commentReference_parameter); |
- }); |
- _ut.test('test_commentReference_singleLine', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_commentReference_singleLine); |
- }); |
- _ut.test('test_empty', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_empty); |
- }); |
- _ut.test('test_extractedMethodAsConstant', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_extractedMethodAsConstant); |
- }); |
- _ut.test('test_fieldFormalParameter', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_fieldFormalParameter); |
- }); |
- _ut.test('test_forEachLoops_nonConflicting', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_forEachLoops_nonConflicting); |
- }); |
- _ut.test('test_forLoops_nonConflicting', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_forLoops_nonConflicting); |
- }); |
- _ut.test('test_functionTypeAlias', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_functionTypeAlias); |
- }); |
- _ut.test('test_getterAndSetterWithDifferentTypes', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_getterAndSetterWithDifferentTypes); |
- }); |
- _ut.test('test_hasReferenceToSuper', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_hasReferenceToSuper); |
- }); |
- _ut.test('test_import_hide', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_import_hide); |
- }); |
- _ut.test('test_import_prefix', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_import_prefix); |
- }); |
- _ut.test('test_import_spaceInUri', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_import_spaceInUri); |
- }); |
- _ut.test('test_indexExpression_typeParameters', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_indexExpression_typeParameters); |
- }); |
- _ut.test('test_indexExpression_typeParameters_invalidAssignmentWarning', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_indexExpression_typeParameters_invalidAssignmentWarning); |
- }); |
- _ut.test('test_indirectOperatorThroughCall', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_indirectOperatorThroughCall); |
- }); |
- _ut.test('test_invoke_dynamicThroughGetter', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_invoke_dynamicThroughGetter); |
- }); |
- _ut.test('test_isValidMixin_badSuperclass', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_isValidMixin_badSuperclass); |
- }); |
- _ut.test('test_isValidMixin_constructor', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_isValidMixin_constructor); |
- }); |
- _ut.test('test_isValidMixin_super', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_isValidMixin_super); |
- }); |
- _ut.test('test_isValidMixin_valid', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_isValidMixin_valid); |
- }); |
- _ut.test('test_labels_switch', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_labels_switch); |
- }); |
- _ut.test('test_metadata_class', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_metadata_class); |
- }); |
- _ut.test('test_metadata_field', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_metadata_field); |
- }); |
- _ut.test('test_metadata_libraryDirective', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_metadata_libraryDirective); |
- }); |
- _ut.test('test_metadata_method', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_metadata_method); |
- }); |
- _ut.test('test_methodCascades', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_methodCascades); |
- }); |
- _ut.test('test_methodCascades_withSetter', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_methodCascades_withSetter); |
- }); |
- _ut.test('test_method_fromMixin', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_method_fromMixin); |
- }); |
- _ut.test('test_method_fromSuperclassMixin', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_method_fromSuperclassMixin); |
- }); |
- _ut.test('test_resolveAgainstNull', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_resolveAgainstNull); |
- }); |
- _ut.test('test_setter_inherited', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_setter_inherited); |
- }); |
- _ut.test('test_setter_static', () { |
- final __test = new SimpleResolverTest(); |
- runJUnitTest(__test, __test.test_setter_static); |
- }); |
- }); |
- } |
-} |
-class SubtypeManagerTest extends EngineTestCase { |
- |
- /** |
- * The inheritance manager being tested. |
- */ |
- SubtypeManager _subtypeManager; |
- |
- /** |
- * The compilation unit element containing all of the types setup in each test. |
- */ |
- CompilationUnitElementImpl _definingCompilationUnit; |
- void test_computeAllSubtypes_infiniteLoop() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
- classA.supertype = classB.type; |
- _definingCompilationUnit.types = <ClassElement> [classA, classB]; |
- Set<ClassElement> subtypesOfA = _subtypeManager.computeAllSubtypes(classA); |
- List<ClassElement> arraySubtypesOfA = new List.from(subtypesOfA); |
- EngineTestCase.assertSize3(2, subtypesOfA); |
- EngineTestCase.assertContains(arraySubtypesOfA, [classA, classB]); |
- } |
- void test_computeAllSubtypes_manyRecursiveSubtypes() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
- ClassElementImpl classC = ElementFactory.classElement("C", classB.type, []); |
- ClassElementImpl classD = ElementFactory.classElement("D", classB.type, []); |
- ClassElementImpl classE = ElementFactory.classElement("E", classB.type, []); |
- _definingCompilationUnit.types = <ClassElement> [classA, classB, classC, classD, classE]; |
- Set<ClassElement> subtypesOfA = _subtypeManager.computeAllSubtypes(classA); |
- List<ClassElement> arraySubtypesOfA = new List.from(subtypesOfA); |
- Set<ClassElement> subtypesOfB = _subtypeManager.computeAllSubtypes(classB); |
- List<ClassElement> arraySubtypesOfB = new List.from(subtypesOfB); |
- EngineTestCase.assertSize3(4, subtypesOfA); |
- EngineTestCase.assertContains(arraySubtypesOfA, [classB, classC, classD, classE]); |
- EngineTestCase.assertSize3(3, subtypesOfB); |
- EngineTestCase.assertContains(arraySubtypesOfB, [classC, classD, classE]); |
- } |
- void test_computeAllSubtypes_noSubtypes() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- _definingCompilationUnit.types = <ClassElement> [classA]; |
- Set<ClassElement> subtypesOfA = _subtypeManager.computeAllSubtypes(classA); |
- EngineTestCase.assertSize3(0, subtypesOfA); |
- } |
- void test_computeAllSubtypes_oneSubtype() { |
- ClassElementImpl classA = ElementFactory.classElement2("A", []); |
- ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
- _definingCompilationUnit.types = <ClassElement> [classA, classB]; |
- Set<ClassElement> subtypesOfA = _subtypeManager.computeAllSubtypes(classA); |
- List<ClassElement> arraySubtypesOfA = new List.from(subtypesOfA); |
- EngineTestCase.assertSize3(1, subtypesOfA); |
- EngineTestCase.assertContains(arraySubtypesOfA, [classB]); |
- } |
- void setUp() { |
- super.setUp(); |
- AnalysisContextImpl context = AnalysisContextFactory.contextWithCore(); |
- FileBasedSource source = new FileBasedSource.con1(new ContentCache(), FileUtilities2.createFile("/test.dart")); |
- _definingCompilationUnit = new CompilationUnitElementImpl("test.dart"); |
- _definingCompilationUnit.source = source; |
- LibraryElementImpl definingLibrary = ElementFactory.library(context, "test"); |
- definingLibrary.definingCompilationUnit = _definingCompilationUnit; |
- _subtypeManager = new SubtypeManager(); |
- } |
- static dartSuite() { |
- _ut.group('SubtypeManagerTest', () { |
- _ut.test('test_computeAllSubtypes_infiniteLoop', () { |
- final __test = new SubtypeManagerTest(); |
- runJUnitTest(__test, __test.test_computeAllSubtypes_infiniteLoop); |
- }); |
- _ut.test('test_computeAllSubtypes_manyRecursiveSubtypes', () { |
- final __test = new SubtypeManagerTest(); |
- runJUnitTest(__test, __test.test_computeAllSubtypes_manyRecursiveSubtypes); |
- }); |
- _ut.test('test_computeAllSubtypes_noSubtypes', () { |
- final __test = new SubtypeManagerTest(); |
- runJUnitTest(__test, __test.test_computeAllSubtypes_noSubtypes); |
- }); |
- _ut.test('test_computeAllSubtypes_oneSubtype', () { |
- final __test = new SubtypeManagerTest(); |
- runJUnitTest(__test, __test.test_computeAllSubtypes_oneSubtype); |
- }); |
- }); |
- } |
-} |
-main() { |
-// ElementResolverTest.dartSuite(); |
-// InheritanceManagerTest.dartSuite(); |
-// LibraryElementBuilderTest.dartSuite(); |
-// LibraryTest.dartSuite(); |
-// StaticTypeAnalyzerTest.dartSuite(); |
-// SubtypeManagerTest.dartSuite(); |
-// TypeOverrideManagerTest.dartSuite(); |
-// TypeProviderImplTest.dartSuite(); |
-// TypeResolverVisitorTest.dartSuite(); |
-// EnclosedScopeTest.dartSuite(); |
-// LibraryImportScopeTest.dartSuite(); |
-// LibraryScopeTest.dartSuite(); |
-// ScopeTest.dartSuite(); |
-// CompileTimeErrorCodeTest.dartSuite(); |
-// ErrorResolverTest.dartSuite(); |
-// HintCodeTest.dartSuite(); |
-// MemberMapTest.dartSuite(); |
-// NonHintCodeTest.dartSuite(); |
-// NonErrorResolverTest.dartSuite(); |
-// SimpleResolverTest.dartSuite(); |
-// StaticTypeWarningCodeTest.dartSuite(); |
-// StaticWarningCodeTest.dartSuite(); |
-// StrictModeTest.dartSuite(); |
-// TypePropagationTest.dartSuite(); |
-} |