From bc3d00456bcfed5b2e4e2fc583f2bea8bbdde928 Mon Sep 17 00:00:00 2001 From: "scheglov@google.com" Date: Tue, 16 Dec 2014 17:33:13 +0000 Subject: [PATCH] Issue 21886. Make enums available outside of the defining library. R=brianwilkerson@google.com BUG= https://code.google.com/p/dart/issues/detail?id=21886 Review URL: https://codereview.chromium.org//809763002 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42403 260f80e4-7a28-3924-810f-c04153c831b5 --- pkg/analyzer/lib/src/generated/resolver.dart | 17 ++++++++++------- pkg/analyzer/test/generated/resolver_test.dart | 15 +++++++++++++++ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart index 10f3a81d3c7..d8106f6fb3c 100644 --- a/pkg/analyzer/lib/src/generated/resolver.dart +++ b/pkg/analyzer/lib/src/generated/resolver.dart @@ -10244,6 +10244,9 @@ class NamespaceBuilder { for (PropertyAccessorElement element in compilationUnit.accessors) { _addIfPublic(definedNames, element); } + for (ClassElement element in compilationUnit.enums) { + _addIfPublic(definedNames, element); + } for (FunctionElement element in compilationUnit.functions) { _addIfPublic(definedNames, element); } @@ -11362,6 +11365,13 @@ class ResolverVisitor extends ScopedVisitor { return null; } + /** + * Prepares this [ResolverVisitor] to using it for incremental resolution. + */ + void initForIncrementalResolution() { + _overrideManager.enterScope(); + } + /** * If it is appropriate to do so, override the current type of the static and propagated elements * associated with the given expression with the given type. Generally speaking, it is appropriate @@ -11609,13 +11619,6 @@ class ResolverVisitor extends ScopedVisitor { return null; } - /** - * Prepares this [ResolverVisitor] to using it for incremental resolution. - */ - void initForIncrementalResolution() { - _overrideManager.enterScope(); - } - @override Object visitCompilationUnit(CompilationUnit node) { // diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart index ba23d4b1bd6..d311cc7c22e 100644 --- a/pkg/analyzer/test/generated/resolver_test.dart +++ b/pkg/analyzer/test/generated/resolver_test.dart @@ -8672,6 +8672,21 @@ main() {}'''); verify([source]); } + void test_enum_externalLibrary() { + resetWithEnum(); + addNamedSource("/my_lib.dart", r''' +library my_lib; +enum EEE {A, B, C}'''); + Source source = addSource(r''' +import 'my_lib.dart'; +main() { + EEE e = null; +}'''); + resolve(source); + assertNoErrors(source); + verify([source]); + } + void test_extractedMethodAsConstant() { Source source = addSource(r''' abstract class Comparable {