Remove obsolete logic to IS_BUILT_WITH_ASM6
This commit is contained in:
@@ -76,8 +76,6 @@ import static org.jetbrains.org.objectweb.asm.Opcodes.*;
|
|||||||
|
|
||||||
public class AsmUtil {
|
public class AsmUtil {
|
||||||
|
|
||||||
public static final boolean IS_BUILT_WITH_ASM6 = Opcodes.API_VERSION <= Opcodes.ASM6;
|
|
||||||
|
|
||||||
private static final Set<Type> STRING_BUILDER_OBJECT_APPEND_ARG_TYPES = Sets.newHashSet(
|
private static final Set<Type> STRING_BUILDER_OBJECT_APPEND_ARG_TYPES = Sets.newHashSet(
|
||||||
getType(String.class),
|
getType(String.class),
|
||||||
getType(StringBuffer.class),
|
getType(StringBuffer.class),
|
||||||
|
|||||||
@@ -520,22 +520,9 @@ public class FunctionCodegen {
|
|||||||
|
|
||||||
Iterator<ValueParameterDescriptor> iterator = valueParameters.iterator();
|
Iterator<ValueParameterDescriptor> iterator = valueParameters.iterator();
|
||||||
List<JvmMethodParameterSignature> kotlinParameterTypes = jvmSignature.getValueParameters();
|
List<JvmMethodParameterSignature> kotlinParameterTypes = jvmSignature.getValueParameters();
|
||||||
int syntheticParameterCount = 0;
|
int syntheticParameterCount = CollectionsKt.count(kotlinParameterTypes, signature -> signature.getKind().isSkippedInGenericSignature());
|
||||||
for (int i = 0; i < kotlinParameterTypes.size(); i++) {
|
|
||||||
JvmMethodParameterSignature parameterSignature = kotlinParameterTypes.get(i);
|
Asm7UtilKt.visitAnnotableParameterCount(mv, kotlinParameterTypes.size() - syntheticParameterCount);
|
||||||
JvmMethodParameterKind kind = parameterSignature.getKind();
|
|
||||||
if (kind.isSkippedInGenericSignature()) {
|
|
||||||
if (AsmUtil.IS_BUILT_WITH_ASM6) {
|
|
||||||
markEnumOrInnerConstructorParameterAsSynthetic(mv, i, state.getClassBuilderMode());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
syntheticParameterCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!AsmUtil.IS_BUILT_WITH_ASM6) {
|
|
||||||
Asm7UtilKt.visitAnnotableParameterCount(mv, kotlinParameterTypes.size() - syntheticParameterCount);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < kotlinParameterTypes.size(); i++) {
|
for (int i = 0; i < kotlinParameterTypes.size(); i++) {
|
||||||
JvmMethodParameterSignature parameterSignature = kotlinParameterTypes.get(i);
|
JvmMethodParameterSignature parameterSignature = kotlinParameterTypes.get(i);
|
||||||
@@ -553,25 +540,12 @@ public class FunctionCodegen {
|
|||||||
|
|
||||||
if (annotated != null) {
|
if (annotated != null) {
|
||||||
//noinspection ConstantConditions
|
//noinspection ConstantConditions
|
||||||
AnnotationCodegen.forParameter(AsmUtil.IS_BUILT_WITH_ASM6 ? i : i - syntheticParameterCount, mv, innerClassConsumer, state)
|
AnnotationCodegen.forParameter(i - syntheticParameterCount, mv, innerClassConsumer, state)
|
||||||
.genAnnotations(annotated, parameterSignature.getAsmType());
|
.genAnnotations(annotated, parameterSignature.getAsmType());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void markEnumOrInnerConstructorParameterAsSynthetic(MethodVisitor mv, int i, ClassBuilderMode mode) {
|
|
||||||
// IDEA's ClsPsi builder fails to annotate synthetic parameters
|
|
||||||
if (mode == ClassBuilderMode.LIGHT_CLASSES) return;
|
|
||||||
|
|
||||||
// This is needed to avoid RuntimeInvisibleParameterAnnotations error in javac:
|
|
||||||
// see MethodWriter.visitParameterAnnotation()
|
|
||||||
|
|
||||||
AnnotationVisitor av = mv.visitParameterAnnotation(i, "Ljava/lang/Synthetic;", true);
|
|
||||||
if (av != null) {
|
|
||||||
av.visitEnd();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private static Type getThisTypeForFunction(
|
private static Type getThisTypeForFunction(
|
||||||
@NotNull FunctionDescriptor functionDescriptor,
|
@NotNull FunctionDescriptor functionDescriptor,
|
||||||
|
|||||||
+4
-17
@@ -221,22 +221,9 @@ private fun generateParameterAnnotations(
|
|||||||
) {
|
) {
|
||||||
val iterator = irFunction.valueParameters.iterator()
|
val iterator = irFunction.valueParameters.iterator()
|
||||||
val kotlinParameterTypes = jvmSignature.valueParameters
|
val kotlinParameterTypes = jvmSignature.valueParameters
|
||||||
var syntheticParameterCount = 0
|
val syntheticParameterCount = kotlinParameterTypes.count { it.kind.isSkippedInGenericSignature }
|
||||||
kotlinParameterTypes.forEachIndexed { i, parameterSignature ->
|
|
||||||
val kind = parameterSignature.kind
|
visitAnnotableParameterCount(mv, kotlinParameterTypes.size - syntheticParameterCount)
|
||||||
if (kind.isSkippedInGenericSignature) {
|
|
||||||
if (AsmUtil.IS_BUILT_WITH_ASM6) {
|
|
||||||
// This is needed to avoid RuntimeInvisibleParameterAnnotations error in javac:
|
|
||||||
// see MethodWriter.visitParameterAnnotation()
|
|
||||||
mv.visitParameterAnnotation(i, "Ljava/lang/Synthetic;", true)?.visitEnd()
|
|
||||||
} else {
|
|
||||||
syntheticParameterCount++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!AsmUtil.IS_BUILT_WITH_ASM6) {
|
|
||||||
visitAnnotableParameterCount(mv, kotlinParameterTypes.size - syntheticParameterCount)
|
|
||||||
}
|
|
||||||
|
|
||||||
kotlinParameterTypes.forEachIndexed { i, parameterSignature ->
|
kotlinParameterTypes.forEachIndexed { i, parameterSignature ->
|
||||||
val kind = parameterSignature.kind
|
val kind = parameterSignature.kind
|
||||||
@@ -248,7 +235,7 @@ private fun generateParameterAnnotations(
|
|||||||
if (!kind.isSkippedInGenericSignature) {
|
if (!kind.isSkippedInGenericSignature) {
|
||||||
AnnotationCodegen(innerClassConsumer, context) { descriptor, visible ->
|
AnnotationCodegen(innerClassConsumer, context) { descriptor, visible ->
|
||||||
mv.visitParameterAnnotation(
|
mv.visitParameterAnnotation(
|
||||||
if (AsmUtil.IS_BUILT_WITH_ASM6) i else i - syntheticParameterCount,
|
i - syntheticParameterCount,
|
||||||
descriptor,
|
descriptor,
|
||||||
visible
|
visible
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-1
@@ -74,7 +74,7 @@ internal fun MethodNode.getParametersInfo(containingClass: ClassNode, isInnerCla
|
|||||||
name = "p${index - startParameterIndex}"
|
name = "p${index - startParameterIndex}"
|
||||||
}
|
}
|
||||||
|
|
||||||
val indexForAnnotation = if (AsmUtil.IS_BUILT_WITH_ASM6) index else index - startParameterIndex
|
val indexForAnnotation = index - startParameterIndex
|
||||||
val visibleAnnotations = visibleParameterAnnotations?.get(indexForAnnotation)
|
val visibleAnnotations = visibleParameterAnnotations?.get(indexForAnnotation)
|
||||||
val invisibleAnnotations = invisibleParameterAnnotations?.get(indexForAnnotation)
|
val invisibleAnnotations = invisibleParameterAnnotations?.get(indexForAnnotation)
|
||||||
parameterInfos += ParameterInfo(0, name, type, visibleAnnotations, invisibleAnnotations)
|
parameterInfos += ParameterInfo(0, name, type, visibleAnnotations, invisibleAnnotations)
|
||||||
|
|||||||
Reference in New Issue
Block a user