|
@@ -878,7 +878,7 @@ public class JavaNativeModule {
|
878
|
878
|
TypeVariable variable = (TypeVariable) type;
|
879
|
879
|
return registry.getGeneric(context.get(variable)).stored();
|
880
|
880
|
}else if(type instanceof AnnotatedType){
|
881
|
|
- final TypeID baseType;
|
|
881
|
+ final StoredType storedType;
|
882
|
882
|
if(type instanceof AnnotatedParameterizedType) {
|
883
|
883
|
AnnotatedParameterizedType parameterizedType = (AnnotatedParameterizedType) type;
|
884
|
884
|
final Type rawType = ((ParameterizedType) parameterizedType.getType()).getRawType();
|
|
@@ -889,22 +889,22 @@ public class JavaNativeModule {
|
889
|
889
|
}
|
890
|
890
|
|
891
|
891
|
if(rawType == Map.class) {
|
892
|
|
- baseType = registry.getAssociative(codeParameters[0], codeParameters[1]);
|
|
892
|
+ storedType = registry.getAssociative(codeParameters[0], codeParameters[1]).stored();
|
893
|
893
|
} else {
|
894
|
894
|
HighLevelDefinition definition = addClass((Class<?>) rawType);
|
895
|
|
- baseType = registry.getForDefinition(definition, codeParameters);
|
|
895
|
+ storedType = registry.getForDefinition(definition, codeParameters).stored();
|
896
|
896
|
}
|
897
|
897
|
} else {
|
898
|
|
- baseType = loadType(context, (AnnotatedElement) ((AnnotatedType) type).getType(), unsigned).type;
|
|
898
|
+ storedType = loadType(context, (AnnotatedElement) ((AnnotatedType) type).getType(), unsigned);
|
899
|
899
|
}
|
900
|
900
|
|
901
|
901
|
if(type.isAnnotationPresent(ZenCodeStorageTag.class)) {
|
902
|
902
|
//Replace with switch if more StorageTagTypes are added
|
903
|
903
|
if(type.getAnnotation(ZenCodeStorageTag.class).value() == StorageTagType.STATIC) {
|
904
|
|
- return baseType.stored(StaticStorageTag.INSTANCE);
|
|
904
|
+ return storedType.type.stored(StorageTag.union(CodePosition.BUILTIN, storedType.getSpecifiedStorage(), StaticStorageTag.INSTANCE));
|
905
|
905
|
}
|
906
|
906
|
}
|
907
|
|
- return baseType.stored();
|
|
907
|
+ return storedType;
|
908
|
908
|
|
909
|
909
|
} else {
|
910
|
910
|
throw new IllegalArgumentException("Could not analyze type: " + type);
|