blob: 8b35b549f97dbacb1af5ce83269453fa67b8f337 [file] [log] [blame]
// Copyright (c) 2019, the R8 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.
package com.android.tools.r8.graph;
public interface DexDefinitionSupplier {
DexDefinition definitionFor(DexReference reference);
DexEncodedField definitionFor(DexField field);
DexEncodedMethod definitionFor(DexMethod method);
DexClass definitionFor(DexType type);
DexProgramClass definitionForProgramType(DexType type);
default <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>>
DexClass definitionForHolder(DexEncodedMember<D, R> member) {
return definitionForHolder(member.toReference());
}
default <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>>
DexClass definitionForHolder(DexMember<D, R> member) {
return definitionFor(member.holder);
}
DexItemFactory dexItemFactory();
}