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

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

Issue 3008133002: Handle local invoke in inferrer (Closed)
Patch Set: dartfmt 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 '../../compiler_new.dart'; 7 import '../../compiler_new.dart';
8 import '../closure.dart'; 8 import '../closure.dart';
9 import '../common.dart'; 9 import '../common.dart';
10 import '../common_elements.dart'; 10 import '../common_elements.dart';
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 198
199 @override 199 @override
200 int computeMemberSize(MemberEntity member) { 200 int computeMemberSize(MemberEntity member) {
201 // TODO(johnniwinther): Find an ordering that can be shared between the 201 // TODO(johnniwinther): Find an ordering that can be shared between the
202 // front ends. 202 // front ends.
203 return 0; 203 return 0;
204 } 204 }
205 205
206 @override 206 @override
207 GlobalTypeInferenceElementData<ir.Node> createElementData() { 207 GlobalTypeInferenceElementData<ir.Node> createElementData() {
208 throw new UnimplementedError('KernelInferrerEngine.createElementData'); 208 return new KernelGlobalTypeInferenceElementData();
209 } 209 }
210 } 210 }
211 211
212 class KernelTypeSystemStrategy implements TypeSystemStrategy<ir.Node> { 212 class KernelTypeSystemStrategy implements TypeSystemStrategy<ir.Node> {
213 KernelToElementMapForBuilding _elementMap; 213 KernelToElementMapForBuilding _elementMap;
214 GlobalLocalsMap _globalLocalsMap; 214 GlobalLocalsMap _globalLocalsMap;
215 ClosureDataLookup<ir.Node> _closureDataLookup; 215 ClosureDataLookup<ir.Node> _closureDataLookup;
216 216
217 KernelTypeSystemStrategy( 217 KernelTypeSystemStrategy(
218 this._elementMap, this._globalLocalsMap, this._closureDataLookup); 218 this._elementMap, this._globalLocalsMap, this._closureDataLookup);
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 ConstructorEntity constructor = member; 336 ConstructorEntity constructor = member;
337 if (constructor.isFactoryConstructor) { 337 if (constructor.isFactoryConstructor) {
338 DartType type = _elementEnvironment.getFunctionType(constructor); 338 DartType type = _elementEnvironment.getFunctionType(constructor);
339 return new FactoryConstructorTypeInformation(constructor, type); 339 return new FactoryConstructorTypeInformation(constructor, type);
340 } else { 340 } else {
341 return new GenerativeConstructorTypeInformation(constructor); 341 return new GenerativeConstructorTypeInformation(constructor);
342 } 342 }
343 } 343 }
344 } 344 }
345 } 345 }
346
347 class KernelGlobalTypeInferenceElementData
348 extends GlobalTypeInferenceElementData<ir.Node> {
349 Map<ir.Node, TypeMask> _sendMap;
Siggi Cherem (dart-lang) 2017/09/05 19:20:39 nit: TODO to rename? (I guess we also intend to re
Johnni Winther 2017/09/07 08:08:52 Done.
350
351 @override
352 TypeMask typeOfSend(ir.Node node) {
353 if (_sendMap == null) return null;
354 return _sendMap[node];
355 }
356
357 @override
358 void setCurrentTypeMask(ir.Node node, TypeMask mask) {
359 throw new UnsupportedError(
360 'KernelGlobalTypeInferenceElementData.setCurrentTypeMask');
361 }
362
363 @override
364 void setMoveNextTypeMask(ir.Node node, TypeMask mask) {
365 throw new UnsupportedError(
366 'KernelGlobalTypeInferenceElementData.setMoveNextTypeMask');
367 }
368
369 @override
370 void setIteratorTypeMask(ir.Node node, TypeMask mask) {
371 throw new UnsupportedError(
372 'KernelGlobalTypeInferenceElementData.setIteratorTypeMask');
373 }
374
375 @override
376 TypeMask typeOfIteratorCurrent(ir.Node node) {
377 throw new UnsupportedError(
378 'KernelGlobalTypeInferenceElementData.typeOfIteratorCurrent');
379 }
380
381 @override
382 TypeMask typeOfIteratorMoveNext(ir.Node node) {
383 throw new UnsupportedError(
384 'KernelGlobalTypeInferenceElementData.typeOfIteratorMoveNext');
385 }
386
387 @override
388 TypeMask typeOfIterator(ir.Node node) {
389 throw new UnsupportedError(
390 'KernelGlobalTypeInferenceElementData.typeOfIterator');
391 }
392
393 @override
394 void setOperatorTypeMaskInComplexSendSet(ir.Node node, TypeMask mask) {
395 throw new UnsupportedError(
396 'KernelGlobalTypeInferenceElementData.setOperatorTypeMaskInComplexSendSe t');
397 }
398
399 @override
400 void setGetterTypeMaskInComplexSendSet(ir.Node node, TypeMask mask) {
401 throw new UnsupportedError(
402 'KernelGlobalTypeInferenceElementData.setGetterTypeMaskInComplexSendSet' );
403 }
404
405 @override
406 void setTypeMask(ir.Node node, TypeMask mask) {
407 _sendMap ??= <ir.Node, TypeMask>{};
408 _sendMap[node] = mask;
409 }
410
411 @override
412 TypeMask typeOfOperator(ir.Node node) {
413 throw new UnsupportedError(
414 'KernelGlobalTypeInferenceElementData.typeOfOperator');
415 }
416
417 @override
418 TypeMask typeOfGetter(ir.Node node) {
419 throw new UnsupportedError(
420 'KernelGlobalTypeInferenceElementData.typeOfGetter');
421 }
422 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698