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

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

Issue 2559373004: Remove Compiler.inferenceWorld (Closed)
Patch Set: Created 4 years 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) 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 library compiler.src.inferrer.type_graph_nodes; 5 library compiler.src.inferrer.type_graph_nodes;
6 6
7 import 'dart:collection' show IterableBase; 7 import 'dart:collection' show IterableBase;
8 8
9 import '../common.dart'; 9 import '../common.dart';
10 import '../common/names.dart' show Identifiers; 10 import '../common/names.dart' show Identifiers;
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 } 633 }
634 if (declaration.isInstanceMember && 634 if (declaration.isInstanceMember &&
635 (declaration.name == Identifiers.noSuchMethod_ || 635 (declaration.name == Identifiers.noSuchMethod_ ||
636 (declaration.name == Identifiers.call && 636 (declaration.name == Identifiers.call &&
637 disableInferenceForClosures))) { 637 disableInferenceForClosures))) {
638 // Do not infer types for parameters of [noSuchMethod] and 638 // Do not infer types for parameters of [noSuchMethod] and
639 // [call] instance methods. 639 // [call] instance methods.
640 giveUp(inferrer); 640 giveUp(inferrer);
641 return safeType(inferrer); 641 return safeType(inferrer);
642 } 642 }
643 if (inferrer.compiler.inferenceWorld 643 if (inferrer.closedWorldRefiner
644 .getCurrentlyKnownMightBePassedToApply(declaration)) { 644 .getCurrentlyKnownMightBePassedToApply(declaration)) {
645 giveUp(inferrer); 645 giveUp(inferrer);
646 return safeType(inferrer); 646 return safeType(inferrer);
647 } 647 }
648 if (declaration == inferrer.mainElement) { 648 if (declaration == inferrer.mainElement) {
649 // The implicit call to main is not seen by the inferrer, 649 // The implicit call to main is not seen by the inferrer,
650 // therefore we explicitly set the type of its parameters as 650 // therefore we explicitly set the type of its parameters as
651 // dynamic. 651 // dynamic.
652 // TODO(14566): synthesize a call instead to get the exact 652 // TODO(14566): synthesize a call instead to get the exact
653 // types. 653 // types.
(...skipping 1084 matching lines...) Expand 10 before | Expand all | Expand 10 after
1738 } else if (annotation.isVoid) { 1738 } else if (annotation.isVoid) {
1739 otherType = closedWorld.commonMasks.nullType; 1739 otherType = closedWorld.commonMasks.nullType;
1740 } else { 1740 } else {
1741 assert(annotation.isInterfaceType); 1741 assert(annotation.isInterfaceType);
1742 otherType = new TypeMask.nonNullSubtype(annotation.element, closedWorld); 1742 otherType = new TypeMask.nonNullSubtype(annotation.element, closedWorld);
1743 } 1743 }
1744 if (isNullable) otherType = otherType.nullable(); 1744 if (isNullable) otherType = otherType.nullable();
1745 if (type == null) return otherType; 1745 if (type == null) return otherType;
1746 return type.intersection(otherType, closedWorld); 1746 return type.intersection(otherType, closedWorld);
1747 } 1747 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart ('k') | pkg/compiler/lib/src/js_backend/backend.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698