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

Side by Side 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, 3 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 unified diff | 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of world_builder; 5 part of world_builder;
6 6
7 /// World builder specific to codegen. 7 /// World builder specific to codegen.
8 /// 8 ///
9 /// This adds additional access to liveness of selectors and elements. 9 /// This adds additional access to liveness of selectors and elements.
10 abstract class CodegenWorldBuilder implements WorldBuilder { 10 abstract class CodegenWorldBuilder implements WorldBuilder {
11 /// Calls [f] with every instance field, together with its declarer, in an 11 /// Calls [f] with every instance field, together with its declarer, in an
12 /// instance of [cls]. 12 /// instance of [cls].
13 void forEachInstanceField(covariant ClassEntity cls, 13 void forEachInstanceField(covariant ClassEntity cls,
14 void f(ClassEntity declarer, FieldEntity field)); 14 void f(ClassEntity declarer, FieldEntity field));
15 15
16 /// Calls [f] for each parameter of [function] providing the type and name of 16 /// Calls [f] for each parameter of [function] providing the type and name of
17 /// the parameter and the [defaultValue] if the parameter is optional. 17 /// the parameter and the [defaultValue] if the parameter is optional.
18 void forEachParameter(covariant FunctionEntity function, 18 void forEachParameter(covariant FunctionEntity function,
19 void f(DartType type, String name, ConstantValue defaultValue)); 19 void f(DartType type, String name, ConstantValue defaultValue));
20 20
21 /// Calls [f] for each parameter - given as a [Local] - of [function].
22 void forEachParameterAsLocal(
23 covariant FunctionEntity function, void f(Local parameter));
24
21 void forEachInvokedName( 25 void forEachInvokedName(
22 f(String name, Map<Selector, SelectorConstraints> selectors)); 26 f(String name, Map<Selector, SelectorConstraints> selectors));
23 27
24 void forEachInvokedGetter( 28 void forEachInvokedGetter(
25 f(String name, Map<Selector, SelectorConstraints> selectors)); 29 f(String name, Map<Selector, SelectorConstraints> selectors));
26 30
27 void forEachInvokedSetter( 31 void forEachInvokedSetter(
28 f(String name, Map<Selector, SelectorConstraints> selectors)); 32 f(String name, Map<Selector, SelectorConstraints> selectors));
29 33
30 /// Returns `true` if [field] has a constant initializer. 34 /// Returns `true` if [field] has a constant initializer.
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 /// instance of [cls]. 581 /// instance of [cls].
578 void forEachInstanceField( 582 void forEachInstanceField(
579 ClassElement cls, void f(ClassEntity declarer, FieldEntity field)) { 583 ClassElement cls, void f(ClassEntity declarer, FieldEntity field)) {
580 cls.implementation 584 cls.implementation
581 .forEachInstanceField(f, includeSuperAndInjectedMembers: true); 585 .forEachInstanceField(f, includeSuperAndInjectedMembers: true);
582 } 586 }
583 587
584 @override 588 @override
585 void forEachParameter(MethodElement function, 589 void forEachParameter(MethodElement function,
586 void f(DartType type, String name, ConstantValue defaultValue)) { 590 void f(DartType type, String name, ConstantValue defaultValue)) {
591 if (!function.hasFunctionSignature) return;
592 function = function.implementation;
587 FunctionSignature parameters = function.functionSignature; 593 FunctionSignature parameters = function.functionSignature;
588 parameters.orderedForEachParameter((_parameter) { 594 parameters.orderedForEachParameter((_parameter) {
589 ParameterElement parameter = _parameter; 595 ParameterElement parameter = _parameter;
590 ConstantValue value; 596 ConstantValue value;
591 if (parameter.isOptional) { 597 if (parameter.isOptional) {
592 value = _constants.getConstantValue(parameter.constant); 598 value = _constants.getConstantValue(parameter.constant);
593 } 599 }
594 f(parameter.type, parameter.name, value); 600 f(parameter.type, parameter.name, value);
595 }); 601 });
596 } 602 }
597 603
598 @override 604 @override
605 void forEachParameterAsLocal(
606 MethodElement function, void f(Local parameter)) {
607 if (!function.hasFunctionSignature) return;
608 function = function.implementation;
609 FunctionSignature parameters = function.functionSignature;
610 parameters.orderedForEachParameter((_parameter) {
611 ParameterElement parameter = _parameter;
612 f(parameter);
613 });
614 }
615
616 @override
599 void _processInstantiatedClassMember( 617 void _processInstantiatedClassMember(
600 ClassEntity cls, MemberElement member, MemberUsedCallback memberUsed) { 618 ClassEntity cls, MemberElement member, MemberUsedCallback memberUsed) {
601 assert(member.isDeclaration, failedAt(member)); 619 assert(member.isDeclaration, failedAt(member));
602 if (member.isMalformed) return; 620 if (member.isMalformed) return;
603 super._processInstantiatedClassMember(cls, member, memberUsed); 621 super._processInstantiatedClassMember(cls, member, memberUsed);
604 } 622 }
605 623
606 @override 624 @override
607 _MemberUsage _getMemberUsage( 625 _MemberUsage _getMemberUsage(
608 MemberElement member, MemberUsedCallback memberUsed) { 626 MemberElement member, MemberUsedCallback memberUsed) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 return _elementMap.getConstantFieldInitializer(field); 666 return _elementMap.getConstantFieldInitializer(field);
649 } 667 }
650 668
651 @override 669 @override
652 void forEachParameter(FunctionEntity function, 670 void forEachParameter(FunctionEntity function,
653 void f(DartType type, String name, ConstantValue defaultValue)) { 671 void f(DartType type, String name, ConstantValue defaultValue)) {
654 _elementMap.forEachParameter(function, f); 672 _elementMap.forEachParameter(function, f);
655 } 673 }
656 674
657 @override 675 @override
676 void forEachParameterAsLocal(
677 FunctionEntity function, void f(Local parameter)) {
678 throw new UnimplementedError(
679 'KernelCodegenWorldBuilder.forEachParameterAsLocal');
680 }
681
682 @override
658 void forEachInstanceField( 683 void forEachInstanceField(
659 ClassEntity cls, void f(ClassEntity declarer, FieldEntity field)) { 684 ClassEntity cls, void f(ClassEntity declarer, FieldEntity field)) {
660 _elementEnvironment.forEachClassMember(cls, 685 _elementEnvironment.forEachClassMember(cls,
661 (ClassEntity declarer, MemberEntity member) { 686 (ClassEntity declarer, MemberEntity member) {
662 if (member.isField && member.isInstanceMember) f(declarer, member); 687 if (member.isField && member.isInstanceMember) f(declarer, member);
663 }); 688 });
664 } 689 }
665 } 690 }
OLDNEW
« 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