blob: 1530bfe1d2968f1eb14a25440bc18a54b0dfd731 [file] [log] [blame]
// Copyright (c) 2012, 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.
library dart2js.common.registry;
import '../dart_types.dart' show
InterfaceType;
import '../elements/elements.dart' show
Element,
FunctionElement;
import '../universe/universe.dart' show
UniverseSelector;
/// Interface for registration of element dependencies.
abstract class Registry {
// TODO(johnniwinther): Remove this getter when [Registry] creates a
// dependency node.
Iterable<Element> get otherDependencies;
void registerDependency(Element element);
bool get isForResolution;
void registerDynamicInvocation(UniverseSelector selector);
void registerDynamicGetter(UniverseSelector selector);
void registerDynamicSetter(UniverseSelector selector);
void registerStaticInvocation(Element element);
void registerInstantiation(InterfaceType type);
void registerGetOfStaticFunction(FunctionElement element);
}