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

Unified Diff: pkg/compiler/lib/src/js_emitter/program_builder/collector.dart

Issue 2791263005: Split MirrorsData methods and MirrorsDataImpl data by element kind. (Closed)
Patch Set: Updated cf. comments. Created 3 years, 8 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
Index: pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart b/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
index e3a6fe8d07cb3420b7e85c02fc765478e4f6517c..fedb8b3115c25d700d732bb69fc34d7c8a9c4667 100644
--- a/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
+++ b/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
@@ -118,36 +118,37 @@ class Collector {
if (backend.mirrorsData.mustRetainMetadata) {
// TODO(floitsch): verify that we don't run through the same elements
// multiple times.
- for (Element element in backend.generatedCode.keys) {
- if (backend.mirrorsData.isAccessibleByReflection(element)) {
+ for (MemberElement element in backend.generatedCode.keys) {
+ if (backend.mirrorsData.isMemberAccessibleByReflection(element)) {
bool shouldRetainMetadata =
- backend.mirrorsData.retainMetadataOf(element);
+ backend.mirrorsData.retainMetadataOfMember(element);
if (shouldRetainMetadata &&
(element.isFunction ||
element.isConstructor ||
element.isSetter)) {
- FunctionElement function = element;
- function.functionSignature
- .forEachParameter(backend.mirrorsData.retainMetadataOf);
+ MethodElement function = element;
+ function.functionSignature.forEachParameter(
+ backend.mirrorsData.retainMetadataOfParameter);
}
}
}
for (ClassElement cls in neededClasses) {
final onlyForRti = classesOnlyNeededForRti.contains(cls);
if (!onlyForRti) {
- backend.mirrorsData.retainMetadataOf(cls);
+ backend.mirrorsData.retainMetadataOfClass(cls);
new FieldVisitor(compiler, namer, closedWorld).visitFields(cls, false,
- (Element member, js.Name name, js.Name accessorName,
+ (FieldElement member, js.Name name, js.Name accessorName,
bool needsGetter, bool needsSetter, bool needsCheckedSetter) {
bool needsAccessor = needsGetter || needsSetter;
if (needsAccessor &&
- backend.mirrorsData.isAccessibleByReflection(member)) {
- backend.mirrorsData.retainMetadataOf(member);
+ backend.mirrorsData.isMemberAccessibleByReflection(member)) {
+ backend.mirrorsData.retainMetadataOfMember(member);
}
});
}
}
- typedefsNeededForReflection.forEach(backend.mirrorsData.retainMetadataOf);
+ typedefsNeededForReflection
+ .forEach(backend.mirrorsData.retainMetadataOfTypedef);
}
JavaScriptConstantCompiler handler = backend.constants;
@@ -177,7 +178,7 @@ class Collector {
// Compute needed typedefs.
typedefsNeededForReflection = Elements.sortedByPosition(closedWorld
.allTypedefs
- .where(backend.mirrorsData.isAccessibleByReflection)
+ .where(backend.mirrorsData.isTypedefAccessibleByReflection)
.toList());
// Compute needed classes.
@@ -270,10 +271,10 @@ class Collector {
}
void computeNeededStatics() {
- bool isStaticFunction(Element element) =>
+ bool isStaticFunction(MemberElement element) =>
!element.isInstanceMember && !element.isField;
- Iterable<Element> elements =
+ Iterable<MemberElement> elements =
backend.generatedCode.keys.where(isStaticFunction);
for (Element element in Elements.sortedByPosition(elements)) {
@@ -292,7 +293,7 @@ class Collector {
list.add(element);
}
- Iterable<Element> fields = compiler
+ Iterable<FieldElement> fields = compiler
// TODO(johnniwinther): This should be accessed from a codegen closed
// world.
.codegenWorldBuilder
@@ -306,7 +307,7 @@ class Collector {
} else {
// We also need to emit static const fields if they are available for
// reflection.
- return backend.mirrorsData.isAccessibleByReflection(field);
+ return backend.mirrorsData.isMemberAccessibleByReflection(field);
}
});

Powered by Google App Engine
This is Rietveld 408576698