make SignatureUtil format closer to JVM
This commit is contained in:
@@ -68,6 +68,10 @@ public class SignatureUtil {
|
|||||||
|
|
||||||
private static void genTypeParams(JetClass type, StringBuilder sb) {
|
private static void genTypeParams(JetClass type, StringBuilder sb) {
|
||||||
List<JetTypeParameter> parameters = type.getTypeParameterList().getParameters();
|
List<JetTypeParameter> parameters = type.getTypeParameterList().getParameters();
|
||||||
|
if (parameters.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sb.append('<');
|
||||||
for(JetTypeParameter param : parameters) {
|
for(JetTypeParameter param : parameters) {
|
||||||
sb.append("T");
|
sb.append("T");
|
||||||
Variance variance = param.getVariance();
|
Variance variance = param.getVariance();
|
||||||
@@ -78,5 +82,6 @@ public class SignatureUtil {
|
|||||||
sb.append(param.getName());
|
sb.append(param.getName());
|
||||||
sb.append(";");
|
sb.append(";");
|
||||||
}
|
}
|
||||||
|
sb.append('>');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -536,13 +536,20 @@ public abstract class TypeInfo<T> implements JetObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void parseVars(Signature signature) {
|
public void parseVars(Signature signature) {
|
||||||
while(cur < string.length && string[cur] == 'T') {
|
if (cur < string.length && string[cur] == '<') {
|
||||||
if(signature.variables == null) {
|
cur++;
|
||||||
signature.variables = new LinkedList<TypeInfoProjection>();
|
while(cur < string.length && string[cur] != '>') {
|
||||||
signature.varNames = new HashMap<String, Integer>();
|
if(signature.variables == null) {
|
||||||
|
signature.variables = new LinkedList<TypeInfoProjection>();
|
||||||
|
signature.varNames = new HashMap<String, Integer>();
|
||||||
|
}
|
||||||
|
if (string[cur] != 'T') {
|
||||||
|
throw new IllegalStateException(new String(string));
|
||||||
|
}
|
||||||
|
cur++;
|
||||||
|
signature.variables.add(parseVar(signature));
|
||||||
}
|
}
|
||||||
cur++;
|
cur++;
|
||||||
signature.variables.add(parseVar(signature));
|
|
||||||
}
|
}
|
||||||
signature.variables = signature.variables == null ? Collections.<TypeInfoProjection>emptyList() : signature.variables;
|
signature.variables = signature.variables == null ? Collections.<TypeInfoProjection>emptyList() : signature.variables;
|
||||||
signature.varNames = signature.varNames == null ? Collections.<String,Integer>emptyMap() : signature.varNames;
|
signature.varNames = signature.varNames == null ? Collections.<String,Integer>emptyMap() : signature.varNames;
|
||||||
|
|||||||
Reference in New Issue
Block a user