OLD | NEW |
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 { |
(...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
581 .forEachInstanceField(f, includeSuperAndInjectedMembers: true); | 581 .forEachInstanceField(f, includeSuperAndInjectedMembers: true); |
582 } | 582 } |
583 | 583 |
584 @override | 584 @override |
585 void forEachParameter(MethodElement function, | 585 void forEachParameter(MethodElement function, |
586 void f(DartType type, String name, ConstantValue defaultValue)) { | 586 void f(DartType type, String name, ConstantValue defaultValue)) { |
587 FunctionSignature parameters = function.functionSignature; | 587 FunctionSignature parameters = function.functionSignature; |
588 parameters.orderedForEachParameter((_parameter) { | 588 parameters.orderedForEachParameter((_parameter) { |
589 ParameterElement parameter = _parameter; | 589 ParameterElement parameter = _parameter; |
590 ConstantValue value; | 590 ConstantValue value; |
591 if (parameter.constant != null) { | 591 if (parameter.isOptional) { |
592 value = _constants.getConstantValue(parameter.constant); | 592 value = _constants.getConstantValue(parameter.constant); |
593 } else { | |
594 value = new NullConstantValue(); | |
595 } | 593 } |
596 f(parameter.type, parameter.name, value); | 594 f(parameter.type, parameter.name, value); |
597 }); | 595 }); |
598 } | 596 } |
599 | 597 |
600 @override | 598 @override |
601 void _processInstantiatedClassMember( | 599 void _processInstantiatedClassMember( |
602 ClassEntity cls, MemberElement member, MemberUsedCallback memberUsed) { | 600 ClassEntity cls, MemberElement member, MemberUsedCallback memberUsed) { |
603 assert(member.isDeclaration, failedAt(member)); | 601 assert(member.isDeclaration, failedAt(member)); |
604 if (member.isMalformed) return; | 602 if (member.isMalformed) return; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
658 | 656 |
659 @override | 657 @override |
660 void forEachInstanceField( | 658 void forEachInstanceField( |
661 ClassEntity cls, void f(ClassEntity declarer, FieldEntity field)) { | 659 ClassEntity cls, void f(ClassEntity declarer, FieldEntity field)) { |
662 _elementEnvironment.forEachClassMember(cls, | 660 _elementEnvironment.forEachClassMember(cls, |
663 (ClassEntity declarer, MemberEntity member) { | 661 (ClassEntity declarer, MemberEntity member) { |
664 if (member.isField && member.isInstanceMember) f(declarer, member); | 662 if (member.isField && member.isInstanceMember) f(declarer, member); |
665 }); | 663 }); |
666 } | 664 } |
667 } | 665 } |
OLD | NEW |