properly read/write int?
This commit is contained in:
+18
@@ -24,6 +24,7 @@ public class JavaTypeTransformer {
|
||||
private final JetStandardLibrary standardLibrary;
|
||||
private Map<String, JetType> primitiveTypesMap;
|
||||
private Map<String, JetType> classTypesMap;
|
||||
private Map<String, ClassDescriptor> classDescriptorMap;
|
||||
|
||||
public JavaTypeTransformer(JavaSemanticServices javaSemanticServices, JetStandardLibrary standardLibrary, JavaDescriptorResolver resolver) {
|
||||
this.javaSemanticServices = javaSemanticServices;
|
||||
@@ -199,4 +200,21 @@ public class JavaTypeTransformer {
|
||||
}
|
||||
return classTypesMap;
|
||||
}
|
||||
|
||||
public Map<String, ClassDescriptor> getPrimitiveWrappersClassDescriptorMap() {
|
||||
if (classDescriptorMap == null) {
|
||||
classDescriptorMap = new HashMap<String, ClassDescriptor>();
|
||||
classDescriptorMap.put("java.lang.Byte", standardLibrary.getByte());
|
||||
classDescriptorMap.put("java.lang.Short", standardLibrary.getShort());
|
||||
classDescriptorMap.put("java.lang.Character", standardLibrary.getChar());
|
||||
classDescriptorMap.put("java.lang.Integer", standardLibrary.getInt());
|
||||
classDescriptorMap.put("java.lang.Long", standardLibrary.getLong());
|
||||
classDescriptorMap.put("java.lang.Float", standardLibrary.getFloat());
|
||||
classDescriptorMap.put("java.lang.Double", standardLibrary.getDouble());
|
||||
classDescriptorMap.put("java.lang.Boolean", standardLibrary.getBoolean());
|
||||
//classDescriptorMap.put("java.lang.Object", standardLibrary.get
|
||||
classDescriptorMap.put("java.lang.String", standardLibrary.getString());
|
||||
}
|
||||
return classDescriptorMap;
|
||||
}
|
||||
}
|
||||
|
||||
+7
-1
@@ -96,7 +96,13 @@ public abstract class JetTypeJetSignatureReader extends JetSignatureExceptionsAd
|
||||
@Override
|
||||
public void visitClassType(String name, boolean nullable) {
|
||||
String ourName = name.replace('/', '.');
|
||||
this.classDescriptor = javaDescriptorResolver.resolveClass(ourName);
|
||||
|
||||
this.classDescriptor = this.javaSemanticServices.getTypeTransformer().getPrimitiveWrappersClassDescriptorMap().get(ourName);
|
||||
|
||||
if (this.classDescriptor == null) {
|
||||
this.classDescriptor = javaDescriptorResolver.resolveClass(ourName);
|
||||
}
|
||||
|
||||
if (this.classDescriptor == null) {
|
||||
throw new IllegalStateException("class not found by name: " + ourName); // TODO: wrong exception
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user