diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-08-28 13:32:59 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-08-28 13:32:59 +0100 |
| commit | 2acc93baf9964a310f8341a864e10b0bfcc30b9e (patch) | |
| tree | 4e0bcaa85ba0c19aa9a4d95848134636c3156c4b | |
| parent | 2111180763129d8a1a6956ff32e2b13bca2a5b72 (diff) | |
Explicitly don't support type-level values in transient-0
6 files changed, 35 insertions, 7 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/errors/CompilerError.java b/src/main/java/org/zwobble/hobgoblin/compiler/errors/CompilerError.java new file mode 100644 index 0000000..c278293 --- /dev/null +++ b/src/main/java/org/zwobble/hobgoblin/compiler/errors/CompilerError.java @@ -0,0 +1,7 @@ +package org.zwobble.hobgoblin.compiler.errors; + +public class CompilerError extends RuntimeException { + public CompilerError(String message) { + super(message); + } +} diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/errors/InternalError.java b/src/main/java/org/zwobble/hobgoblin/compiler/errors/InternalError.java new file mode 100644 index 0000000..f53d134 --- /dev/null +++ b/src/main/java/org/zwobble/hobgoblin/compiler/errors/InternalError.java @@ -0,0 +1,10 @@ +package org.zwobble.hobgoblin.compiler.errors; + +/** + * An error in the compiler itself. + */ +public class InternalError extends CompilerError { + public InternalError(String message) { + super(message); + } +} diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/errors/SourceError.java b/src/main/java/org/zwobble/hobgoblin/compiler/errors/SourceError.java index c60167f..149f4f6 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/errors/SourceError.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/errors/SourceError.java @@ -6,7 +6,7 @@ import org.zwobble.hobgoblin.compiler.sources.Source; * An error in the source code. These errors are expected when attempting to * compile invalid code. */ -public class SourceError extends RuntimeException { +public class SourceError extends CompilerError { private final Source source; public SourceError(String message, Source source) { 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 be42c08..65bfdfe 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 @@ -7,6 +7,7 @@ import org.zwobble.hobgoblin.compiler.config.OutputConfig; import org.zwobble.hobgoblin.compiler.output.generators.Generator; import org.zwobble.hobgoblin.compiler.output.generators.java.JavaGenerator; import org.zwobble.hobgoblin.compiler.output.generators.java.JavaGeneratorConfig; +import org.zwobble.hobgoblin.compiler.output.generators.transient0.Transient0TypeLevelValuesUnsupported; import org.zwobble.hobgoblin.compiler.output.lang.java.ast.*; import org.zwobble.hobgoblin.compiler.typechecker.TypesInfo; import org.zwobble.hobgoblin.compiler.types.*; @@ -995,7 +996,7 @@ public class JavaTransient0Generator implements Generator { } case TypeLevelValueType _ -> { - throw new UnsupportedOperationException("TODO"); + throw new Transient0TypeLevelValuesUnsupported(); } case TypeParam typeParam -> { @@ -1031,7 +1032,7 @@ public class JavaTransient0Generator implements Generator { } case TypeLevelValueType _ -> { - throw new UnsupportedOperationException("TODO"); + throw new Transient0TypeLevelValuesUnsupported(); } case TypeParam _ -> { @@ -1128,7 +1129,7 @@ public class JavaTransient0Generator implements Generator { } case TypeLevelValueType _ -> { - throw new UnsupportedOperationException("TODO"); + throw new Transient0TypeLevelValuesUnsupported(); } case TypeParam typeParam -> { @@ -1167,7 +1168,7 @@ public class JavaTransient0Generator implements Generator { } case TypeLevelValueType _ -> { - throw new UnsupportedOperationException("TODO"); + throw new Transient0TypeLevelValuesUnsupported(); } case TypeParam _ -> { diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java index d6aa888..354dfb5 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java @@ -6,6 +6,7 @@ import org.zwobble.hobgoblin.compiler.config.OutputConfig; import org.zwobble.hobgoblin.compiler.output.generators.Generator; import org.zwobble.hobgoblin.compiler.output.generators.rust.RustGenerator; import org.zwobble.hobgoblin.compiler.output.generators.rust.RustGeneratorConfig; +import org.zwobble.hobgoblin.compiler.output.generators.transient0.Transient0TypeLevelValuesUnsupported; import org.zwobble.hobgoblin.compiler.output.lang.rust.RustTypes; import org.zwobble.hobgoblin.compiler.output.lang.rust.ast.*; import org.zwobble.hobgoblin.compiler.typechecker.TypesInfo; @@ -838,7 +839,7 @@ public class RustTransient0Generator implements Generator { } case TypeLevelValueType _ -> { - yield new RustExpressionStatement(generateTodo()); + throw new Transient0TypeLevelValuesUnsupported(); } case TypeParam typeParam -> { @@ -886,7 +887,7 @@ public class RustTransient0Generator implements Generator { } case TypeLevelValueType _ -> { - yield generateTodo(); + throw new Transient0TypeLevelValuesUnsupported(); } case TypeParam typeParam -> { diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/transient0/Transient0TypeLevelValuesUnsupported.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/transient0/Transient0TypeLevelValuesUnsupported.java new file mode 100644 index 0000000..fff7697 --- /dev/null +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/transient0/Transient0TypeLevelValuesUnsupported.java @@ -0,0 +1,9 @@ +package org.zwobble.hobgoblin.compiler.output.generators.transient0; + +import org.zwobble.hobgoblin.compiler.errors.InternalError; + +public class Transient0TypeLevelValuesUnsupported extends InternalError { + public Transient0TypeLevelValuesUnsupported() { + super("Type-level values in transient-0 are unsupported"); + } +} |
