blob: 93577ad3e8dea989e9f99ab52fa31331b4db18a4 [file] [log] [blame]
// Copyright (c) 2021, 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.ir.optimize.classinliner.analysis;
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.ir.code.InvokeMethodWithReceiver;
class UnknownParameterUsage extends ParameterUsage {
private static final UnknownParameterUsage TOP = new UnknownParameterUsage();
private UnknownParameterUsage() {}
public static UnknownParameterUsage getInstance() {
return TOP;
}
@Override
UnknownParameterUsage addFieldReadFromParameter(DexField field) {
return this;
}
@Override
UnknownParameterUsage addMethodCallWithParameterAsReceiver(InvokeMethodWithReceiver invoke) {
return this;
}
@Override
ParameterUsage externalize() {
return this;
}
@Override
public boolean isParameterMutated() {
return true;
}
@Override
public boolean isParameterReturned() {
return true;
}
@Override
public boolean isParameterUsedAsLock() {
return true;
}
@Override
public boolean isTop() {
return true;
}
@Override
UnknownParameterUsage setParameterMutated() {
return this;
}
@Override
UnknownParameterUsage setParameterReturned() {
return this;
}
@Override
UnknownParameterUsage setParameterUsedAsLock() {
return this;
}
}