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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/inferrer/list_tracer.dart

Issue 266913017: Convert property methods into getters. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebased Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 type_graph_inferrer; 5 part of type_graph_inferrer;
6 6
7 /** 7 /**
8 * A set of selector names that [List] implements, that we know do not 8 * A set of selector names that [List] implements, that we know do not
9 * change the element type of the list, or let the list escape to code 9 * change the element type of the list, or let the list escape to code
10 * that might change the element type. 10 * that might change the element type.
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 bailout('Used in JS ${info.call}'); 165 bailout('Used in JS ${info.call}');
166 } 166 }
167 } 167 }
168 168
169 visitDynamicCallSiteTypeInformation(DynamicCallSiteTypeInformation info) { 169 visitDynamicCallSiteTypeInformation(DynamicCallSiteTypeInformation info) {
170 super.visitDynamicCallSiteTypeInformation(info); 170 super.visitDynamicCallSiteTypeInformation(info);
171 Selector selector = info.selector; 171 Selector selector = info.selector;
172 String selectorName = selector.name; 172 String selectorName = selector.name;
173 if (currentUser == info.receiver) { 173 if (currentUser == info.receiver) {
174 if (!okListSelectorsSet.contains(selectorName)) { 174 if (!okListSelectorsSet.contains(selectorName)) {
175 if (selector.isCall()) { 175 if (selector.isCall) {
176 int positionalLength = info.arguments.positional.length; 176 int positionalLength = info.arguments.positional.length;
177 if (selectorName == 'add') { 177 if (selectorName == 'add') {
178 if (positionalLength == 1) { 178 if (positionalLength == 1) {
179 assignments.add(info.arguments.positional[0]); 179 assignments.add(info.arguments.positional[0]);
180 } 180 }
181 } else if (selectorName == 'insert') { 181 } else if (selectorName == 'insert') {
182 if (positionalLength == 2) { 182 if (positionalLength == 2) {
183 assignments.add(info.arguments.positional[1]); 183 assignments.add(info.arguments.positional[1]);
184 } 184 }
185 } else { 185 } else {
186 bailout('Used in a not-ok selector'); 186 bailout('Used in a not-ok selector');
187 return; 187 return;
188 } 188 }
189 } else if (selector.isIndexSet()) { 189 } else if (selector.isIndexSet) {
190 assignments.add(info.arguments.positional[1]); 190 assignments.add(info.arguments.positional[1]);
191 } else if (!selector.isIndex()) { 191 } else if (!selector.isIndex) {
192 bailout('Used in a not-ok selector'); 192 bailout('Used in a not-ok selector');
193 return; 193 return;
194 } 194 }
195 } 195 }
196 if (!doNotChangeLengthSelectorsSet.contains(selectorName)) { 196 if (!doNotChangeLengthSelectorsSet.contains(selectorName)) {
197 callsGrowableMethod = true; 197 callsGrowableMethod = true;
198 } 198 }
199 if (selectorName == 'length' && selector.isSetter()) { 199 if (selectorName == 'length' && selector.isSetter) {
200 callsGrowableMethod = true; 200 callsGrowableMethod = true;
201 assignments.add(inferrer.types.nullType); 201 assignments.add(inferrer.types.nullType);
202 } 202 }
203 } else if (selector.isCall() && 203 } else if (selector.isCall &&
204 !info.targets.every((element) => element.isFunction())) { 204 !info.targets.every((element) => element.isFunction)) {
205 bailout('Passed to a closure'); 205 bailout('Passed to a closure');
206 return; 206 return;
207 } 207 }
208 } 208 }
209 } 209 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698