src/java.base/share/classes/jdk/internal/org/objectweb/asm/TypePath.java
Print this page
@@ -179,10 +179,13 @@
int typeArg = c - '0';
while (i < n && (c = typePath.charAt(i)) >= '0' && c <= '9') {
typeArg = typeArg * 10 + c - '0';
i += 1;
}
+ if (i < n && typePath.charAt(i) == ';') {
+ i += 1;
+ }
out.put11(TYPE_ARGUMENT, typeArg);
}
}
out.data[0] = (byte) (out.length / 2);
return new TypePath(out.data, 0);
@@ -191,11 +194,11 @@
/**
* Returns a string representation of this type path. {@link #ARRAY_ELEMENT
* ARRAY_ELEMENT} steps are represented with '[', {@link #INNER_TYPE
* INNER_TYPE} steps with '.', {@link #WILDCARD_BOUND WILDCARD_BOUND} steps
* with '*' and {@link #TYPE_ARGUMENT TYPE_ARGUMENT} steps with their type
- * argument index in decimal form.
+ * argument index in decimal form followed by ';'.
*/
@Override
public String toString() {
int length = getLength();
StringBuilder result = new StringBuilder(length * 2);
@@ -209,11 +212,11 @@
break;
case WILDCARD_BOUND:
result.append('*');
break;
case TYPE_ARGUMENT:
- result.append(getStepArgument(i));
+ result.append(getStepArgument(i)).append(';');
break;
default:
result.append('_');
}
}