summaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java
index b12f8d5..92d36e3 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java
@@ -1105,6 +1105,10 @@ public class JavaTransient0Generator implements Generator {
return Lists.concat(List.of(
generateDecode(id, NativeTypes.INT_64),
List.of(
+ generateAssertLessThanIntMax(
+ id,
+ "Shared value IDs greater than Integer.MAX_VALUE are not supported"
+ ),
new JavaLocalVariableDeclaration(
Optional.of(this.javaGenerator.generateTypeRef(type)),
target,
@@ -1129,6 +1133,10 @@ public class JavaTransient0Generator implements Generator {
new JavaMethodCall(
new JavaRef(SHARED_VALUES_NAME),
JavaIdentifier.of("get"),
+ // We've checked above that the id is less than
+ // Integer.MAX_VALUE, so casting to an int is safe.
+ // (This doesn't check for negatives, but get() fails for
+ // negative values anyway.)
List.of(new JavaCast(JavaTypeRef.INT, new JavaRef(id)))
)
)