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

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

Issue 2647043002: Fix hints reported by analyzer. (Closed)
Patch Set: Address review comments. Created 3 years, 11 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 1194 matching lines...) Expand 10 before | Expand all | Expand 10 after
1205 bool get inInstanceContext { 1205 bool get inInstanceContext {
1206 return (outermostElement.isInstanceMember && !outermostElement.isField) || 1206 return (outermostElement.isInstanceMember && !outermostElement.isField) ||
1207 outermostElement.isGenerativeConstructor; 1207 outermostElement.isGenerativeConstructor;
1208 } 1208 }
1209 1209
1210 bool treatAsInstanceMember(Element element) { 1210 bool treatAsInstanceMember(Element element) {
1211 return (Elements.isUnresolved(element) && inInstanceContext) || 1211 return (Elements.isUnresolved(element) && inInstanceContext) ||
1212 (element != null && element.isInstanceMember); 1212 (element != null && element.isInstanceMember);
1213 } 1213 }
1214 1214
1215 @override
1216 TypeInformation handleSendSet(ast.SendSet node) { 1215 TypeInformation handleSendSet(ast.SendSet node) {
1217 Element element = elements[node]; 1216 Element element = elements[node];
1218 if (!Elements.isUnresolved(element) && element.impliesType) { 1217 if (!Elements.isUnresolved(element) && element.impliesType) {
1219 node.visitChildren(this); 1218 node.visitChildren(this);
1220 return types.dynamicType; 1219 return types.dynamicType;
1221 } 1220 }
1222 1221
1223 Selector getterSelector = elements.getGetterSelectorInComplexSendSet(node); 1222 Selector getterSelector = elements.getGetterSelectorInComplexSendSet(node);
1224 TypeMask getterMask = inTreeData.typeOfGetter(node); 1223 TypeMask getterMask = inTreeData.typeOfGetter(node);
1225 TypeMask operatorMask = inTreeData.typeOfOperator(node); 1224 TypeMask operatorMask = inTreeData.typeOfOperator(node);
(...skipping 1044 matching lines...) Expand 10 before | Expand all | Expand 10 after
2270 } 2269 }
2271 } 2270 }
2272 return null; 2271 return null;
2273 } 2272 }
2274 2273
2275 TypeInformation visitAwait(ast.Await node) { 2274 TypeInformation visitAwait(ast.Await node) {
2276 TypeInformation futureType = node.expression.accept(this); 2275 TypeInformation futureType = node.expression.accept(this);
2277 return inferrer.registerAwait(node, futureType); 2276 return inferrer.registerAwait(node, futureType);
2278 } 2277 }
2279 2278
2280 @override
2281 TypeInformation handleTypeLiteralInvoke(ast.NodeList arguments) { 2279 TypeInformation handleTypeLiteralInvoke(ast.NodeList arguments) {
2282 // This is reached when users forget to put a `new` in front of a type 2280 // This is reached when users forget to put a `new` in front of a type
2283 // literal. The emitter will generate an actual call (even though it is 2281 // literal. The emitter will generate an actual call (even though it is
2284 // likely invalid), and for that it needs to have the arguments processed 2282 // likely invalid), and for that it needs to have the arguments processed
2285 // as well. 2283 // as well.
2286 analyzeArguments(arguments.nodes); 2284 analyzeArguments(arguments.nodes);
2287 return types.dynamicType; 2285 return types.dynamicType;
2288 } 2286 }
2289 2287
2290 /// Handle constructor invocation of [constructor]. 2288 /// Handle constructor invocation of [constructor].
(...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after
2930 Selector moveNextSelector = Selectors.moveNext; 2928 Selector moveNextSelector = Selectors.moveNext;
2931 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node); 2929 TypeMask moveNextMask = inTreeData.typeOfIteratorMoveNext(node);
2932 2930
2933 TypeInformation iteratorType = handleDynamicSend(node, iteratorSelector, 2931 TypeInformation iteratorType = handleDynamicSend(node, iteratorSelector,
2934 iteratorMask, expressionType, new ArgumentsTypes.empty()); 2932 iteratorMask, expressionType, new ArgumentsTypes.empty());
2935 2933
2936 return handleForInLoop(node, iteratorType, currentSelector, currentMask, 2934 return handleForInLoop(node, iteratorType, currentSelector, currentMask,
2937 moveNextSelector, moveNextMask); 2935 moveNextSelector, moveNextMask);
2938 } 2936 }
2939 } 2937 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/helpers/trace.dart ('k') | pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698