src/java.base/share/classes/jdk/internal/org/objectweb/asm/TypePath.java
Print this page
*** 179,188 ****
--- 179,191 ----
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,201 ****
/**
* 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.
*/
@Override
public String toString() {
int length = getLength();
StringBuilder result = new StringBuilder(length * 2);
--- 194,204 ----
/**
* 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 followed by ';'.
*/
@Override
public String toString() {
int length = getLength();
StringBuilder result = new StringBuilder(length * 2);
*** 209,219 ****
break;
case WILDCARD_BOUND:
result.append('*');
break;
case TYPE_ARGUMENT:
! result.append(getStepArgument(i));
break;
default:
result.append('_');
}
}
--- 212,222 ----
break;
case WILDCARD_BOUND:
result.append('*');
break;
case TYPE_ARGUMENT:
! result.append(getStepArgument(i)).append(';');
break;
default:
result.append('_');
}
}