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

Unified Diff: pkg/compiler/lib/src/universe/codegen_world_builder.dart

Issue 3008793002: Use the entity model for dump_info. (Closed)
Patch Set: use codegen enqueuer Created 3 years, 4 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/serialization/modelz.dart ('k') | pkg/compiler/lib/src/universe/use.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/universe/codegen_world_builder.dart
diff --git a/pkg/compiler/lib/src/universe/codegen_world_builder.dart b/pkg/compiler/lib/src/universe/codegen_world_builder.dart
index 6cbe723b0500fd1ecc53fb465133694985ad4cc6..29e5195f77c828891fd166b20dbbde7b218504cf 100644
--- a/pkg/compiler/lib/src/universe/codegen_world_builder.dart
+++ b/pkg/compiler/lib/src/universe/codegen_world_builder.dart
@@ -18,6 +18,10 @@ abstract class CodegenWorldBuilder implements WorldBuilder {
void forEachParameter(covariant FunctionEntity function,
void f(DartType type, String name, ConstantValue defaultValue));
+ /// Calls [f] for each parameter - given as a [Local] - of [function].
+ void forEachParameterAsLocal(
+ covariant FunctionEntity function, void f(Local parameter));
+
void forEachInvokedName(
f(String name, Map<Selector, SelectorConstraints> selectors));
@@ -584,6 +588,8 @@ class ElementCodegenWorldBuilderImpl extends CodegenWorldBuilderImpl {
@override
void forEachParameter(MethodElement function,
void f(DartType type, String name, ConstantValue defaultValue)) {
+ if (!function.hasFunctionSignature) return;
+ function = function.implementation;
FunctionSignature parameters = function.functionSignature;
parameters.orderedForEachParameter((_parameter) {
ParameterElement parameter = _parameter;
@@ -595,6 +601,18 @@ class ElementCodegenWorldBuilderImpl extends CodegenWorldBuilderImpl {
});
}
+ @override
+ void forEachParameterAsLocal(
+ MethodElement function, void f(Local parameter)) {
+ if (!function.hasFunctionSignature) return;
+ function = function.implementation;
+ FunctionSignature parameters = function.functionSignature;
+ parameters.orderedForEachParameter((_parameter) {
+ ParameterElement parameter = _parameter;
+ f(parameter);
+ });
+ }
+
@override
void _processInstantiatedClassMember(
ClassEntity cls, MemberElement member, MemberUsedCallback memberUsed) {
@@ -654,6 +672,13 @@ class KernelCodegenWorldBuilder extends CodegenWorldBuilderImpl {
_elementMap.forEachParameter(function, f);
}
+ @override
+ void forEachParameterAsLocal(
+ FunctionEntity function, void f(Local parameter)) {
+ throw new UnimplementedError(
+ 'KernelCodegenWorldBuilder.forEachParameterAsLocal');
+ }
+
@override
void forEachInstanceField(
ClassEntity cls, void f(ClassEntity declarer, FieldEntity field)) {
« no previous file with comments | « pkg/compiler/lib/src/serialization/modelz.dart ('k') | pkg/compiler/lib/src/universe/use.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698