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

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

Side-by-side diff isn't available for this file because of its large size.
Issue 285423002: New analyzer snapshot (with CaughtException). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Replace AnalysisException with CaughtException Created 6 years, 7 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:
Download patch
« no previous file with comments | « pkg/analyzer/test/generated/element_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/test/generated/resolver_test.dart
diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart
index 2b11e3b9c5e3d3b79967815124d3b1b7f8d9fa6a..cbea5a5823552ce6cba87c87ff57dc21773f63ee 100644
--- a/pkg/analyzer/test/generated/resolver_test.dart
+++ b/pkg/analyzer/test/generated/resolver_test.dart
@@ -587,6 +587,18 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
verify([source]);
}
+ void test_constConstructorWithMixin() {
+ Source source = addSource(EngineTestCase.createSource([
+ "class M {",
+ "}",
+ "class A extends Object with M {",
+ " const A();",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_MIXIN]);
+ verify([source]);
+ }
+
void test_constConstructorWithNonConstSuper_explicit() {
Source source = addSource(EngineTestCase.createSource([
"class A {",
@@ -622,7 +634,9 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
" const B();",
"}"]));
resolve(source);
- assertErrors(source, [CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_FINAL_FIELD]);
+ assertErrors(source, [
+ CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_MIXIN,
+ CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_FINAL_FIELD]);
verify([source]);
}
@@ -681,6 +695,19 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
verify([source]);
}
+ void test_constEval_newInstance_externalFactoryConstConstructor() {
+ // We can't evaluate "const A()" because its constructor is external. But
+ // the code is correct--we shouldn't report an error.
+ Source source = addSource(EngineTestCase.createSource([
+ "class A {",
+ " external factory const A();",
+ "}",
+ "const x = const A();"]));
+ resolve(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
void test_constEval_propertyExtraction_targetNotConst() {
Source source = addSource(EngineTestCase.createSource([
"class A {",
@@ -740,6 +767,7 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
resolve(source);
assertErrors(source, [
CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL,
+ StaticTypeWarningCode.NON_BOOL_OPERAND,
HintCode.DEAD_CODE]);
verify([source]);
}
@@ -2154,6 +2182,12 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
assertErrors(source, [CompileTimeErrorCode.INVALID_ANNOTATION]);
}
+ void test_invalidAnnotation_useLibraryScope() {
+ Source source = addSource(EngineTestCase.createSource(["@foo", "class A {", " static const foo = null;", "}"]));
+ resolve(source);
+ assertErrors(source, [CompileTimeErrorCode.INVALID_ANNOTATION]);
+ }
+
void test_invalidAnnotationFromDeferredLibrary() {
// See test_invalidAnnotation_notConstantVariable
addNamedSource("/lib1.dart", EngineTestCase.createSource([
@@ -2193,12 +2227,6 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
verify([source]);
}
- void test_invalidAnnotation_useLibraryScope() {
- Source source = addSource(EngineTestCase.createSource(["@foo", "class A {", " static const foo = null;", "}"]));
- resolve(source);
- assertErrors(source, [CompileTimeErrorCode.INVALID_ANNOTATION]);
- }
-
void test_invalidConstructorName_notEnclosingClassName_defined() {
Source source = addSource(EngineTestCase.createSource(["class A {", " B() : super();", "}", "class B {}"]));
resolve(source);
@@ -2963,7 +2991,9 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
" const A(String p) : a = p && true;",
"}"]));
resolve(source);
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL]);
+ assertErrors(source, [
+ CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL,
+ StaticTypeWarningCode.NON_BOOL_OPERAND]);
verify([source]);
}
@@ -2974,7 +3004,9 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
" const A(String p) : a = true && p;",
"}"]));
resolve(source);
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL]);
+ assertErrors(source, [
+ CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL,
+ StaticTypeWarningCode.NON_BOOL_OPERAND]);
verify([source]);
}
@@ -3999,7 +4031,9 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
" const A(bool p) : a = ${expr};",
"}"]));
resolve(source);
- assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL]);
+ assertErrors(source, [
+ CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL,
+ StaticTypeWarningCode.NON_BOOL_OPERAND]);
verify([source]);
reset();
}
@@ -4135,6 +4169,10 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_consistentCaseExpressionTypes_dynamic);
});
+ _ut.test('test_constConstructorWithMixin', () {
+ final __test = new CompileTimeErrorCodeTest();
+ runJUnitTest(__test, __test.test_constConstructorWithMixin);
+ });
_ut.test('test_constConstructorWithNonConstSuper_explicit', () {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_constConstructorWithNonConstSuper_explicit);
@@ -4215,6 +4253,10 @@ class CompileTimeErrorCodeTest extends ResolverTestCase {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_constEval_newInstance_constConstructor);
});
+ _ut.test('test_constEval_newInstance_externalFactoryConstConstructor', () {
+ final __test = new CompileTimeErrorCodeTest();
+ runJUnitTest(__test, __test.test_constEval_newInstance_externalFactoryConstConstructor);
+ });
_ut.test('test_constEval_propertyExtraction_targetNotConst', () {
final __test = new CompileTimeErrorCodeTest();
runJUnitTest(__test, __test.test_constEval_propertyExtraction_targetNotConst);
@@ -6122,6 +6164,34 @@ class DeferredLoadingTest extends ResolverTestCase {
verify([source]);
}
+ void test_typeAnnotationDeferredClass_asExpression() {
+ addNamedSource("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"]));
+ Source source = addSource(EngineTestCase.createSource([
+ "library root;",
+ "import 'lib1.dart' deferred as a;",
+ "f(var v) {",
+ " v as a.A;",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.TYPE_ANNOTATION_DEFERRED_CLASS]);
+ verify([source]);
+ }
+
+ void test_typeAnnotationDeferredClass_catchClause() {
+ addNamedSource("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"]));
+ Source source = addSource(EngineTestCase.createSource([
+ "library root;",
+ "import 'lib1.dart' deferred as a;",
+ "f(var v) {",
+ " try {",
+ " } on a.A {",
+ " }",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.TYPE_ANNOTATION_DEFERRED_CLASS]);
+ verify([source]);
+ }
+
void test_typeAnnotationDeferredClass_fieldFormalParameter() {
addNamedSource("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"]));
Source source = addSource(EngineTestCase.createSource([
@@ -6158,6 +6228,19 @@ class DeferredLoadingTest extends ResolverTestCase {
verify([source]);
}
+ void test_typeAnnotationDeferredClass_isExpression() {
+ addNamedSource("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"]));
+ Source source = addSource(EngineTestCase.createSource([
+ "library root;",
+ "import 'lib1.dart' deferred as a;",
+ "f(var v) {",
+ " bool b = v is a.A;",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.TYPE_ANNOTATION_DEFERRED_CLASS]);
+ verify([source]);
+ }
+
void test_typeAnnotationDeferredClass_methodDeclaration_returnType() {
addNamedSource("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"]));
Source source = addSource(EngineTestCase.createSource([
@@ -6371,6 +6454,14 @@ class DeferredLoadingTest extends ResolverTestCase {
final __test = new DeferredLoadingTest();
runJUnitTest(__test, __test.test_sharedDeferredPrefix_nonTest);
});
+ _ut.test('test_typeAnnotationDeferredClass_asExpression', () {
+ final __test = new DeferredLoadingTest();
+ runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_asExpression);
+ });
+ _ut.test('test_typeAnnotationDeferredClass_catchClause', () {
+ final __test = new DeferredLoadingTest();
+ runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_catchClause);
+ });
_ut.test('test_typeAnnotationDeferredClass_fieldFormalParameter', () {
final __test = new DeferredLoadingTest();
runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_fieldFormalParameter);
@@ -6383,6 +6474,10 @@ class DeferredLoadingTest extends ResolverTestCase {
final __test = new DeferredLoadingTest();
runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_functionTypedFormalParameter_returnType);
});
+ _ut.test('test_typeAnnotationDeferredClass_isExpression', () {
+ final __test = new DeferredLoadingTest();
+ runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_isExpression);
+ });
_ut.test('test_typeAnnotationDeferredClass_methodDeclaration_returnType', () {
final __test = new DeferredLoadingTest();
runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_methodDeclaration_returnType);
@@ -10914,6 +11009,38 @@ class NonErrorResolverTest extends ResolverTestCase {
verify([source]);
}
+ void test_assignmentToFinalNoSetter_prefixedIdentifier() {
+ Source source = addSource(EngineTestCase.createSource([
+ "class A {",
+ " int get x => 0;",
+ " set x(v) {}",
+ "}",
+ "main() {",
+ " A a = new A();",
+ " a.x = 0;",
+ "}"]));
+ resolve(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
+ void test_assignmentToFinalNoSetter_propertyAccess() {
+ Source source = addSource(EngineTestCase.createSource([
+ "class A {",
+ " int get x => 0;",
+ " set x(v) {}",
+ "}",
+ "class B {",
+ " static A a;",
+ "}",
+ "main() {",
+ " B.a.x = 0;",
+ "}"]));
+ resolve(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
void test_assignmentToFinals_importWithPrefix() {
Source source = addSource(EngineTestCase.createSource([
"library lib;",
@@ -11256,7 +11383,7 @@ class NonErrorResolverTest extends ResolverTestCase {
" const B();",
"}"]));
resolve(source);
- assertNoErrors(source);
+ assertErrors(source, [CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_MIXIN]);
verify([source]);
}
@@ -13135,6 +13262,46 @@ class NonErrorResolverTest extends ResolverTestCase {
verify([source]);
}
+ void test_nonBoolOperand_and_bool() {
+ Source source = addSource(EngineTestCase.createSource([
+ "bool f(bool left, bool right) {",
+ " return left && right;",
+ "}"]));
+ resolve(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
+ void test_nonBoolOperand_and_dynamic() {
+ Source source = addSource(EngineTestCase.createSource([
+ "bool f(left, dynamic right) {",
+ " return left && right;",
+ "}"]));
+ resolve(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
+ void test_nonBoolOperand_or_bool() {
+ Source source = addSource(EngineTestCase.createSource([
+ "bool f(bool left, bool right) {",
+ " return left || right;",
+ "}"]));
+ resolve(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
+ void test_nonBoolOperand_or_dynamic() {
+ Source source = addSource(EngineTestCase.createSource([
+ "bool f(dynamic left, right) {",
+ " return left || right;",
+ "}"]));
+ resolve(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
void test_nonConstantDefaultValue_function_named() {
Source source = addSource(EngineTestCase.createSource(["f({x : 2 + 3}) {}"]));
resolve(source);
@@ -14701,6 +14868,14 @@ class NonErrorResolverTest extends ResolverTestCase {
final __test = new NonErrorResolverTest();
runJUnitTest(__test, __test.test_argumentTypeNotAssignable_typedef_parameter);
});
+ _ut.test('test_assignmentToFinalNoSetter_prefixedIdentifier', () {
+ final __test = new NonErrorResolverTest();
+ runJUnitTest(__test, __test.test_assignmentToFinalNoSetter_prefixedIdentifier);
+ });
+ _ut.test('test_assignmentToFinalNoSetter_propertyAccess', () {
+ final __test = new NonErrorResolverTest();
+ runJUnitTest(__test, __test.test_assignmentToFinalNoSetter_propertyAccess);
+ });
_ut.test('test_assignmentToFinal_prefixNegate', () {
final __test = new NonErrorResolverTest();
runJUnitTest(__test, __test.test_assignmentToFinal_prefixNegate);
@@ -15469,6 +15644,22 @@ class NonErrorResolverTest extends ResolverTestCase {
final __test = new NonErrorResolverTest();
runJUnitTest(__test, __test.test_nonBoolNegationExpression);
});
+ _ut.test('test_nonBoolOperand_and_bool', () {
+ final __test = new NonErrorResolverTest();
+ runJUnitTest(__test, __test.test_nonBoolOperand_and_bool);
+ });
+ _ut.test('test_nonBoolOperand_and_dynamic', () {
+ final __test = new NonErrorResolverTest();
+ runJUnitTest(__test, __test.test_nonBoolOperand_and_dynamic);
+ });
+ _ut.test('test_nonBoolOperand_or_bool', () {
+ final __test = new NonErrorResolverTest();
+ runJUnitTest(__test, __test.test_nonBoolOperand_or_bool);
+ });
+ _ut.test('test_nonBoolOperand_or_dynamic', () {
+ final __test = new NonErrorResolverTest();
+ runJUnitTest(__test, __test.test_nonBoolOperand_or_dynamic);
+ });
_ut.test('test_nonConstCaseExpression', () {
final __test = new NonErrorResolverTest();
runJUnitTest(__test, __test.test_nonConstCaseExpression);
@@ -17010,7 +17201,7 @@ class RecursiveAstVisitor_SimpleResolverTest_test_localVariable_types_invoked ex
List<bool> found;
- List<AnalysisException> thrownException;
+ List<CaughtException> thrownException;
RecursiveAstVisitor_SimpleResolverTest_test_localVariable_types_invoked(this.SimpleResolverTest_this, this.found, this.thrownException) : super();
@@ -17025,8 +17216,8 @@ class RecursiveAstVisitor_SimpleResolverTest_test_localVariable_types_invoked ex
// check propagated type
FunctionType propagatedType = node.propagatedType as FunctionType;
JUnitTestCase.assertEquals(SimpleResolverTest_this.typeProvider.stringType, propagatedType.returnType);
- } on AnalysisException catch (e) {
- thrownException[0] = e;
+ } on AnalysisException catch (e, stackTrace) {
+ thrownException[0] = new CaughtException(e, stackTrace);
}
}
return null;
@@ -17408,6 +17599,19 @@ class ResolverTestCase extends EngineTestCase {
return library;
}
+ Expression findTopLevelConstantExpression(CompilationUnit compilationUnit, String name) {
+ for (CompilationUnitMember member in compilationUnit.declarations) {
+ if (member is TopLevelVariableDeclaration) {
+ for (VariableDeclaration variable in member.variables.variables) {
+ if (variable.name.name == name) {
+ return variable.initializer;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
AnalysisContext get analysisContext => _analysisContext;
/**
@@ -17457,6 +17661,12 @@ class ResolverTestCase extends EngineTestCase {
*/
CompilationUnit resolveCompilationUnit(Source source, LibraryElement library) => _analysisContext.resolveCompilationUnit(source, library);
+ CompilationUnit resolveSource(String sourceText) {
+ Source source = addSource(sourceText);
+ LibraryElement library = analysisContext.computeLibraryElement(source);
+ return analysisContext.resolveCompilationUnit(source, library);
+ }
+
@override
void tearDown() {
_analysisContext = null;
@@ -18312,10 +18522,10 @@ class SimpleResolverTest extends ResolverTestCase {
CompilationUnit unit = analysisContext.getResolvedCompilationUnit(source, library);
JUnitTestCase.assertNotNull(unit);
List<bool> found = [false];
- List<AnalysisException> thrownException = new List<AnalysisException>(1);
+ List<CaughtException> thrownException = new List<CaughtException>(1);
unit.accept(new RecursiveAstVisitor_SimpleResolverTest_test_localVariable_types_invoked(this, found, thrownException));
if (thrownException[0] != null) {
- throw new AnalysisException.con3(thrownException[0]);
+ throw new AnalysisException("Exception", new CaughtException(thrownException[0], null));
}
JUnitTestCase.assertTrue(found[0]);
}
@@ -20672,6 +20882,46 @@ class StaticTypeWarningCodeTest extends ResolverTestCase {
verify([source]);
}
+ void test_nonBoolOperand_and_left() {
+ Source source = addSource(EngineTestCase.createSource([
+ "bool f(int left, bool right) {",
+ " return left && right;",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticTypeWarningCode.NON_BOOL_OPERAND]);
+ verify([source]);
+ }
+
+ void test_nonBoolOperand_and_right() {
+ Source source = addSource(EngineTestCase.createSource([
+ "bool f(bool left, String right) {",
+ " return left && right;",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticTypeWarningCode.NON_BOOL_OPERAND]);
+ verify([source]);
+ }
+
+ void test_nonBoolOperand_or_left() {
+ Source source = addSource(EngineTestCase.createSource([
+ "bool f(List<int> left, bool right) {",
+ " return left || right;",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticTypeWarningCode.NON_BOOL_OPERAND]);
+ verify([source]);
+ }
+
+ void test_nonBoolOperand_or_right() {
+ Source source = addSource(EngineTestCase.createSource([
+ "bool f(bool left, double right) {",
+ " return left || right;",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticTypeWarningCode.NON_BOOL_OPERAND]);
+ verify([source]);
+ }
+
void test_nonTypeAsTypeArgument_notAType() {
Source source = addSource(EngineTestCase.createSource(["int A;", "class B<E> {}", "f(B<A> b) {}"]));
resolve(source);
@@ -21671,6 +21921,22 @@ class StaticTypeWarningCodeTest extends ResolverTestCase {
final __test = new StaticTypeWarningCodeTest();
runJUnitTest(__test, __test.test_nonBoolNegationExpression);
});
+ _ut.test('test_nonBoolOperand_and_left', () {
+ final __test = new StaticTypeWarningCodeTest();
+ runJUnitTest(__test, __test.test_nonBoolOperand_and_left);
+ });
+ _ut.test('test_nonBoolOperand_and_right', () {
+ final __test = new StaticTypeWarningCodeTest();
+ runJUnitTest(__test, __test.test_nonBoolOperand_and_right);
+ });
+ _ut.test('test_nonBoolOperand_or_left', () {
+ final __test = new StaticTypeWarningCodeTest();
+ runJUnitTest(__test, __test.test_nonBoolOperand_or_left);
+ });
+ _ut.test('test_nonBoolOperand_or_right', () {
+ final __test = new StaticTypeWarningCodeTest();
+ runJUnitTest(__test, __test.test_nonBoolOperand_or_right);
+ });
_ut.test('test_nonTypeAsTypeArgument_notAType', () {
final __test = new StaticTypeWarningCodeTest();
runJUnitTest(__test, __test.test_nonTypeAsTypeArgument_notAType);
@@ -22581,31 +22847,29 @@ class StaticWarningCodeTest extends ResolverTestCase {
verify([source]);
}
- void test_assignmentToFinal_prefixMinusMinus() {
- Source source = addSource(EngineTestCase.createSource(["f() {", " final x = 0;", " --x;", "}"]));
+ void test_assignmentToFinal_postfixMinusMinus() {
+ 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;", "}"]));
+ void test_assignmentToFinal_postfixPlusPlus() {
+ 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;",
- "}"]));
+ 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]);
@@ -22632,6 +22896,36 @@ class StaticWarningCodeTest extends ResolverTestCase {
verify([source]);
}
+ void test_assignmentToFinalNoSetter_prefixedIdentifier() {
+ Source source = addSource(EngineTestCase.createSource([
+ "class A {",
+ " int get x => 0;",
+ "}",
+ "main() {",
+ " A a = new A();",
+ " a.x = 0;",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.ASSIGNMENT_TO_FINAL_NO_SETTER]);
+ verify([source]);
+ }
+
+ void test_assignmentToFinalNoSetter_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_NO_SETTER]);
+ verify([source]);
+ }
+
void test_assignmentToFunction() {
Source source = addSource(EngineTestCase.createSource(["f() {}", "main() {", " f = null;", "}"]));
resolve(source);
@@ -22912,6 +23206,29 @@ class StaticWarningCodeTest extends ResolverTestCase {
verify([source]);
}
+ void test_equalKeysInMap_withEqualTypeParams() {
+ Source source = addSource(EngineTestCase.createSource([
+ "class A<T> {",
+ " const A();",
+ "}",
+ "var m = {const A<int>(): 0, const A<int>(): 1};"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.EQUAL_KEYS_IN_MAP]);
+ verify([source]);
+ }
+
+ void test_equalKeysInMap_withUnequalTypeParams() {
+ // No error should be produced because A<int> and A<num> are different types.
+ Source source = addSource(EngineTestCase.createSource([
+ "class A<T> {",
+ " const A();",
+ "}",
+ "var m = {const A<int>(): 0, const A<num>(): 1};"]));
+ resolve(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
void test_exportDuplicatedLibraryName() {
Source source = addSource(EngineTestCase.createSource([
"library test;",
@@ -24360,6 +24677,34 @@ class StaticWarningCodeTest extends ResolverTestCase {
verify([source]);
}
+ void test_typeAnnotationDeferredClass_asExpression() {
+ addNamedSource("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"]));
+ Source source = addSource(EngineTestCase.createSource([
+ "library root;",
+ "import 'lib1.dart' deferred as a;",
+ "f(var v) {",
+ " v as a.A;",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.TYPE_ANNOTATION_DEFERRED_CLASS]);
+ verify([source]);
+ }
+
+ void test_typeAnnotationDeferredClass_catchClause() {
+ addNamedSource("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"]));
+ Source source = addSource(EngineTestCase.createSource([
+ "library root;",
+ "import 'lib1.dart' deferred as a;",
+ "f(var v) {",
+ " try {",
+ " } on a.A {",
+ " }",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.TYPE_ANNOTATION_DEFERRED_CLASS]);
+ verify([source]);
+ }
+
void test_typeAnnotationDeferredClass_fieldFormalParameter() {
addNamedSource("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"]));
Source source = addSource(EngineTestCase.createSource([
@@ -24396,6 +24741,19 @@ class StaticWarningCodeTest extends ResolverTestCase {
verify([source]);
}
+ void test_typeAnnotationDeferredClass_isExpression() {
+ addNamedSource("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"]));
+ Source source = addSource(EngineTestCase.createSource([
+ "library root;",
+ "import 'lib1.dart' deferred as a;",
+ "f(var v) {",
+ " bool b = v is a.A;",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.TYPE_ANNOTATION_DEFERRED_CLASS]);
+ verify([source]);
+ }
+
void test_typeAnnotationDeferredClass_methodDeclaration_returnType() {
addNamedSource("/lib1.dart", EngineTestCase.createSource(["library lib1;", "class A {}"]));
Source source = addSource(EngineTestCase.createSource([
@@ -24861,6 +25219,14 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_assignmentToConst_localVariable_plusEq);
});
+ _ut.test('test_assignmentToFinalNoSetter_prefixedIdentifier', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_assignmentToFinalNoSetter_prefixedIdentifier);
+ });
+ _ut.test('test_assignmentToFinalNoSetter_propertyAccess', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_assignmentToFinalNoSetter_propertyAccess);
+ });
_ut.test('test_assignmentToFinal_instanceVariable', () {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_assignmentToFinal_instanceVariable);
@@ -24877,6 +25243,14 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_assignmentToFinal_localVariable_plusEq);
});
+ _ut.test('test_assignmentToFinal_postfixMinusMinus', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_assignmentToFinal_postfixMinusMinus);
+ });
+ _ut.test('test_assignmentToFinal_postfixPlusPlus', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_assignmentToFinal_postfixPlusPlus);
+ });
_ut.test('test_assignmentToFinal_prefixMinusMinus', () {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_assignmentToFinal_prefixMinusMinus);
@@ -24885,10 +25259,6 @@ class StaticWarningCodeTest extends ResolverTestCase {
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);
@@ -25001,6 +25371,14 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_equalKeysInMap);
});
+ _ut.test('test_equalKeysInMap_withEqualTypeParams', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_equalKeysInMap_withEqualTypeParams);
+ });
+ _ut.test('test_equalKeysInMap_withUnequalTypeParams', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_equalKeysInMap_withUnequalTypeParams);
+ });
_ut.test('test_exportDuplicatedLibraryName', () {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_exportDuplicatedLibraryName);
@@ -25489,6 +25867,14 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_switchExpressionNotAssignable);
});
+ _ut.test('test_typeAnnotationDeferredClass_asExpression', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_asExpression);
+ });
+ _ut.test('test_typeAnnotationDeferredClass_catchClause', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_catchClause);
+ });
_ut.test('test_typeAnnotationDeferredClass_fieldFormalParameter', () {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_fieldFormalParameter);
@@ -25501,6 +25887,10 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_functionTypedFormalParameter_returnType);
});
+ _ut.test('test_typeAnnotationDeferredClass_isExpression', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_isExpression);
+ });
_ut.test('test_typeAnnotationDeferredClass_methodDeclaration_returnType', () {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_typeAnnotationDeferredClass_methodDeclaration_returnType);
@@ -27964,8 +28354,8 @@ main() {
// ErrorResolverTest.dartSuite();
// HintCodeTest.dartSuite();
// MemberMapTest.dartSuite();
-// NonHintCodeTest.dartSuite();
// NonErrorResolverTest.dartSuite();
+// NonHintCodeTest.dartSuite();
// SimpleResolverTest.dartSuite();
// StaticTypeWarningCodeTest.dartSuite();
// StaticWarningCodeTest.dartSuite();
« no previous file with comments | « pkg/analyzer/test/generated/element_test.dart ('k') | pkg/pkg.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698