java.lang.String in signature should serialized and mapped back to java.lang.String
This commit is contained in:
@@ -167,8 +167,9 @@ class TypeInfoParser {
|
||||
private List<TypeInfoProjection> projections;
|
||||
|
||||
@Override
|
||||
public void visitClassType(String name, boolean nullable) {
|
||||
public void visitClassType(String name, boolean nullable, boolean forceReal) {
|
||||
try {
|
||||
// TODO: real flag
|
||||
klass = classLoader.loadClass(name.replace('/', '.'));
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException();
|
||||
|
||||
@@ -64,7 +64,7 @@ public class JetSignatureAdapter implements JetSignatureVisitor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitClassType(String name, boolean nullable) {
|
||||
public void visitClassType(String name, boolean nullable, boolean forceReal) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -67,7 +67,7 @@ public class JetSignatureExceptionsAdapter implements JetSignatureVisitor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitClassType(String name, boolean nullable) {
|
||||
public void visitClassType(String name, boolean nullable, boolean forceReal) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
|
||||
|
||||
@@ -149,7 +149,9 @@ public class JetSignatureReader {
|
||||
v.visitTypeVariable(signature.substring(pos, end), nullable);
|
||||
return end + 1;
|
||||
|
||||
default: // case 'L':
|
||||
case 'L':
|
||||
case 'M':
|
||||
boolean forceReal = signature.charAt(pos - 1) == 'M';
|
||||
start = pos;
|
||||
visited = false;
|
||||
inner = false;
|
||||
@@ -162,7 +164,7 @@ public class JetSignatureReader {
|
||||
if (inner) {
|
||||
v.visitInnerClassType(name, nullable);
|
||||
} else {
|
||||
v.visitClassType(name, nullable);
|
||||
v.visitClassType(name, nullable, forceReal);
|
||||
}
|
||||
}
|
||||
if (c == ';') {
|
||||
@@ -179,7 +181,7 @@ public class JetSignatureReader {
|
||||
if (inner) {
|
||||
v.visitInnerClassType(name, nullable);
|
||||
} else {
|
||||
v.visitClassType(name, nullable);
|
||||
v.visitClassType(name, nullable, forceReal);
|
||||
}
|
||||
visited = true;
|
||||
top: for (;;) {
|
||||
@@ -205,6 +207,8 @@ public class JetSignatureReader {
|
||||
}
|
||||
}
|
||||
}
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ public interface JetSignatureVisitor {
|
||||
*
|
||||
* @param name the internal name of the class or interface.
|
||||
*/
|
||||
void visitClassType(String name, boolean nullable);
|
||||
void visitClassType(String name, boolean nullable, boolean forceReal);
|
||||
|
||||
/**
|
||||
* Visits an inner class.
|
||||
|
||||
@@ -145,9 +145,9 @@ public class JetSignatureWriter implements JetSignatureVisitor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitClassType(final String name, boolean nullable) {
|
||||
public void visitClassType(final String name, boolean nullable, boolean forceReal) {
|
||||
visitNullabe(nullable);
|
||||
buf.append('L');
|
||||
buf.append(forceReal ? 'M' : 'L');
|
||||
buf.append(name);
|
||||
argumentStack *= 2;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user