diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-08-01 11:23:04 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-08-01 11:23:04 +0100 |
| commit | cb76da7ffcf550c68103fe864defaa489e970eb0 (patch) | |
| tree | c3acf296c7f384c5a04bcbeb226b9ee51e41fde1 /src/main/java/org/zwobble | |
| parent | 2a69c9d95420784198251ab23a4828775e901f44 (diff) | |
Check for long strings
Diffstat (limited to 'src/main/java/org/zwobble')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java | 16 |
1 files changed, 15 insertions, 1 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 2dff24b..78cbca4 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 @@ -362,13 +362,27 @@ public class JavaTransient0Generator implements Generator { NativeTypes.INT_64 )); + statements.add(new JavaIfStatement( + new JavaBinaryOperation( + JavaBinaryOperator.GREATER_THAN, + new JavaRef(bytesLengthVariableName), + new JavaStaticFieldAccess(JavaTypeRef.INT_BOXED, JavaIdentifier.of("MAX_VALUE")) + ), + new JavaBlock(List.of( + new JavaThrowStatement(new JavaNewExpression( + JavaTypeRef.IO_EXCEPTION, + List.of(new JavaStringLiteral("Strings longer than Integer.MAX_VALUE are not supported")) + )) + )), + new JavaBlock(List.of()) + )); + statements.add(new JavaLocalVariableDeclaration( Optional.empty(), bytesVariableName, Optional.of(new JavaMethodCall( new JavaRef(INPUT_STREAM_NAME), JavaIdentifier.of("readNBytes"), - // TODO: handle very long strings List.of(new JavaCast(JavaTypeRef.INT, new JavaRef(bytesLengthVariableName))) )) )); |
