blob: 5c334fe2a61c6603edbe76fe0b2df7ea3fee10b4 [file] [log] [blame]
// Copyright (c) 2017, 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.
/// Entity interfaces for modeling elements derived from Kernel IR.
import '../elements/entities.dart';
abstract class IndexedLibrary implements LibraryEntity {
/// Library index used for fast lookup in [KernelToElementMapBase].
int get libraryIndex;
}
abstract class IndexedClass implements ClassEntity {
/// Class index used for fast lookup in [KernelToElementMapBase].
int get classIndex;
}
abstract class IndexedMember implements MemberEntity {
/// Member index used for fast lookup in [KernelToElementMapBase].
int get memberIndex;
}
abstract class IndexedFunction implements IndexedMember, FunctionEntity {}
abstract class IndexedConstructor
implements IndexedFunction, ConstructorEntity {}
abstract class IndexedField implements IndexedMember, FieldEntity {}
abstract class IndexedTypeVariable implements TypeVariableEntity {
/// Type variable index used for fast lookup in [KernelToElementMapBase].
int get typeVariableIndex;
}
abstract class IndexedTypedef implements TypedefEntity {
/// Typedef index used for fast lookup in [KernelToElementMapBase].
int get typedefIndex;
}