[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:
Stephen Adams 2022-09-27 02:27:48 +00:00 committed by Commit Queue
parent 3973013abe
commit 1af4a6a835
14 changed files with 21 additions and 19 deletions

View file

@ -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;

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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.

View file

@ -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(

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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.

View file

@ -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;