blob: 1545a757469e7353b4592d7b5ab23784052be2c8 [file] [log] [blame]
// Copyright (c) 2024, 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.optimize.argumentpropagation.codescanner;
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
public class IdentityAbstractFunction implements AbstractFunction {
private static final IdentityAbstractFunction INSTANCE = new IdentityAbstractFunction();
private IdentityAbstractFunction() {}
static IdentityAbstractFunction get() {
return INSTANCE;
}
@Override
public ValueState apply(
AppView<AppInfoWithLiveness> appView,
FlowGraphStateProvider flowGraphStateProvider,
ConcreteValueState inState) {
return inState;
}
@Override
public boolean containsBaseInFlow(BaseInFlow inFlow) {
throw new Unreachable();
}
@Override
public Iterable<BaseInFlow> getBaseInFlow() {
throw new Unreachable();
}
@Override
public boolean isIdentity() {
return true;
}
}