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

Unified Diff: pkg/compiler/lib/src/deferred_load.dart

Issue 2982733002: Use entities in most of MirrorsData (Closed)
Patch Set: Created 3 years, 5 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/compiler/lib/src/common_elements.dart ('k') | pkg/compiler/lib/src/js_backend/mirrors_analysis.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/deferred_load.dart
diff --git a/pkg/compiler/lib/src/deferred_load.dart b/pkg/compiler/lib/src/deferred_load.dart
index 47ead89246480f17f4a2c0256cfd327df5dfc315..9d14dc18233e5a4876e45b14e64d79814a68f4ba 100644
--- a/pkg/compiler/lib/src/deferred_load.dart
+++ b/pkg/compiler/lib/src/deferred_load.dart
@@ -592,7 +592,26 @@ class DeferredLoadTask extends CompilerTask {
// asked isNeededForReflection. Instead an internal error is triggered.
// So we have to filter them out here.
if (element is AnalyzableElementX && !element.hasTreeElements) return;
- if (compiler.backend.mirrorsData.isAccessibleByReflection(element)) {
+
+ bool isAccessibleByReflection(Element element) {
+ if (element.isLibrary) {
+ return false;
+ } else if (element.isClass) {
+ ClassElement cls = element;
+ return compiler.backend.mirrorsData
+ .isClassAccessibleByReflection(cls);
+ } else if (element.isTypedef) {
+ TypedefElement typedef = element;
+ return compiler.backend.mirrorsData
+ .isTypedefAccessibleByReflection(typedef);
+ } else {
+ MemberElement member = element;
+ return compiler.backend.mirrorsData
+ .isMemberAccessibleByReflection(member);
+ }
+ }
+
+ if (isAccessibleByReflection(element)) {
_mapDependencies(
element: element, import: deferredImport, isMirrorUsage: true);
}
« no previous file with comments | « pkg/compiler/lib/src/common_elements.dart ('k') | pkg/compiler/lib/src/js_backend/mirrors_analysis.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698