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

Side by Side Diff: pkg/compiler/lib/src/inferrer/inferrer_engine.dart

Issue 2619243002: Make .enclosingClass always return the declaration (Closed)
Patch Set: Updated cf. comments Created 3 years, 11 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 '../common.dart'; 5 import '../common.dart';
6 import '../common/names.dart'; 6 import '../common/names.dart';
7 import '../compiler.dart'; 7 import '../compiler.dart';
8 import '../constants/expressions.dart'; 8 import '../constants/expressions.dart';
9 import '../constants/values.dart'; 9 import '../constants/values.dart';
10 import '../core_types.dart'; 10 import '../core_types.dart';
(...skipping 816 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 node, 827 node,
828 caller, 828 caller,
829 callee, 829 callee,
830 selector, 830 selector,
831 mask, 831 mask,
832 arguments, 832 arguments,
833 inLoop); 833 inLoop);
834 // If this class has a 'call' method then we have essentially created a 834 // If this class has a 'call' method then we have essentially created a
835 // closure here. Register it as such so that it is traced. 835 // closure here. Register it as such so that it is traced.
836 if (selector != null && selector.isCall && callee.isConstructor) { 836 if (selector != null && selector.isCall && callee.isConstructor) {
837 ClassElement cls = callee.enclosingClass.declaration; 837 ClassElement cls = callee.enclosingClass;
838 if (cls.callType != null) { 838 if (cls.callType != null) {
839 types.allocatedClosures.add(info); 839 types.allocatedClosures.add(info);
840 } 840 }
841 } 841 }
842 info.addToGraph(this); 842 info.addToGraph(this);
843 allocatedCalls.add(info); 843 allocatedCalls.add(info);
844 updateSideEffects(sideEffects, selector, callee); 844 updateSideEffects(sideEffects, selector, callee);
845 return info; 845 return info;
846 } 846 }
847 847
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
1042 /** 1042 /**
1043 * Records that the captured variable [local] is read. 1043 * Records that the captured variable [local] is read.
1044 */ 1044 */
1045 void recordCapturedLocalRead(Local local) {} 1045 void recordCapturedLocalRead(Local local) {}
1046 1046
1047 /** 1047 /**
1048 * Records that the variable [local] is being updated. 1048 * Records that the variable [local] is being updated.
1049 */ 1049 */
1050 void recordLocalUpdate(Local local, TypeInformation type) {} 1050 void recordLocalUpdate(Local local, TypeInformation type) {}
1051 } 1051 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/elements/modelx.dart ('k') | pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698