| // Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'package:kernel/ast.dart' as ir; |
| |
| import '../common/elements.dart'; |
| import '../elements/entities.dart'; |
| import '../js_backend/inferred_data.dart'; |
| import '../js_backend/no_such_method_registry_interfaces.dart'; |
| import '../native/behavior.dart'; |
| import '../universe/selector.dart'; |
| import '../world_interfaces.dart'; |
| import 'abstract_value_domain.dart'; |
| import 'locals_handler.dart'; |
| import 'type_graph_nodes.dart'; |
| import 'type_system.dart'; |
| |
| abstract class InferrerEngine { |
| AbstractValueDomain get abstractValueDomain; |
| TypeSystem get types; |
| JClosedWorld get closedWorld; |
| CommonElements get commonElements; |
| InferredDataBuilder get inferredDataBuilder; |
| FunctionEntity get mainElement; |
| NoSuchMethodData get noSuchMethodData; |
| |
| TypeInformation typeOfNativeBehavior(NativeBehavior nativeBehavior); |
| bool canFieldBeUsedForGlobalOptimizations(FieldEntity element); |
| bool assumeDynamic(MemberEntity member); |
| TypeInformation getDefaultTypeOfParameter(Local parameter); |
| bool canFunctionParametersBeUsedForGlobalOptimizations( |
| FunctionEntity function); |
| TypeInformation typeOfMemberWithSelector( |
| MemberEntity element, Selector? selector); |
| void updateSelectorInMember(MemberEntity owner, CallType callType, |
| ir.Node? node, Selector? selector, AbstractValue? mask); |
| void updateParameterInputs(TypeInformation caller, MemberEntity callee, |
| ArgumentsTypes? arguments, Selector? selector, |
| {required bool remove, bool addToQueue = true}); |
| bool returnsListElementType(Selector selector, AbstractValue mask); |
| bool returnsMapValueType(Selector selector, AbstractValue mask); |
| } |