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

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

Issue 3008133002: Handle local invoke in inferrer (Closed)
Patch Set: Updated cf. comment 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 // TODO(johnniwinther): Rename this together with [typeOfSend].
350 Map<ir.Node, TypeMask> _sendMap;
351
352 @override
353 TypeMask typeOfSend(ir.Node node) {
354 if (_sendMap == null) return null;
355 return _sendMap[node];
356 }
357
358 @override
359 void setCurrentTypeMask(ir.Node node, TypeMask mask) {
360 throw new UnsupportedError(
361 'KernelGlobalTypeInferenceElementData.setCurrentTypeMask');
362 }
363
364 @override
365 void setMoveNextTypeMask(ir.Node node, TypeMask mask) {
366 throw new UnsupportedError(
367 'KernelGlobalTypeInferenceElementData.setMoveNextTypeMask');
368 }
369
370 @override
371 void setIteratorTypeMask(ir.Node node, TypeMask mask) {
372 throw new UnsupportedError(
373 'KernelGlobalTypeInferenceElementData.setIteratorTypeMask');
374 }
375
376 @override
377 TypeMask typeOfIteratorCurrent(ir.Node node) {
378 throw new UnsupportedError(
379 'KernelGlobalTypeInferenceElementData.typeOfIteratorCurrent');
380 }
381
382 @override
383 TypeMask typeOfIteratorMoveNext(ir.Node node) {
384 throw new UnsupportedError(
385 'KernelGlobalTypeInferenceElementData.typeOfIteratorMoveNext');
386 }
387
388 @override
389 TypeMask typeOfIterator(ir.Node node) {
390 throw new UnsupportedError(
391 'KernelGlobalTypeInferenceElementData.typeOfIterator');
392 }
393
394 @override
395 void setOperatorTypeMaskInComplexSendSet(ir.Node node, TypeMask mask) {
396 throw new UnsupportedError(
397 'KernelGlobalTypeInferenceElementData.setOperatorTypeMaskInComplexSendSe t');
398 }
399
400 @override
401 void setGetterTypeMaskInComplexSendSet(ir.Node node, TypeMask mask) {
402 throw new UnsupportedError(
403 'KernelGlobalTypeInferenceElementData.setGetterTypeMaskInComplexSendSet' );
404 }
405
406 @override
407 void setTypeMask(ir.Node node, TypeMask mask) {
408 _sendMap ??= <ir.Node, TypeMask>{};
409 _sendMap[node] = mask;
410 }
411
412 @override
413 TypeMask typeOfOperator(ir.Node node) {
414 throw new UnsupportedError(
415 'KernelGlobalTypeInferenceElementData.typeOfOperator');
416 }
417
418 @override
419 TypeMask typeOfGetter(ir.Node node) {
420 throw new UnsupportedError(
421 'KernelGlobalTypeInferenceElementData.typeOfGetter');
422 }
423 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/inferrer/inferrer_engine.dart ('k') | pkg/compiler/lib/src/inferrer/type_graph_nodes.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698