blob: 65499cf10bbe2dfac806ae33411bd68fc04decfd [file] [log] [blame]
// 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 '../elements/entities.dart';
import '../elements/types.dart';
import '../universe/use.dart';
import 'member_usage.dart';
abstract class CodegenWorldBuilderImplForEnqueuer {
Iterable<ClassEntity> get directlyInstantiatedClasses;
void registerTypeInstantiation(
InterfaceType type, ClassUsedCallback classUsed);
void processClassMembers(ClassEntity cls, MemberUsedCallback memberUsed,
{bool checkEnqueuerConsistency = false});
void registerDynamicUse(DynamicUse dynamicUse, MemberUsedCallback memberUsed);
void registerStaticUse(StaticUse staticUse, MemberUsedCallback memberUsed);
void registerTypeVariableTypeLiteral(TypeVariableType typeVariable);
void registerConstTypeLiteral(DartType type);
void registerTypeArgument(DartType type);
void registerConstructorReference(InterfaceType type);
bool registerConstantUse(ConstantUse use);
void registerIsCheck(covariant DartType type);
void registerNamedTypeVariableNewRti(TypeVariableType type);
}