blob: a07125c361a2b00e3734ea9410dc0ee8cc25ae52 [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.utils.codeinspector;
import static com.android.tools.r8.utils.DescriptorUtils.DESCRIPTOR_PACKAGE_SEPARATOR;
import static com.android.tools.r8.utils.DescriptorUtils.getBinaryNameFromJavaType;
import java.util.List;
import java.util.stream.Collectors;
import kotlinx.metadata.KmTypeAlias;
public class FoundKmTypeAliasSubject extends KmTypeAliasSubject {
private final KmTypeAlias kmTypeAlias;
private final CodeInspector codeInspector;
FoundKmTypeAliasSubject(CodeInspector codeInspector, KmTypeAlias kmTypeAlias) {
this.codeInspector = codeInspector;
this.kmTypeAlias = kmTypeAlias;
}
@Override
public boolean isPresent() {
return true;
}
@Override
public boolean isRenamed() {
return false;
}
@Override
public boolean isSynthetic() {
return false;
}
@Override
public String name() {
return kmTypeAlias.getName();
}
@Override
public List<KmTypeParameterSubject> typeParameters() {
return kmTypeAlias.getTypeParameters().stream()
.map(kmTypeParameter -> new FoundKmTypeParameterSubject(codeInspector, kmTypeParameter))
.collect(Collectors.toList());
}
@Override
public String descriptor(String pkg) {
return "L" + getBinaryNameFromJavaType(pkg) + DESCRIPTOR_PACKAGE_SEPARATOR + name() + ";";
}
@Override
public KmTypeSubject expandedType() {
return new KmTypeSubject(codeInspector, kmTypeAlias.expandedType);
}
@Override
public KmTypeSubject underlyingType() {
return new KmTypeSubject(codeInspector, kmTypeAlias.underlyingType);
}
}