diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-04-12 10:06:20 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-04-12 10:06:30 +0100 |
| commit | 175e43a91d4885d1f5e564c09b1dc3b945b503a8 (patch) | |
| tree | 15e79d085b7531f6e41c81b0ad57c0bc81e2d66f | |
| parent | 08522ea706b0e8b883a3cec97755e4e6dc562788 (diff) | |
Add proper error for unsupported targets
| -rw-r--r-- | src/main/java/org/shedlang/compiler/cli/ShedCli.java | 3 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/cli/UnsupportedTargetError.java | 11 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/main/java/org/shedlang/compiler/cli/ShedCli.java b/src/main/java/org/shedlang/compiler/cli/ShedCli.java index 7f6d88ad..9ae3fb75 100644 --- a/src/main/java/org/shedlang/compiler/cli/ShedCli.java +++ b/src/main/java/org/shedlang/compiler/cli/ShedCli.java @@ -44,8 +44,7 @@ public class ShedCli { // In principle, this should be prevented by the arg parsing. .orElseThrow(() -> new UnsupportedOperationException("Unrecognised backend: " + backendName)) .backendForTarget(target) - // TODO: better error - .orElseThrow(() -> new UnsupportedOperationException("Backend " + backendName + " does not support target " + target.targetName())) + .orElseThrow(() -> new UnsupportedTargetError(backendName, target)) ) .orElseGet(() -> Backends.backendForTarget(target)); var profile = Optional.ofNullable(args.getString("profile")); diff --git a/src/main/java/org/shedlang/compiler/cli/UnsupportedTargetError.java b/src/main/java/org/shedlang/compiler/cli/UnsupportedTargetError.java new file mode 100644 index 00000000..265c2cdc --- /dev/null +++ b/src/main/java/org/shedlang/compiler/cli/UnsupportedTargetError.java @@ -0,0 +1,11 @@ +package org.shedlang.compiler.cli; + +import org.shedlang.compiler.backends.ShedTarget; +import org.shedlang.compiler.errors.CompilerError; +import org.shedlang.compiler.sources.Sources; + +public class UnsupportedTargetError extends CompilerError { + public UnsupportedTargetError(String backendName, ShedTarget target) { + super("Backend " + backendName + " does not support target " + target.targetName(), Sources.NULL); + } +} |
