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

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

Issue 2545753003: Compute top-level declarations in a file. (Closed)
Patch Set: 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
« no previous file with comments | « pkg/analyzer/lib/src/dart/analysis/top_level_declarations.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/src/dart/analysis/file_state_test.dart
diff --git a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
index a97f9c3644eaccd4b48f57a2324337dbbf506bb6..8abd9d382157c42dfc2059310ec2e448a0e6a6f5 100644
--- a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
@@ -11,6 +11,7 @@ import 'package:analyzer/source/package_map_resolver.dart';
import 'package:analyzer/src/dart/analysis/byte_store.dart';
import 'package:analyzer/src/dart/analysis/driver.dart' show PerformanceLog;
import 'package:analyzer/src/dart/analysis/file_state.dart';
+import 'package:analyzer/src/dart/analysis/top_level_declarations.dart';
import 'package:analyzer/src/generated/engine.dart'
show AnalysisOptions, AnalysisOptionsImpl;
import 'package:analyzer/src/generated/source.dart';
@@ -280,6 +281,44 @@ class C {
expect(file.apiSignature, signature);
}
+ test_topLevelDeclarations() {
+ String path = _p('/aaa/lib/a.dart');
+ provider.newFile(
+ path,
+ r'''
+class C {}
+typedef F();
+enum E {E1, E2}
+void f() {}
+var V1;
+get V2 => null;
+set V3(_) {}
+get V4 => null;
+set V4(_) {}
+''');
+ FileState file = fileSystemState.getFileForPath(path);
+
+ List<TopLevelDeclaration> topLevelDeclarations = file.topLevelDeclarations;
+
+ void assertHas(String name, TopLevelDeclarationKind kind) {
+ expect(
+ topLevelDeclarations,
+ contains(predicate(
+ (TopLevelDeclaration t) => t.name == name && t.kind == kind)));
+ }
+
+ expect(topLevelDeclarations.map((t) => t.name),
+ unorderedEquals(['C', 'F', 'E', 'f', 'V1', 'V2', 'V3', 'V4']));
+ assertHas('C', TopLevelDeclarationKind.type);
+ assertHas('F', TopLevelDeclarationKind.type);
+ assertHas('E', TopLevelDeclarationKind.type);
+ assertHas('f', TopLevelDeclarationKind.function);
+ assertHas('V1', TopLevelDeclarationKind.variable);
+ assertHas('V2', TopLevelDeclarationKind.variable);
+ assertHas('V3', TopLevelDeclarationKind.variable);
+ assertHas('V4', TopLevelDeclarationKind.variable);
+ }
+
test_transitiveFiles() {
String pa = _p('/aaa/lib/a.dart');
String pb = _p('/aaa/lib/b.dart');
« no previous file with comments | « pkg/analyzer/lib/src/dart/analysis/top_level_declarations.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698