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

Unified Diff: pkg/analyzer/test/src/dart/analysis/driver_test.dart

Issue 2544883003: Implement 'topLevelLibraryDeclarations' getter to return all libraries with exported top-level decl… (Closed)
Patch Set: Change AnalysisDriver API to return declarations of a name. Created 4 years 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
Index: pkg/analyzer/test/src/dart/analysis/driver_test.dart
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index 6b4231e490ec7c327ce4c1ba063430e9e270cf38..d4f773dbaeaae3bd50678dc2230ff147a21ae77c 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -16,6 +16,7 @@ import 'package:analyzer/src/dart/analysis/byte_store.dart';
import 'package:analyzer/src/dart/analysis/driver.dart';
import 'package:analyzer/src/dart/analysis/file_state.dart';
import 'package:analyzer/src/dart/analysis/status.dart';
+import 'package:analyzer/src/dart/analysis/top_level_declaration.dart';
import 'package:analyzer/src/error/codes.dart';
import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl;
import 'package:analyzer/src/generated/source.dart';
@@ -733,6 +734,39 @@ var A2 = B1;
expect(result1.unit, isNotNull);
}
+ test_getTopLevelNameDeclarations() async {
+ var a = _p('/test/lib/a.dart');
+ var b = _p('/test/lib/b.dart');
+ var c = _p('/test/lib/c.dart');
+ var d = _p('/test/lib/d.dart');
+
+ provider.newFile(a, 'class A {}');
+ provider.newFile(b, 'export "a.dart", class B {}');
+ provider.newFile(c, 'import "d.dart"; class C {}');
+ provider.newFile(d, 'class D {}');
+
+ driver.addFile(a);
+ driver.addFile(b);
+ driver.addFile(c);
+ // Don't add d.dart, it is referenced implicitly.
+
+ void assertLibraryPaths(
+ List<TopLevelDeclarationInSource> declarations, List<String> expected) {
+ expect(declarations.map((l) => l.source.fullName),
+ unorderedEquals(expected));
+ }
+
+ assertLibraryPaths(await driver.getTopLevelNameDeclarations('A'), [a, b]);
+
+ assertLibraryPaths(await driver.getTopLevelNameDeclarations('B'), [b]);
+
+ assertLibraryPaths(await driver.getTopLevelNameDeclarations('C'), [c]);
+
+ assertLibraryPaths(await driver.getTopLevelNameDeclarations('D'), [d]);
+
+ assertLibraryPaths(await driver.getTopLevelNameDeclarations('X'), []);
+ }
+
test_knownFiles() async {
var a = _p('/test/lib/a.dart');
var b = _p('/test/lib/b.dart');

Powered by Google App Engine
This is Rietveld 408576698