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) {
|
||||
List<JetTypeParameter> parameters = type.getTypeParameterList().getParameters();
|
||||
if (parameters.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
sb.append('<');
|
||||
for(JetTypeParameter param : parameters) {
|
||||
sb.append("T");
|
||||
Variance variance = param.getVariance();
|
||||
@@ -78,5 +82,6 @@ public class SignatureUtil {
|
||||
sb.append(param.getName());
|
||||
sb.append(";");
|
||||
}
|
||||
sb.append('>');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -536,13 +536,20 @@ public abstract class TypeInfo<T> implements JetObject {
|
||||
}
|
||||
|
||||
public void parseVars(Signature signature) {
|
||||
while(cur < string.length && string[cur] == 'T') {
|
||||
if(signature.variables == null) {
|
||||
signature.variables = new LinkedList<TypeInfoProjection>();
|
||||
signature.varNames = new HashMap<String, Integer>();
|
||||
if (cur < string.length && string[cur] == '<') {
|
||||
cur++;
|
||||
while(cur < string.length && string[cur] != '>') {
|
||||
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++;
|
||||
signature.variables.add(parseVar(signature));
|
||||
}
|
||||
signature.variables = signature.variables == null ? Collections.<TypeInfoProjection>emptyList() : signature.variables;
|
||||
signature.varNames = signature.varNames == null ? Collections.<String,Integer>emptyMap() : signature.varNames;
|
||||
|
||||
Reference in New Issue
Block a user