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

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

Issue 2935663002: Remove Compiler.commonElements (Closed)
Patch Set: Remove Compiler._commonElements Created 3 years, 6 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) 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 simple_types_inferrer; 5 library simple_types_inferrer;
6 6
7 import '../closure.dart' show ClosureClassMap; 7 import '../closure.dart' show ClosureClassMap;
8 import '../common.dart'; 8 import '../common.dart';
9 import '../common/names.dart' show Identifiers, Selectors; 9 import '../common/names.dart' show Identifiers, Selectors;
10 import '../compiler.dart' show Compiler; 10 import '../compiler.dart' show Compiler;
(...skipping 2027 matching lines...) Expand 10 before | Expand all | Expand 10 after
2038 return handleSuperNoSuchMethod(node, selector, mask, arguments); 2038 return handleSuperNoSuchMethod(node, selector, mask, arguments);
2039 } 2039 }
2040 2040
2041 TypeInformation handleSuperNoSuchMethod(ast.Send node, Selector selector, 2041 TypeInformation handleSuperNoSuchMethod(ast.Send node, Selector selector,
2042 TypeMask mask, ArgumentsTypes arguments) { 2042 TypeMask mask, ArgumentsTypes arguments) {
2043 // Ensure we create a node, to make explicit the call to the 2043 // Ensure we create a node, to make explicit the call to the
2044 // `noSuchMethod` handler. 2044 // `noSuchMethod` handler.
2045 ClassElement cls = outermostElement.enclosingClass; 2045 ClassElement cls = outermostElement.enclosingClass;
2046 MethodElement element = cls.lookupSuperMember(Identifiers.noSuchMethod_); 2046 MethodElement element = cls.lookupSuperMember(Identifiers.noSuchMethod_);
2047 if (!Selectors.noSuchMethod_.signatureApplies(element)) { 2047 if (!Selectors.noSuchMethod_.signatureApplies(element)) {
2048 ClassElement objectClass = compiler.commonElements.objectClass; 2048 ClassElement objectClass = closedWorld.commonElements.objectClass;
2049 element = objectClass.lookupMember(Identifiers.noSuchMethod_); 2049 element = objectClass.lookupMember(Identifiers.noSuchMethod_);
2050 } 2050 }
2051 return handleStaticSend(node, selector, mask, element, arguments); 2051 return handleStaticSend(node, selector, mask, element, arguments);
2052 } 2052 }
2053 2053
2054 /// Handle a .call invocation on the values retrieved from the super 2054 /// Handle a .call invocation on the values retrieved from the super
2055 /// [element]. For instance `super.foo(bar)` where `foo` is a field or getter. 2055 /// [element]. For instance `super.foo(bar)` where `foo` is a field or getter.
2056 TypeInformation handleSuperClosureCall( 2056 TypeInformation handleSuperClosureCall(
2057 ast.Send node, Element element, ast.NodeList arguments) { 2057 ast.Send node, Element element, ast.NodeList arguments) {
2058 ArgumentsTypes argumentTypes = analyzeArguments(arguments.nodes); 2058 ArgumentsTypes argumentTypes = analyzeArguments(arguments.nodes);
(...skipping 864 matching lines...) Expand 10 before | Expand all | Expand 10 after
2923 } 2923 }
2924 2924
2925 TypeInformation visitAsyncForIn(ast.AsyncForIn node) { 2925 TypeInformation visitAsyncForIn(ast.AsyncForIn node) {
2926 TypeInformation expressionType = visit(node.expression); 2926 TypeInformation expressionType = visit(node.expression);
2927 2927
2928 Selector currentSelector = Selectors.current; 2928 Selector currentSelector = Selectors.current;
2929 TypeMask currentMask = inTreeData.typeOfIteratorCurrent(node); 2929 TypeMask currentMask = inTreeData.typeOfIteratorCurrent(node);
2930 Selector moveNextSelector = Selectors.moveNext; 2930 Selector moveNextSelector = Selectors.moveNext;
2931 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node); 2931 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node);
2932 2932
2933 ConstructorElement ctor = compiler.commonElements.streamIteratorConstructor; 2933 ConstructorElement ctor =
2934 closedWorld.commonElements.streamIteratorConstructor;
2934 2935
2935 /// Synthesize a call to the [StreamIterator] constructor. 2936 /// Synthesize a call to the [StreamIterator] constructor.
2936 TypeInformation iteratorType = handleStaticSend( 2937 TypeInformation iteratorType = handleStaticSend(
2937 node, null, null, ctor, new ArgumentsTypes([expressionType], null)); 2938 node, null, null, ctor, new ArgumentsTypes([expressionType], null));
2938 2939
2939 return handleForInLoop(node, iteratorType, currentSelector, currentMask, 2940 return handleForInLoop(node, iteratorType, currentSelector, currentMask,
2940 moveNextSelector, moveNextMask); 2941 moveNextSelector, moveNextMask);
2941 } 2942 }
2942 2943
2943 TypeInformation visitSyncForIn(ast.SyncForIn node) { 2944 TypeInformation visitSyncForIn(ast.SyncForIn node) {
2944 TypeInformation expressionType = visit(node.expression); 2945 TypeInformation expressionType = visit(node.expression);
2945 Selector iteratorSelector = Selectors.iterator; 2946 Selector iteratorSelector = Selectors.iterator;
2946 TypeMask iteratorMask = inTreeData.typeOfIterator(node); 2947 TypeMask iteratorMask = inTreeData.typeOfIterator(node);
2947 Selector currentSelector = Selectors.current; 2948 Selector currentSelector = Selectors.current;
2948 TypeMask currentMask = inTreeData.typeOfIteratorCurrent(node); 2949 TypeMask currentMask = inTreeData.typeOfIteratorCurrent(node);
2949 Selector moveNextSelector = Selectors.moveNext; 2950 Selector moveNextSelector = Selectors.moveNext;
2950 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node); 2951 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node);
2951 2952
2952 TypeInformation iteratorType = handleDynamicSend(node, iteratorSelector, 2953 TypeInformation iteratorType = handleDynamicSend(node, iteratorSelector,
2953 iteratorMask, expressionType, new ArgumentsTypes.empty()); 2954 iteratorMask, expressionType, new ArgumentsTypes.empty());
2954 2955
2955 return handleForInLoop(node, iteratorType, currentSelector, currentMask, 2956 return handleForInLoop(node, iteratorType, currentSelector, currentMask,
2956 moveNextSelector, moveNextMask); 2957 moveNextSelector, moveNextMask);
2957 } 2958 }
2958 } 2959 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/deferred_load.dart ('k') | pkg/compiler/lib/src/inferrer/closure_tracer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698