Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Unified Diff: pkg/analyzer_experimental/test/generated/resolver_test.dart

Issue 27278004: New analyzer_experimental snapshot. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer_experimental/test/generated/parser_test.dart ('k') | pkg/pkg.status » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
index 8166ad351bbea0a98ba4f1a5760bbbb18ca5f40b..6bcf79790db086af88da5c1da7cb1dbadc9b120f 100644
--- a/pkg/analyzer_experimental/test/generated/resolver_test.dart
+++ b/pkg/analyzer_experimental/test/generated/resolver_test.dart
@@ -947,6 +947,21 @@ class NonErrorResolverTest extends ResolverTestCase {
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> {",
@@ -1389,6 +1404,18 @@ class NonErrorResolverTest extends ResolverTestCase {
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;"]));
@@ -2042,7 +2069,7 @@ class NonErrorResolverTest extends ResolverTestCase {
" m(a, b) {}",
"}",
"class B extends A {",
- " m(a) {}",
+ " m(a, [b]) {}",
"}"]));
resolve(source);
assertNoErrors(source);
@@ -2350,20 +2377,20 @@ class NonErrorResolverTest extends ResolverTestCase {
assertNoErrors(source);
verify([source]);
}
- void test_mixinInheritsFromNotObject_classDeclaration_mixTypedef() {
+ void test_mixinInheritsFromNotObject_classDeclaration_mixTypeAlias() {
Source source = addSource(EngineTestCase.createSource([
"class A {}",
- "typedef B = Object with A;",
+ "class B = Object with A;",
"class C extends Object with B {}"]));
resolve(source);
assertNoErrors(source);
verify([source]);
}
- void test_mixinInheritsFromNotObject_typedef_mixTypedef() {
+ void test_mixinInheritsFromNotObject_typedef_mixTypeAlias() {
Source source = addSource(EngineTestCase.createSource([
"class A {}",
- "typedef B = Object with A;",
- "typedef C = Object with B;"]));
+ "class B = Object with A;",
+ "class C = Object with B;"]));
resolve(source);
assertNoErrors(source);
verify([source]);
@@ -2801,6 +2828,16 @@ class NonErrorResolverTest extends ResolverTestCase {
assertNoErrors(source);
verify([source]);
}
+ void test_propagateTypeArgsIntoBounds() {
+ 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_proxy_annotation_prefixed() {
Source source = addSource(EngineTestCase.createSource([
"library L;",
@@ -2926,6 +2963,18 @@ class NonErrorResolverTest extends ResolverTestCase {
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 {",
@@ -3231,10 +3280,10 @@ class NonErrorResolverTest extends ResolverTestCase {
assertNoErrors(source);
verify([source]);
}
- void test_undefinedConstructorInInitializer_implicit_typedef() {
+ void test_undefinedConstructorInInitializer_implicit_typeAlias() {
Source source = addSource(EngineTestCase.createSource([
"class M {}",
- "typedef A = Object with M;",
+ "class A = Object with M;",
"class B extends A {",
" B();",
"}"]));
@@ -3425,6 +3474,10 @@ class NonErrorResolverTest extends ResolverTestCase {
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);
@@ -3585,6 +3638,14 @@ class NonErrorResolverTest extends ResolverTestCase {
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);
@@ -3985,13 +4046,13 @@ class NonErrorResolverTest extends ResolverTestCase {
final __test = new NonErrorResolverTest();
runJUnitTest(__test, __test.test_mixinDeclaresConstructor_factory);
});
- _ut.test('test_mixinInheritsFromNotObject_classDeclaration_mixTypedef', () {
+ _ut.test('test_mixinInheritsFromNotObject_classDeclaration_mixTypeAlias', () {
final __test = new NonErrorResolverTest();
- runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_classDeclaration_mixTypedef);
+ runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_classDeclaration_mixTypeAlias);
});
- _ut.test('test_mixinInheritsFromNotObject_typedef_mixTypedef', () {
+ _ut.test('test_mixinInheritsFromNotObject_typedef_mixTypeAlias', () {
final __test = new NonErrorResolverTest();
- runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_typedef_mixTypedef);
+ runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_typedef_mixTypeAlias);
});
_ut.test('test_multipleSuperInitializers_no', () {
final __test = new NonErrorResolverTest();
@@ -4165,6 +4226,10 @@ class NonErrorResolverTest extends ResolverTestCase {
final __test = new NonErrorResolverTest();
runJUnitTest(__test, __test.test_prefixCollidesWithTopLevelMembers);
});
+ _ut.test('test_propagateTypeArgsIntoBounds', () {
+ final __test = new NonErrorResolverTest();
+ runJUnitTest(__test, __test.test_propagateTypeArgsIntoBounds);
+ });
_ut.test('test_proxy_annotation_prefixed', () {
final __test = new NonErrorResolverTest();
runJUnitTest(__test, __test.test_proxy_annotation_prefixed);
@@ -4193,6 +4258,10 @@ class NonErrorResolverTest extends ResolverTestCase {
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);
@@ -4309,9 +4378,9 @@ class NonErrorResolverTest extends ResolverTestCase {
final __test = new NonErrorResolverTest();
runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_implicit);
});
- _ut.test('test_undefinedConstructorInInitializer_implicit_typedef', () {
+ _ut.test('test_undefinedConstructorInInitializer_implicit_typeAlias', () {
final __test = new NonErrorResolverTest();
- runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_implicit_typedef);
+ runJUnitTest(__test, __test.test_undefinedConstructorInInitializer_implicit_typeAlias);
});
_ut.test('test_undefinedConstructorInInitializer_redirecting', () {
final __test = new NonErrorResolverTest();
@@ -4511,6 +4580,24 @@ class StaticTypeWarningCodeTest extends ResolverTestCase {
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 {",
@@ -4865,7 +4952,7 @@ class StaticTypeWarningCodeTest extends ResolverTestCase {
"class B {}",
"class C {}",
"class G<E extends A> {}",
- "typedef D = G<B> with C;"]));
+ "class D = G<B> with C;"]));
resolve(source);
assertErrors(source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
verify([source]);
@@ -5040,6 +5127,12 @@ class StaticTypeWarningCodeTest extends ResolverTestCase {
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_undefinedGetter() {
Source source = addSource(EngineTestCase.createSource(["class T {}", "f(T e) { return e.m; }"]));
resolve(source);
@@ -5082,6 +5175,18 @@ class StaticTypeWarningCodeTest extends ResolverTestCase {
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);
@@ -5211,6 +5316,18 @@ class StaticTypeWarningCodeTest extends ResolverTestCase {
}
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);
@@ -5439,6 +5556,10 @@ class StaticTypeWarningCodeTest extends ResolverTestCase {
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_undefinedGetter', () {
final __test = new StaticTypeWarningCodeTest();
runJUnitTest(__test, __test.test_undefinedGetter);
@@ -5459,6 +5580,10 @@ class StaticTypeWarningCodeTest extends ResolverTestCase {
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);
@@ -5924,45 +6049,45 @@ class HintCodeTest extends ResolverTestCase {
resolve(source);
assertErrors(source, [HintCode.UNDEFINED_METHOD]);
}
- void test_undefinedOperator_indexBoth() {
+ void test_undefinedOperator_binaryExpression() {
Source source = addSource(EngineTestCase.createSource([
"class A {}",
"f(var a) {",
" if(a is A) {",
- " a[0]++;",
+ " a + 1;",
" }",
"}"]));
resolve(source);
- assertErrors(source, [HintCode.UNDEFINED_OPERATOR, HintCode.UNDEFINED_OPERATOR]);
+ assertErrors(source, [HintCode.UNDEFINED_OPERATOR]);
}
- void test_undefinedOperator_indexGetter() {
+ void test_undefinedOperator_indexBoth() {
Source source = addSource(EngineTestCase.createSource([
"class A {}",
"f(var a) {",
" if(a is A) {",
- " a[0];",
+ " a[0]++;",
" }",
"}"]));
resolve(source);
- assertErrors(source, [HintCode.UNDEFINED_OPERATOR]);
+ assertErrors(source, [HintCode.UNDEFINED_OPERATOR, HintCode.UNDEFINED_OPERATOR]);
}
- void test_undefinedOperator_indexSetter() {
+ void test_undefinedOperator_indexGetter() {
Source source = addSource(EngineTestCase.createSource([
"class A {}",
"f(var a) {",
" if(a is A) {",
- " a[0] = 1;",
+ " a[0];",
" }",
"}"]));
resolve(source);
assertErrors(source, [HintCode.UNDEFINED_OPERATOR]);
}
- void test_undefinedOperator_plus() {
+ void test_undefinedOperator_indexSetter() {
Source source = addSource(EngineTestCase.createSource([
"class A {}",
"f(var a) {",
" if(a is A) {",
- " a + 1;",
+ " a[0] = 1;",
" }",
"}"]));
resolve(source);
@@ -6274,6 +6399,10 @@ class HintCodeTest extends ResolverTestCase {
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);
@@ -6286,10 +6415,6 @@ class HintCodeTest extends ResolverTestCase {
final __test = new HintCodeTest();
runJUnitTest(__test, __test.test_undefinedOperator_indexSetter);
});
- _ut.test('test_undefinedOperator_plus', () {
- final __test = new HintCodeTest();
- runJUnitTest(__test, __test.test_undefinedOperator_plus);
- });
_ut.test('test_undefinedOperator_postfixExpression', () {
final __test = new HintCodeTest();
runJUnitTest(__test, __test.test_undefinedOperator_postfixExpression);
@@ -7741,6 +7866,12 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
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);
@@ -7759,12 +7890,6 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
assertErrors(source, [CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE]);
verify([source]);
}
- void test_builtInIdentifierAsTypedefName_classTypeAlias() {
- Source source = addSource(EngineTestCase.createSource(["class A {}", "class B {}", "typedef as = A with B;"]));
- resolve(source);
- assertErrors(source, [CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPEDEF_NAME]);
- verify([source]);
- }
void test_builtInIdentifierAsTypedefName_functionTypeAlias() {
Source source = addSource(EngineTestCase.createSource(["typedef bool as();"]));
resolve(source);
@@ -7864,6 +7989,42 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
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 {",
@@ -8067,6 +8228,35 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
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 {",
@@ -8685,8 +8875,8 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_NON_CLASS]);
verify([source]);
}
- void test_implementsNonClass_typedef() {
- Source source = addSource(EngineTestCase.createSource(["class A {}", "int B;", "typedef C = A implements B;"]));
+ 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]);
@@ -9169,12 +9359,8 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
assertErrors(source, [CompileTimeErrorCode.MIXIN_DECLARES_CONSTRUCTOR]);
verify([source]);
}
- void test_mixinDeclaresConstructor_typedef() {
- Source source = addSource(EngineTestCase.createSource([
- "class A {",
- " A() {}",
- "}",
- "typedef B = Object with A;"]));
+ 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]);
@@ -9197,20 +9383,20 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
assertErrors(source, [CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT]);
verify([source]);
}
- void test_mixinInheritsFromNotObject_typedef_extends() {
+ void test_mixinInheritsFromNotObject_typeAlias_extends() {
Source source = addSource(EngineTestCase.createSource([
"class A {}",
"class B extends A {}",
- "typedef C = Object with B;"]));
+ "class C = Object with B;"]));
resolve(source);
assertErrors(source, [CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT]);
verify([source]);
}
- void test_mixinInheritsFromNotObject_typedef_with() {
+ void test_mixinInheritsFromNotObject_typeAlias_with() {
Source source = addSource(EngineTestCase.createSource([
"class A {}",
"class B extends Object with A {}",
- "typedef C = Object with B;"]));
+ "class C = Object with B;"]));
resolve(source);
assertErrors(source, [CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT]);
verify([source]);
@@ -9257,8 +9443,8 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
assertErrors(source, [CompileTimeErrorCode.MIXIN_OF_NON_CLASS]);
verify([source]);
}
- void test_mixinOfNonClass_typedef() {
- Source source = addSource(EngineTestCase.createSource(["class A {}", "int B;", "typedef C = A with B;"]));
+ 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]);
@@ -9279,8 +9465,8 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
assertErrors(source, [CompileTimeErrorCode.MIXIN_WITH_NON_CLASS_SUPERCLASS]);
verify([source]);
}
- void test_mixinWithNonClassSuperclass_typedef() {
- Source source = addSource(EngineTestCase.createSource(["int A;", "class B {}", "typedef C = A with B;"]));
+ 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]);
@@ -9832,11 +10018,11 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
assertErrors(source, [CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_IMPLEMENTS]);
verify([source]);
}
- void test_recursiveInterfaceInheritanceBaseCaseImplements_typedef() {
+ void test_recursiveInterfaceInheritanceBaseCaseImplements_typeAlias() {
Source source = addSource(EngineTestCase.createSource([
"class A {}",
"class M {}",
- "typedef B = A with M implements B;"]));
+ "class B = A with M implements B;"]));
resolve(source);
assertErrors(source, [CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_IMPLEMENTS]);
verify([source]);
@@ -10038,15 +10224,15 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
verify([source]);
}
void test_typeAliasCannotRereferenceItself_mixin_direct() {
- Source source = addSource(EngineTestCase.createSource(["typedef M = Object with M;"]));
+ 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([
- "typedef M1 = Object with M2;",
- "typedef M2 = Object with M1;"]));
+ "class M1 = Object with M2;",
+ "class M2 = Object with M1;"]));
resolve(source);
assertErrors(source, [
CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF,
@@ -10313,6 +10499,10 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
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);
@@ -10333,10 +10523,6 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_builtInIdentifierAsType_variableDeclaration);
});
- _ut.test('test_builtInIdentifierAsTypedefName_classTypeAlias', () {
- final __test = new CompileTimeErrorCodeTest();
- runJUnitTest(__test, __test.test_builtInIdentifierAsTypedefName_classTypeAlias);
- });
_ut.test('test_builtInIdentifierAsTypedefName_functionTypeAlias', () {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_builtInIdentifierAsTypedefName_functionTypeAlias);
@@ -10369,6 +10555,30 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
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);
@@ -10473,6 +10683,14 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
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);
@@ -10753,9 +10971,9 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_implementsNonClass_class);
});
- _ut.test('test_implementsNonClass_typedef', () {
+ _ut.test('test_implementsNonClass_typeAlias', () {
final __test = new CompileTimeErrorCodeTest();
- runJUnitTest(__test, __test.test_implementsNonClass_typedef);
+ runJUnitTest(__test, __test.test_implementsNonClass_typeAlias);
});
_ut.test('test_implementsRepeated', () {
final __test = new CompileTimeErrorCodeTest();
@@ -11001,9 +11219,9 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_mixinDeclaresConstructor_classDeclaration);
});
- _ut.test('test_mixinDeclaresConstructor_typedef', () {
+ _ut.test('test_mixinDeclaresConstructor_typeAlias', () {
final __test = new CompileTimeErrorCodeTest();
- runJUnitTest(__test, __test.test_mixinDeclaresConstructor_typedef);
+ runJUnitTest(__test, __test.test_mixinDeclaresConstructor_typeAlias);
});
_ut.test('test_mixinInheritsFromNotObject_classDeclaration_extends', () {
final __test = new CompileTimeErrorCodeTest();
@@ -11013,13 +11231,13 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_classDeclaration_with);
});
- _ut.test('test_mixinInheritsFromNotObject_typedef_extends', () {
+ _ut.test('test_mixinInheritsFromNotObject_typeAlias_extends', () {
final __test = new CompileTimeErrorCodeTest();
- runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_typedef_extends);
+ runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_typeAlias_extends);
});
- _ut.test('test_mixinInheritsFromNotObject_typedef_with', () {
+ _ut.test('test_mixinInheritsFromNotObject_typeAlias_with', () {
final __test = new CompileTimeErrorCodeTest();
- runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_typedef_with);
+ runJUnitTest(__test, __test.test_mixinInheritsFromNotObject_typeAlias_with);
});
_ut.test('test_mixinOfDisallowedClass_Null', () {
final __test = new CompileTimeErrorCodeTest();
@@ -11049,9 +11267,9 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_mixinOfNonClass_class);
});
- _ut.test('test_mixinOfNonClass_typedef', () {
+ _ut.test('test_mixinOfNonClass_typeAlias', () {
final __test = new CompileTimeErrorCodeTest();
- runJUnitTest(__test, __test.test_mixinOfNonClass_typedef);
+ runJUnitTest(__test, __test.test_mixinOfNonClass_typeAlias);
});
_ut.test('test_mixinReferencesSuper', () {
final __test = new CompileTimeErrorCodeTest();
@@ -11061,9 +11279,9 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_mixinWithNonClassSuperclass_class);
});
- _ut.test('test_mixinWithNonClassSuperclass_typedef', () {
+ _ut.test('test_mixinWithNonClassSuperclass_typeAlias', () {
final __test = new CompileTimeErrorCodeTest();
- runJUnitTest(__test, __test.test_mixinWithNonClassSuperclass_typedef);
+ runJUnitTest(__test, __test.test_mixinWithNonClassSuperclass_typeAlias);
});
_ut.test('test_multipleRedirectingConstructorInvocations', () {
final __test = new CompileTimeErrorCodeTest();
@@ -11281,9 +11499,9 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_recursiveInterfaceInheritanceBaseCaseImplements);
});
- _ut.test('test_recursiveInterfaceInheritanceBaseCaseImplements_typedef', () {
+ _ut.test('test_recursiveInterfaceInheritanceBaseCaseImplements_typeAlias', () {
final __test = new CompileTimeErrorCodeTest();
- runJUnitTest(__test, __test.test_recursiveInterfaceInheritanceBaseCaseImplements_typedef);
+ runJUnitTest(__test, __test.test_recursiveInterfaceInheritanceBaseCaseImplements_typeAlias);
});
_ut.test('test_recursiveInterfaceInheritance_extends', () {
final __test = new CompileTimeErrorCodeTest();
@@ -12801,17 +13019,6 @@ class PubSuggestionCodeTest extends ResolverTestCase {
}
}
class StaticWarningCodeTest extends ResolverTestCase {
- void fail_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 fail_commentReferenceConstructorNotVisible() {
Source source = addSource(EngineTestCase.createSource([]));
resolve(source);
@@ -13148,6 +13355,17 @@ class StaticWarningCodeTest extends ResolverTestCase {
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])) {}",
@@ -13267,6 +13485,21 @@ class StaticWarningCodeTest extends ResolverTestCase {
assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_CONST]);
verify([source]);
}
+ void test_assignmentToFinal_excludedSetter() {
+ Source source = addSource(EngineTestCase.createSource([
+ "class A {",
+ " var v;",
+ "}",
+ "class B extends A {",
+ " final v = 0;",
+ "}",
+ "main() {",
+ " new B().v = 1;",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_FINAL]);
+ verify([source]);
+ }
void test_assignmentToFinal_instanceVariable() {
Source source = addSource(EngineTestCase.createSource([
"class A {",
@@ -13369,6 +13602,16 @@ class StaticWarningCodeTest extends ResolverTestCase {
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 {",
@@ -13931,7 +14174,7 @@ class StaticWarningCodeTest extends ResolverTestCase {
assertErrors(source, [StaticWarningCode.INVALID_OVERRIDE_NAMED]);
verify([source]);
}
- void test_invalidOverridePositional() {
+ void test_invalidOverridePositional_optional() {
Source source = addSource(EngineTestCase.createSource([
"class A {",
" m([a, b]) {}",
@@ -13943,6 +14186,30 @@ class StaticWarningCodeTest extends ResolverTestCase {
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 {",
@@ -14168,6 +14435,18 @@ class StaticWarningCodeTest extends ResolverTestCase {
assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
verify([source]);
}
+ void test_nonAbstractClassInheritsAbstractMemberOne_setter_excluded() {
+ Source source = addSource(EngineTestCase.createSource([
+ "class A {",
+ " final int x = 0;",
+ "}",
+ "class B implements A {",
+ " int get x => 42;",
+ "}"]));
+ 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 {",
@@ -14548,6 +14827,30 @@ class StaticWarningCodeTest extends ResolverTestCase {
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);
@@ -14650,6 +14953,10 @@ class StaticWarningCodeTest extends ResolverTestCase {
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);
@@ -14702,6 +15009,10 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_assignmentToConst_localVariable);
});
+ _ut.test('test_assignmentToFinal_excludedSetter', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_assignmentToFinal_excludedSetter);
+ });
_ut.test('test_assignmentToFinal_instanceVariable', () {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_assignmentToFinal_instanceVariable);
@@ -14750,6 +15061,10 @@ class StaticWarningCodeTest extends ResolverTestCase {
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);
@@ -14954,9 +15269,17 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_invalidOverrideNamed_missingNamedParameter);
});
- _ut.test('test_invalidOverridePositional', () {
+ _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);
+ runJUnitTest(__test, __test.test_invalidOverridePositional_optionalAndRequired2);
});
_ut.test('test_invalidOverrideRequired', () {
final __test = new StaticWarningCodeTest();
@@ -15046,6 +15369,10 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_method_optionalParamCount);
});
+ _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_setter_excluded', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_setter_excluded);
+ });
_ut.test('test_nonAbstractClassInheritsAbstractMemberOne_setter_fromInterface', () {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_setter_fromInterface);
@@ -15234,6 +15561,14 @@ class StaticWarningCodeTest extends ResolverTestCase {
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);
@@ -15794,7 +16129,7 @@ class LibraryImportScopeTest extends ResolverTestCase {
GatheringErrorListener errorListener = new GatheringErrorListener();
Scope scope = new LibraryImportScope(importingLibrary, errorListener);
JUnitTestCase.assertEquals(type, scope.lookup(ASTFactory.identifier3(typeName), importingLibrary));
- errorListener.assertNoErrors();
+ errorListener.assertErrors2([StaticWarningCode.CONFLICTING_DART_IMPORT]);
}
void test_nonConflictingImports_sameElement() {
AnalysisContext context = new AnalysisContextImpl();
@@ -17473,6 +17808,145 @@ class NonHintCodeTest extends ResolverTestCase {
assertNoErrors(source);
verify([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_dynamic_type() {
Source source = addSource(EngineTestCase.createSource(["m(v) {", " var b = v as Object;", "}"]));
resolve(source);
@@ -17618,6 +18092,46 @@ class NonHintCodeTest extends ResolverTestCase {
final __test = new NonHintCodeTest();
runJUnitTest(__test, __test.test_overrideEqualsButNotHashCode);
});
+ _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);
@@ -18765,12 +19279,96 @@ class SimpleResolverTest extends ResolverTestCase {
});
}
}
+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();
« no previous file with comments | « pkg/analyzer_experimental/test/generated/parser_test.dart ('k') | pkg/pkg.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698