blob: e5467ff8c8c35edf8d51c8e70886ddb214ddfbd8 [file] [log] [blame]
// Copyright (c) 2020, 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;
import com.android.tools.r8.utils.OptionalBool;
public abstract class MemberResolutionResult<
D extends DexEncodedMember<D, R>, R extends DexMember<D, R>> {
public DexClassAndMember<D, R> getResolutionPair() {
return null;
}
public abstract boolean isSuccessfulMemberResolutionResult();
public abstract SuccessfulMemberResolutionResult<D, R> asSuccessfulMemberResolutionResult();
public abstract OptionalBool isAccessibleFrom(
ProgramDefinition context, AppInfoWithClassHierarchy appInfo);
public final OptionalBool isAccessibleFrom(
ProgramDefinition context, AppView<? extends AppInfoWithClassHierarchy> appView) {
return isAccessibleFrom(context, appView.appInfo());
}
/**
* Returns true if resolution failed.
*
* <p>Note the disclaimer in the doc of {@code MethodResolutionResult.isSingleResolution()}.
*/
public boolean isFailedResolution() {
return false;
}
public boolean isFieldResolutionResult() {
return false;
}
public boolean isMethodResolutionResult() {
return false;
}
public FieldResolutionResult asFieldResolutionResult() {
return null;
}
public MethodResolutionResult asMethodResolutionResult() {
return null;
}
}