| OLD | NEW |
| 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 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 bool isFieldInitializerPotentiallyNull( | 137 bool isFieldInitializerPotentiallyNull( |
| 138 FieldEntity field, ir.Node initializer) { | 138 FieldEntity field, ir.Node initializer) { |
| 139 // TODO(johnniwinther): Implement the ad-hoc check in ast inferrer? | 139 // TODO(johnniwinther): Implement the ad-hoc check in ast inferrer? |
| 140 return true; | 140 return true; |
| 141 } | 141 } |
| 142 | 142 |
| 143 @override | 143 @override |
| 144 TypeInformation computeMemberTypeInformation( | 144 TypeInformation computeMemberTypeInformation( |
| 145 MemberEntity member, ir.Node body) { | 145 MemberEntity member, ir.Node body) { |
| 146 KernelTypeGraphBuilder visitor = new KernelTypeGraphBuilder( | 146 KernelTypeGraphBuilder visitor = new KernelTypeGraphBuilder( |
| 147 options, closedWorld, _closureDataLookup, this, member, body); | 147 options, |
| 148 closedWorld, |
| 149 _closureDataLookup, |
| 150 this, |
| 151 member, |
| 152 body, |
| 153 _elementMap, |
| 154 _globalLocalsMap.getLocalsMap(member)); |
| 148 return visitor.run(); | 155 return visitor.run(); |
| 149 } | 156 } |
| 150 | 157 |
| 151 @override | 158 @override |
| 152 FunctionEntity lookupCallMethod(ClassEntity cls) { | 159 FunctionEntity lookupCallMethod(ClassEntity cls) { |
| 153 throw new UnimplementedError('KernelInferrerEngine.lookupCallMethod'); | 160 throw new UnimplementedError('KernelInferrerEngine.lookupCallMethod'); |
| 154 } | 161 } |
| 155 | 162 |
| 156 @override | 163 @override |
| 157 ir.Node computeMemberBody(MemberEntity member) { | 164 ir.Node computeMemberBody(MemberEntity member) { |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 failedAt(function, "Unexpected function definition $definition."); | 282 failedAt(function, "Unexpected function definition $definition."); |
| 276 } | 283 } |
| 277 | 284 |
| 278 @override | 285 @override |
| 279 ParameterTypeInformation createParameterTypeInformation( | 286 ParameterTypeInformation createParameterTypeInformation( |
| 280 Local parameter, TypeSystem<ir.Node> types) { | 287 Local parameter, TypeSystem<ir.Node> types) { |
| 281 MemberEntity context = parameter.memberContext; | 288 MemberEntity context = parameter.memberContext; |
| 282 KernelToLocalsMap localsMap = _globalLocalsMap.getLocalsMap(context); | 289 KernelToLocalsMap localsMap = _globalLocalsMap.getLocalsMap(context); |
| 283 ir.FunctionNode functionNode = | 290 ir.FunctionNode functionNode = |
| 284 localsMap.getFunctionNodeForParameter(parameter); | 291 localsMap.getFunctionNodeForParameter(parameter); |
| 285 DartType type = | 292 DartType type = localsMap.getLocalType(_elementMap, parameter); |
| 286 _elementMap.getDartType(localsMap.getParameterType(parameter)); | |
| 287 MemberEntity member; | 293 MemberEntity member; |
| 288 bool isClosure = false; | 294 bool isClosure = false; |
| 289 if (functionNode.parent is ir.Member) { | 295 if (functionNode.parent is ir.Member) { |
| 290 member = _elementMap.getMember(functionNode.parent); | 296 member = _elementMap.getMember(functionNode.parent); |
| 291 } else if (functionNode.parent is ir.FunctionExpression || | 297 } else if (functionNode.parent is ir.FunctionExpression || |
| 292 functionNode.parent is ir.FunctionDeclaration) { | 298 functionNode.parent is ir.FunctionDeclaration) { |
| 293 ClosureRepresentationInfo info = | 299 ClosureRepresentationInfo info = |
| 294 _closureDataLookup.getClosureInfo(functionNode.parent); | 300 _closureDataLookup.getClosureInfo(functionNode.parent); |
| 295 member = info.callMethod; | 301 member = info.callMethod; |
| 296 isClosure = true; | 302 isClosure = true; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 ConstructorEntity constructor = member; | 336 ConstructorEntity constructor = member; |
| 331 if (constructor.isFactoryConstructor) { | 337 if (constructor.isFactoryConstructor) { |
| 332 DartType type = _elementEnvironment.getFunctionType(constructor); | 338 DartType type = _elementEnvironment.getFunctionType(constructor); |
| 333 return new FactoryConstructorTypeInformation(constructor, type); | 339 return new FactoryConstructorTypeInformation(constructor, type); |
| 334 } else { | 340 } else { |
| 335 return new GenerativeConstructorTypeInformation(constructor); | 341 return new GenerativeConstructorTypeInformation(constructor); |
| 336 } | 342 } |
| 337 } | 343 } |
| 338 } | 344 } |
| 339 } | 345 } |
| OLD | NEW |