in asm-util/src/main/java/org/objectweb/asm/util/Textifier.java [1460:1552]
private void appendTypeReference(final int typeRef) {
TypeReference typeReference = new TypeReference(typeRef);
switch (typeReference.getSort()) {
case TypeReference.CLASS_TYPE_PARAMETER:
stringBuilder.append("CLASS_TYPE_PARAMETER ").append(typeReference.getTypeParameterIndex());
break;
case TypeReference.METHOD_TYPE_PARAMETER:
stringBuilder
.append("METHOD_TYPE_PARAMETER ")
.append(typeReference.getTypeParameterIndex());
break;
case TypeReference.CLASS_EXTENDS:
stringBuilder.append("CLASS_EXTENDS ").append(typeReference.getSuperTypeIndex());
break;
case TypeReference.CLASS_TYPE_PARAMETER_BOUND:
stringBuilder
.append("CLASS_TYPE_PARAMETER_BOUND ")
.append(typeReference.getTypeParameterIndex())
.append(", ")
.append(typeReference.getTypeParameterBoundIndex());
break;
case TypeReference.METHOD_TYPE_PARAMETER_BOUND:
stringBuilder
.append("METHOD_TYPE_PARAMETER_BOUND ")
.append(typeReference.getTypeParameterIndex())
.append(", ")
.append(typeReference.getTypeParameterBoundIndex());
break;
case TypeReference.FIELD:
stringBuilder.append("FIELD");
break;
case TypeReference.METHOD_RETURN:
stringBuilder.append("METHOD_RETURN");
break;
case TypeReference.METHOD_RECEIVER:
stringBuilder.append("METHOD_RECEIVER");
break;
case TypeReference.METHOD_FORMAL_PARAMETER:
stringBuilder
.append("METHOD_FORMAL_PARAMETER ")
.append(typeReference.getFormalParameterIndex());
break;
case TypeReference.THROWS:
stringBuilder.append("THROWS ").append(typeReference.getExceptionIndex());
break;
case TypeReference.LOCAL_VARIABLE:
stringBuilder.append("LOCAL_VARIABLE");
break;
case TypeReference.RESOURCE_VARIABLE:
stringBuilder.append("RESOURCE_VARIABLE");
break;
case TypeReference.EXCEPTION_PARAMETER:
stringBuilder.append("EXCEPTION_PARAMETER ").append(typeReference.getTryCatchBlockIndex());
break;
case TypeReference.INSTANCEOF:
stringBuilder.append("INSTANCEOF");
break;
case TypeReference.NEW:
stringBuilder.append("NEW");
break;
case TypeReference.CONSTRUCTOR_REFERENCE:
stringBuilder.append("CONSTRUCTOR_REFERENCE");
break;
case TypeReference.METHOD_REFERENCE:
stringBuilder.append("METHOD_REFERENCE");
break;
case TypeReference.CAST:
stringBuilder.append("CAST ").append(typeReference.getTypeArgumentIndex());
break;
case TypeReference.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT:
stringBuilder
.append("CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT ")
.append(typeReference.getTypeArgumentIndex());
break;
case TypeReference.METHOD_INVOCATION_TYPE_ARGUMENT:
stringBuilder
.append("METHOD_INVOCATION_TYPE_ARGUMENT ")
.append(typeReference.getTypeArgumentIndex());
break;
case TypeReference.CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT:
stringBuilder
.append("CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT ")
.append(typeReference.getTypeArgumentIndex());
break;
case TypeReference.METHOD_REFERENCE_TYPE_ARGUMENT:
stringBuilder
.append("METHOD_REFERENCE_TYPE_ARGUMENT ")
.append(typeReference.getTypeArgumentIndex());
break;
default:
throw new IllegalArgumentException();
}
}