mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 03:07:49 +00:00
[dart2js] Migrate js_backend/specialized_checks.dart
Also prepare some ssa/ files by importing world_iterfaces.dart Change-Id: Ifa1c61d27a32619baec60ab7835f66e36dee3bf5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/261283 Reviewed-by: Mayank Patke <fishythefish@google.com> Commit-Queue: Stephen Adams <sra@google.com>
This commit is contained in:
parent
3973013abe
commit
1af4a6a835
|
@ -2,15 +2,13 @@
|
|||
// 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.
|
||||
|
||||
// @dart = 2.10
|
||||
|
||||
import '../common/elements.dart' show ElementEnvironment, JCommonElements;
|
||||
import '../deferred_load/output_unit.dart' show OutputUnitData;
|
||||
import '../elements/entities.dart';
|
||||
import '../elements/types.dart';
|
||||
import '../js_backend/interceptor_data.dart' show InterceptorData;
|
||||
import '../universe/class_hierarchy.dart' show ClassHierarchy;
|
||||
import '../world.dart' show JClosedWorld;
|
||||
import '../world_interfaces.dart' show JClosedWorld;
|
||||
|
||||
enum IsTestSpecialization {
|
||||
isNull,
|
||||
|
@ -24,7 +22,7 @@ enum IsTestSpecialization {
|
|||
}
|
||||
|
||||
class SpecializedChecks {
|
||||
static IsTestSpecialization findIsTestSpecialization(
|
||||
static IsTestSpecialization? findIsTestSpecialization(
|
||||
DartType dartType, MemberEntity compiland, JClosedWorld closedWorld) {
|
||||
if (dartType is LegacyType) {
|
||||
DartType base = dartType.baseType;
|
||||
|
@ -37,7 +35,7 @@ class SpecializedChecks {
|
|||
return _findIsTestSpecialization(dartType, compiland, closedWorld);
|
||||
}
|
||||
|
||||
static IsTestSpecialization _findIsTestSpecialization(
|
||||
static IsTestSpecialization? _findIsTestSpecialization(
|
||||
DartType dartType, MemberEntity compiland, JClosedWorld closedWorld) {
|
||||
if (dartType is InterfaceType) {
|
||||
ClassEntity element = dartType.element;
|
||||
|
@ -108,7 +106,7 @@ class SpecializedChecks {
|
|||
return null;
|
||||
}
|
||||
|
||||
static MemberEntity findAsCheck(DartType dartType,
|
||||
static MemberEntity? findAsCheck(DartType dartType,
|
||||
JCommonElements commonElements, bool useLegacySubtyping) {
|
||||
if (dartType is InterfaceType) {
|
||||
if (dartType.typeArguments.isNotEmpty) return null;
|
||||
|
@ -149,9 +147,9 @@ class SpecializedChecks {
|
|||
/// String nullable: false legacy: true String yes
|
||||
/// String nullable: false legacy: false String no
|
||||
///
|
||||
static MemberEntity _findAsCheck(
|
||||
static MemberEntity? _findAsCheck(
|
||||
ClassEntity element, JCommonElements commonElements,
|
||||
{bool nullable, bool legacy}) {
|
||||
{required bool nullable, required bool legacy}) {
|
||||
if (element == commonElements.jsStringClass ||
|
||||
element == commonElements.stringClass) {
|
||||
if (legacy) return commonElements.specializedAsStringLegacy;
|
||||
|
|
|
@ -9,7 +9,7 @@ import '../elements/entities.dart';
|
|||
import '../inferrer/abstract_value_domain.dart';
|
||||
import '../options.dart';
|
||||
import '../universe/selector.dart' show Selector;
|
||||
import '../world.dart' show JClosedWorld;
|
||||
import '../world_interfaces.dart' show JClosedWorld;
|
||||
import 'codegen.dart' show CodegenPhase;
|
||||
import 'nodes.dart';
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import '../elements/entities.dart';
|
|||
import '../inferrer/abstract_value_domain.dart';
|
||||
import '../js_backend/interceptor_data.dart';
|
||||
import '../universe/selector.dart' show Selector;
|
||||
import '../world.dart' show JClosedWorld;
|
||||
import '../world_interfaces.dart' show JClosedWorld;
|
||||
import 'nodes.dart';
|
||||
import 'optimize.dart';
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import '../elements/entities.dart';
|
|||
import '../inferrer/abstract_value_domain.dart';
|
||||
import '../js_backend/interceptor_data.dart';
|
||||
import '../universe/selector.dart' show Selector;
|
||||
import '../world.dart' show JClosedWorld;
|
||||
import '../world_interfaces.dart' show JClosedWorld;
|
||||
import 'nodes.dart';
|
||||
import 'optimize.dart';
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import '../elements/names.dart';
|
|||
import '../inferrer/abstract_value_domain.dart';
|
||||
import '../inferrer/types.dart';
|
||||
import '../universe/selector.dart';
|
||||
import '../world.dart' show JClosedWorld;
|
||||
import '../world_interfaces.dart' show JClosedWorld;
|
||||
import 'logging.dart';
|
||||
import 'nodes.dart';
|
||||
import 'types.dart';
|
||||
|
|
|
@ -17,7 +17,7 @@ import '../js_backend/native_data.dart';
|
|||
import '../js_backend/interceptor_data.dart';
|
||||
import '../js_model/closure.dart' show JRecordField, JClosureField;
|
||||
import '../js_model/locals.dart' show GlobalLocalsMap, JLocal;
|
||||
import '../world.dart' show JClosedWorld;
|
||||
import '../world_interfaces.dart' show JClosedWorld;
|
||||
|
||||
import 'builder.dart';
|
||||
import 'nodes.dart';
|
||||
|
|
|
@ -26,7 +26,7 @@ import '../options.dart';
|
|||
import '../universe/selector.dart' show Selector;
|
||||
import '../universe/side_effects.dart' show SideEffects;
|
||||
import '../util/util.dart';
|
||||
import '../world.dart' show JClosedWorld;
|
||||
import '../world_interfaces.dart' show JClosedWorld;
|
||||
import 'invoke_dynamic_specializers.dart';
|
||||
import 'validate.dart';
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ import '../diagnostics/invariant.dart' show DEBUG_MODE;
|
|||
import '../inferrer/abstract_value_domain.dart';
|
||||
import '../js_backend/namer.dart' show suffixForGetInterceptor;
|
||||
import '../tracer.dart';
|
||||
import '../world.dart' show JClosedWorld;
|
||||
import '../world_interfaces.dart' show JClosedWorld;
|
||||
import 'nodes.dart';
|
||||
|
||||
/// Outputs SSA code in a format readable by Hydra IR.
|
||||
|
|
|
@ -11,7 +11,7 @@ import '../inferrer/abstract_value_domain.dart';
|
|||
import '../inferrer/types.dart';
|
||||
import '../native/behavior.dart';
|
||||
import '../universe/selector.dart' show Selector;
|
||||
import '../world.dart' show JClosedWorld;
|
||||
import '../world_interfaces.dart' show JClosedWorld;
|
||||
|
||||
class AbstractValueFactory {
|
||||
static AbstractValue inferredReturnTypeForElement(
|
||||
|
|
|
@ -10,7 +10,7 @@ import '../elements/types.dart';
|
|||
import '../inferrer/abstract_value_domain.dart';
|
||||
import '../inferrer/types.dart';
|
||||
import '../universe/selector.dart' show Selector;
|
||||
import '../world.dart' show JClosedWorld;
|
||||
import '../world_interfaces.dart' show JClosedWorld;
|
||||
import 'logging.dart';
|
||||
import 'nodes.dart';
|
||||
import 'optimize.dart';
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
import '../constants/constant_system.dart' as constant_system;
|
||||
import '../constants/values.dart';
|
||||
import '../world.dart' show JClosedWorld;
|
||||
import '../world_interfaces.dart' show JClosedWorld;
|
||||
import 'nodes.dart';
|
||||
import 'optimize.dart';
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ import '../native/enqueue.dart' show NativeResolutionEnqueuer;
|
|||
import '../options.dart';
|
||||
import '../util/enumset.dart';
|
||||
import '../util/util.dart';
|
||||
import '../world.dart' show World;
|
||||
import '../world_interfaces.dart' show World;
|
||||
import 'call_structure.dart';
|
||||
import 'class_hierarchy.dart' show ClassHierarchyBuilder;
|
||||
import 'class_set.dart';
|
||||
|
|
|
@ -86,6 +86,7 @@ abstract class JClosedWorld implements interfaces.JClosedWorld {
|
|||
@override
|
||||
ClosureData get closureDataLookup;
|
||||
|
||||
@override
|
||||
OutputUnitData get outputUnitData;
|
||||
|
||||
/// The [Sorter] used for sorting elements in the generated code.
|
||||
|
|
|
@ -7,6 +7,7 @@ import 'package:compiler/src/js_model/element_map_interfaces.dart';
|
|||
import 'closure.dart';
|
||||
import 'package:kernel/ast.dart' as ir;
|
||||
import 'common/elements.dart';
|
||||
import 'deferred_load/output_unit.dart' show OutputUnitData;
|
||||
import 'elements/entities.dart';
|
||||
import 'elements/names.dart';
|
||||
import 'elements/types.dart';
|
||||
|
@ -37,6 +38,8 @@ abstract class JClosedWorld implements World {
|
|||
|
||||
ClosureData get closureDataLookup;
|
||||
|
||||
OutputUnitData get outputUnitData;
|
||||
|
||||
InterceptorData get interceptorData;
|
||||
|
||||
Iterable<MemberEntity> get liveInstanceMembers;
|
||||
|
|
Loading…
Reference in a new issue