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

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

Issue 813483007: Delegating AST Visitor and Linter refactoring. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 11 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/lib/src/generated/visitors.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/generated/engine_test.dart
===================================================================
--- pkg/analyzer/test/generated/engine_test.dart (revision 42919)
+++ pkg/analyzer/test/generated/engine_test.dart (working copy)
@@ -4090,18 +4090,49 @@
RecordingErrorListener errorListener = new RecordingErrorListener();
- LintGeneratorTest_Verifier verifier = new LintGeneratorTest_Verifier();
+ LintGeneratorTest_Linter linter = new LintGeneratorTest_Linter();
LintGenerator lintGenerator =
- new LintGenerator(units, errorListener, [verifier]);
+ new LintGenerator(units, errorListener, [linter]);
lintGenerator.generate();
- verifier.testExpectations();
+ linter.testExpectations();
}
+
+ void test_generate_null_visitor() {
+
+ InternalAnalysisContext context = AnalysisContextFactory.contextWithCore();
+ ChangeSet changeSet = new ChangeSet();
+ Source librarySource =
+ new FileBasedSource.con1(FileUtilities2.createFile("/test.dart"));
+ changeSet.addedSource(librarySource);
+ context.applyChanges(changeSet);
+ context.setContents(librarySource, r'''
+library lib;
+''');
+
+ CompilationUnit unit =
+ context.resolveCompilationUnit2(librarySource, librarySource);
+ List<CompilationUnit> units = <CompilationUnit>[];
+ units.add(unit);
+
+ RecordingErrorListener errorListener = new RecordingErrorListener();
+
+ Linter badLinter = new LintGeneratorTest_Linter_Null_Visitor();
+ LintGeneratorTest_Linter goodLinter = new LintGeneratorTest_Linter();
+
+ LintGenerator lintGenerator =
+ new LintGenerator(units, errorListener, [badLinter, goodLinter]);
+ // Test that generate does not fall down with a null visitor
+ lintGenerator.generate();
+ // Well-formed linter should still get called
+ goodLinter.testExpectations();
+ }
+
}
-class LintGeneratorTest_Verifier extends LintVerifier {
+class LintGeneratorTest_Linter extends Linter with SimpleAstVisitor<Object> {
bool visited;
@@ -4115,9 +4146,17 @@
expect(reporter, isNotNull);
expect(visited, isTrue);
}
+
+ @override
+ AstVisitor getVisitor() => this;
}
+class LintGeneratorTest_Linter_Null_Visitor extends Linter {
+ @override
+ AstVisitor getVisitor() => null;
+}
+
@reflectiveTest
class GetContentTaskTest extends EngineTestCase {
void test_accept() {
« no previous file with comments | « pkg/analyzer/lib/src/generated/visitors.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698