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

Side by Side Diff: pkg/compiler/lib/src/js_model/closure.dart

Issue 3009593002: It's alive (first kernel inference test) (Closed)
Patch Set: 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
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 import 'package:kernel/ast.dart' as ir; 5 import 'package:kernel/ast.dart' as ir;
6 6
7 import '../closure.dart'; 7 import '../closure.dart';
8 import '../common.dart'; 8 import '../common.dart';
9 import '../common/tasks.dart'; 9 import '../common/tasks.dart';
10 import '../constants/expressions.dart'; 10 import '../constants/expressions.dart';
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 186
187 @override 187 @override
188 // TODO(efortuna): Eventually capturedScopesMap[node] should always 188 // TODO(efortuna): Eventually capturedScopesMap[node] should always
189 // be non-null, and we should just test that with an assert. 189 // be non-null, and we should just test that with an assert.
190 CapturedLoopScope getCapturedLoopScope(ir.Node loopNode) => 190 CapturedLoopScope getCapturedLoopScope(ir.Node loopNode) =>
191 _capturedScopesMap[loopNode] ?? const CapturedLoopScope(); 191 _capturedScopesMap[loopNode] ?? const CapturedLoopScope();
192 192
193 @override 193 @override
194 ClosureRepresentationInfo getClosureInfoForMember(MemberEntity entity) { 194 ClosureRepresentationInfo getClosureInfoForMember(MemberEntity entity) {
195 var closure = _memberClosureRepresentationMap[entity]; 195 var closure = _memberClosureRepresentationMap[entity];
196 assert( 196 /*assert(
Siggi Cherem (dart-lang) 2017/08/25 18:19:11 TODO? does it happen because of some of the change
Johnni Winther 2017/08/25 18:32:20 Adding a TODO. We are moving towards using getScop
197 closure != null, 197 closure != null,
198 "Corresponding closure class not found for $entity. " 198 "Corresponding closure class not found for $entity. "
199 "Closures found for ${_memberClosureRepresentationMap.keys}"); 199 "Closures found for ${_memberClosureRepresentationMap.keys}");*/
200 return closure; 200 return closure ?? const ClosureRepresentationInfo();
201 } 201 }
202 202
203 @override 203 @override
204 ClosureRepresentationInfo getClosureInfo(ir.Node node) { 204 ClosureRepresentationInfo getClosureInfo(ir.Node node) {
205 var closure = _localClosureRepresentationMap[node]; 205 var closure = _localClosureRepresentationMap[node];
206 assert( 206 assert(
207 closure != null, 207 closure != null,
208 "Corresponding closure class not found for $node. " 208 "Corresponding closure class not found for $node. "
209 "Closures found for ${_localClosureRepresentationMap.keys}"); 209 "Closures found for ${_localClosureRepresentationMap.keys}");
210 return closure; 210 return closure;
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 class ClosureFieldData extends ClosureMemberData implements FieldData { 519 class ClosureFieldData extends ClosureMemberData implements FieldData {
520 ClosureFieldData(MemberDefinition definition) : super(definition); 520 ClosureFieldData(MemberDefinition definition) : super(definition);
521 521
522 @override 522 @override
523 DartType getFieldType(KernelToElementMap elementMap) { 523 DartType getFieldType(KernelToElementMap elementMap) {
524 // A closure field doesn't have a Dart type. 524 // A closure field doesn't have a Dart type.
525 return null; 525 return null;
526 } 526 }
527 527
528 @override 528 @override
529 ConstantExpression getFieldConstant( 529 ConstantExpression getFieldConstantExpression(KernelToElementMap elementMap) {
530 KernelToElementMap elementMap, FieldEntity field) {
531 failedAt( 530 failedAt(
532 field, 531 definition.member,
533 "Unexpected field $field in " 532 "Unexpected field ${definition.member} in "
534 "ClosureFieldData.getFieldConstant"); 533 "ClosureFieldData.getFieldConstantExpression");
534 return null;
535 }
536
537 @override
538 ConstantValue getConstantFieldInitializer(KernelToElementMap elementMap) {
539 failedAt(
540 definition.member,
541 "Unexpected field ${definition.member} in "
542 "ClosureFieldData.getConstantFieldInitializer");
543 return null;
544 }
545
546 @override
547 bool hasConstantFieldInitializer(KernelToElementMap elementMap) {
548 return false;
549 }
550
551 @override
552 ConstantValue getFieldConstantValue(KernelToElementMap elementMap) {
535 return null; 553 return null;
536 } 554 }
537 } 555 }
538 556
539 class ClosureMemberDefinition implements MemberDefinition { 557 class ClosureMemberDefinition implements MemberDefinition {
540 final MemberEntity member; 558 final MemberEntity member;
541 final SourceSpan location; 559 final SourceSpan location;
542 final MemberKind kind; 560 final MemberKind kind;
543 final ir.Node node; 561 final ir.Node node;
544 562
545 ClosureMemberDefinition(this.member, this.location, this.kind, this.node); 563 ClosureMemberDefinition(this.member, this.location, this.kind, this.node);
546 564
547 String toString() => 565 String toString() =>
548 'ClosureMemberDefinition(kind:$kind,member:$member,location:$location)'; 566 'ClosureMemberDefinition(kind:$kind,member:$member,location:$location)';
549 } 567 }
550 568
551 /// Collection of scope data collected for a single member. 569 /// Collection of scope data collected for a single member.
552 class ScopeModel { 570 class ScopeModel {
553 /// Collection [ScopeInfo] data for the member. 571 /// Collection [ScopeInfo] data for the member.
554 KernelScopeInfo scopeInfo; 572 KernelScopeInfo scopeInfo;
555 573
556 /// Collected [CapturedScope] data for nodes. 574 /// Collected [CapturedScope] data for nodes.
557 Map<ir.Node, KernelCapturedScope> capturedScopesMap = 575 Map<ir.Node, KernelCapturedScope> capturedScopesMap =
558 <ir.Node, KernelCapturedScope>{}; 576 <ir.Node, KernelCapturedScope>{};
559 577
560 /// Collected [ScopeInfo] data for nodes. 578 /// Collected [ScopeInfo] data for nodes.
561 Map<ir.FunctionNode, KernelScopeInfo> closuresToGenerate = 579 Map<ir.FunctionNode, KernelScopeInfo> closuresToGenerate =
562 <ir.FunctionNode, KernelScopeInfo>{}; 580 <ir.FunctionNode, KernelScopeInfo>{};
563 } 581 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart ('k') | pkg/compiler/lib/src/kernel/element_map.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698