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

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 221483002: Fix for translation of \!= to \!identical(), but use == and \!= for Enum. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 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/ast_test.dart ('k') | pkg/analyzer/test/generated/scanner_test.dart » ('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 3a9d2b9397499829dbf5ca06facc29f206fe878e..4054c212a442b6ad9dc20deb55538eb6aa77a13f 100644
--- a/pkg/analyzer/test/generated/resolver_test.dart
+++ b/pkg/analyzer/test/generated/resolver_test.dart
@@ -7733,6 +7733,33 @@ class StaticTypeWarningCodeTest extends ResolverTestCase {
}
class HintCodeTest extends ResolverTestCase {
+ void fail_deadCode_statementAfterRehrow() {
+ Source source = addSource(EngineTestCase.createSource([
+ "f() {",
+ " try {",
+ " var one = 1;",
+ " } catch (e) {",
+ " rethrow;",
+ " var two = 2;",
+ " }",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [HintCode.DEAD_CODE]);
+ verify([source]);
+ }
+
+ void fail_deadCode_statementAfterThrow() {
+ Source source = addSource(EngineTestCase.createSource([
+ "f() {",
+ " var one = 1;",
+ " throw 'Stop here';",
+ " var two = 2;",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [HintCode.DEAD_CODE]);
+ verify([source]);
+ }
+
void fail_isInt() {
Source source = addSource(EngineTestCase.createSource(["var v = 1 is int;"]));
resolve(source);
@@ -16090,12 +16117,30 @@ class ElementResolverTest extends EngineTestCase {
}
void test_visitBinaryExpression() {
+ // num i;
+ // var j;
+ // i + j
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);
+ JUnitTestCase.assertNull(expression.propagatedElement);
+ _listener.assertNoErrors();
+ }
+
+ void test_visitBinaryExpression_propagatedElement() {
+ // var i = 1;
+ // var j;
+ // i + j
+ InterfaceType numType = _typeProvider.numType;
+ SimpleIdentifier left = AstFactory.identifier3("i");
+ left.propagatedType = numType;
+ BinaryExpression expression = AstFactory.binaryExpression(left, TokenType.PLUS, AstFactory.identifier3("j"));
+ _resolveNode(expression, []);
+ JUnitTestCase.assertNull(expression.staticElement);
+ JUnitTestCase.assertEquals(getMethod(numType, "+"), expression.propagatedElement);
_listener.assertNoErrors();
}
@@ -16691,6 +16736,10 @@ class ElementResolverTest extends EngineTestCase {
final __test = new ElementResolverTest();
runJUnitTest(__test, __test.test_visitBinaryExpression);
});
+ _ut.test('test_visitBinaryExpression_propagatedElement', () {
+ final __test = new ElementResolverTest();
+ runJUnitTest(__test, __test.test_visitBinaryExpression_propagatedElement);
+ });
_ut.test('test_visitBreakStatement_withLabel', () {
final __test = new ElementResolverTest();
runJUnitTest(__test, __test.test_visitBreakStatement_withLabel);
@@ -18932,6 +18981,34 @@ class StaticWarningCodeTest extends ResolverTestCase {
verify([source]);
}
+ void test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingGetter() {
+ // 16133
+ Source source = addSource(EngineTestCase.createSource([
+ "class I {",
+ " var v;",
+ "}",
+ "class C implements I {",
+ " set v(_) {}",
+ "}"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
+ verify([source]);
+ }
+
+ void test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingSetter() {
+ // 16133
+ Source source = addSource(EngineTestCase.createSource([
+ "class I {",
+ " var v;",
+ "}",
+ "class C implements I {",
+ " get v => 1;",
+ "}"]));
+ 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 {",
@@ -18959,6 +19036,19 @@ class StaticWarningCodeTest extends ResolverTestCase {
verify([source]);
}
+ void test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromInterface_missingBoth() {
+ // 16133
+ Source source = addSource(EngineTestCase.createSource([
+ "class I {",
+ " var v;",
+ "}",
+ "class C implements I {",
+ "}"]));
+ 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);
@@ -19101,13 +19191,42 @@ class StaticWarningCodeTest extends ResolverTestCase {
verify([source]);
}
- void test_returnWithoutValue() {
+ void test_returnWithoutValue_factoryConstructor() {
+ Source source = addSource(EngineTestCase.createSource(["class A { factory A() { return; } }"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.RETURN_WITHOUT_VALUE]);
+ verify([source]);
+ }
+
+ void test_returnWithoutValue_function() {
Source source = addSource(EngineTestCase.createSource(["int f() { return; }"]));
resolve(source);
assertErrors(source, [StaticWarningCode.RETURN_WITHOUT_VALUE]);
verify([source]);
}
+ void test_returnWithoutValue_method() {
+ Source source = addSource(EngineTestCase.createSource(["class A { int m() { return; } }"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.RETURN_WITHOUT_VALUE]);
+ verify([source]);
+ }
+
+ void test_returnWithoutValue_mixedReturnTypes_function() {
+ // Tests that only the RETURN_WITHOUT_VALUE warning is created, and no MIXED_RETURN_TYPES are
+ // created.
+ Source source = addSource(EngineTestCase.createSource([
+ "int f(int x) {",
+ " if (x < 0) {",
+ " return 1;",
+ " }",
+ " 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);
@@ -19396,6 +19515,12 @@ class StaticWarningCodeTest extends ResolverTestCase {
assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SETTER]);
}
+ void test_voidReturnForGetter() {
+ Source source = addSource(EngineTestCase.createSource(["class S {", " void get value {}", "}"]));
+ resolve(source);
+ assertErrors(source, [StaticWarningCode.VOID_RETURN_FOR_GETTER]);
+ }
+
static dartSuite() {
_ut.group('StaticWarningCodeTest', () {
_ut.test('test_ambiguousImport_as', () {
@@ -20026,6 +20151,14 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_superclasses_interface);
});
+ _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingGetter', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingGetter);
+ });
+ _ut.test('test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingSetter', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingSetter);
+ });
_ut.test('test_nonAbstractClassInheritsAbstractMemberThree', () {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberThree);
@@ -20034,6 +20167,10 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberTwo);
});
+ _ut.test('test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromInterface_missingBoth', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromInterface_missingBoth);
+ });
_ut.test('test_nonTypeInCatchClause_noElement', () {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_nonTypeInCatchClause_noElement);
@@ -20094,9 +20231,21 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_redirectToNonClass_undefinedIdentifier);
});
- _ut.test('test_returnWithoutValue', () {
+ _ut.test('test_returnWithoutValue_factoryConstructor', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_returnWithoutValue_factoryConstructor);
+ });
+ _ut.test('test_returnWithoutValue_function', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_returnWithoutValue_function);
+ });
+ _ut.test('test_returnWithoutValue_method', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_returnWithoutValue_method);
+ });
+ _ut.test('test_returnWithoutValue_mixedReturnTypes_function', () {
final __test = new StaticWarningCodeTest();
- runJUnitTest(__test, __test.test_returnWithoutValue);
+ runJUnitTest(__test, __test.test_returnWithoutValue_mixedReturnTypes_function);
});
_ut.test('test_staticAccessToInstanceMember_method_invocation', () {
final __test = new StaticWarningCodeTest();
@@ -20230,6 +20379,10 @@ class StaticWarningCodeTest extends ResolverTestCase {
final __test = new StaticWarningCodeTest();
runJUnitTest(__test, __test.test_undefinedStaticMethodOrGetter_setter_inSuperclass);
});
+ _ut.test('test_voidReturnForGetter', () {
+ final __test = new StaticWarningCodeTest();
+ runJUnitTest(__test, __test.test_voidReturnForGetter);
+ });
});
}
}
@@ -20640,6 +20793,7 @@ class TestTypeProvider implements TypeProvider {
ElementFactory.methodElement("<=", _boolType, [_numType]),
ElementFactory.methodElement(">", _boolType, [_numType]),
ElementFactory.methodElement(">=", _boolType, [_numType]),
+ ElementFactory.methodElement("==", _boolType, [_objectType]),
ElementFactory.methodElement("isNaN", _boolType, []),
ElementFactory.methodElement("isNegative", _boolType, []),
ElementFactory.methodElement("isInfinite", _boolType, []),
@@ -21042,7 +21196,7 @@ 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;
+ final Set<AstNode> _knownExceptions;
/**
* A list containing all of the AST nodes that were not resolved.
@@ -21069,9 +21223,7 @@ class ResolutionVerifier extends RecursiveAstVisitor<Object> {
* @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;
- }
+ ResolutionVerifier.con1(this._knownExceptions);
/**
* Assert that all of the visited identifiers were resolved.
@@ -23582,26 +23734,26 @@ class NonHintCodeTest extends ResolverTestCase {
class EnclosedScopeTest extends ResolverTestCase {
void test_define_duplicate() {
- GatheringErrorListener errorListener2 = new GatheringErrorListener();
- Scope rootScope = new Scope_EnclosedScopeTest_test_define_duplicate(errorListener2);
+ GatheringErrorListener listener = new GatheringErrorListener();
+ Scope rootScope = new Scope_EnclosedScopeTest_test_define_duplicate(listener);
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.assertErrorsWithSeverities([ErrorSeverity.ERROR]);
+ listener.assertErrorsWithSeverities([ErrorSeverity.ERROR]);
}
void test_define_normal() {
- GatheringErrorListener errorListener3 = new GatheringErrorListener();
- Scope rootScope = new Scope_EnclosedScopeTest_test_define_normal(errorListener3);
+ GatheringErrorListener listener = new GatheringErrorListener();
+ Scope rootScope = new Scope_EnclosedScopeTest_test_define_normal(listener);
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();
+ listener.assertNoErrors();
}
static dartSuite() {
@@ -23619,24 +23771,24 @@ class EnclosedScopeTest extends ResolverTestCase {
}
class Scope_EnclosedScopeTest_test_define_duplicate extends Scope {
- GatheringErrorListener errorListener2;
+ GatheringErrorListener listener;
- Scope_EnclosedScopeTest_test_define_duplicate(this.errorListener2) : super();
+ Scope_EnclosedScopeTest_test_define_duplicate(this.listener) : super();
@override
- AnalysisErrorListener get errorListener => errorListener2;
+ AnalysisErrorListener get errorListener => listener;
@override
Element internalLookup(Identifier identifier, String name, LibraryElement referencingLibrary) => null;
}
class Scope_EnclosedScopeTest_test_define_normal extends Scope {
- GatheringErrorListener errorListener3;
+ GatheringErrorListener listener;
- Scope_EnclosedScopeTest_test_define_normal(this.errorListener3) : super();
+ Scope_EnclosedScopeTest_test_define_normal(this.listener) : super();
@override
- AnalysisErrorListener get errorListener => errorListener3;
+ AnalysisErrorListener get errorListener => listener;
@override
Element internalLookup(Identifier identifier, String name, LibraryElement referencingLibrary) => null;
@@ -23697,12 +23849,6 @@ class LibraryElementBuilderTest extends EngineTestCase {
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';"]));
@@ -23815,10 +23961,6 @@ class LibraryElementBuilderTest extends EngineTestCase {
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);
@@ -23907,11 +24049,9 @@ class ScopeTest_TestScope extends Scope {
/**
* The listener that is to be informed when an error is encountered.
*/
- AnalysisErrorListener errorListener;
+ final AnalysisErrorListener errorListener;
- ScopeTest_TestScope(AnalysisErrorListener errorListener) {
- this.errorListener = errorListener;
- }
+ ScopeTest_TestScope(this.errorListener);
@override
Element internalLookup(Identifier identifier, String name, LibraryElement referencingLibrary) => localLookup(name, referencingLibrary);
« no previous file with comments | « pkg/analyzer/test/generated/ast_test.dart ('k') | pkg/analyzer/test/generated/scanner_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698