aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-04-12 10:06:20 +0100
committerMichael Williamson <mike@zwobble.org>2026-04-12 10:06:30 +0100
commit175e43a91d4885d1f5e564c09b1dc3b945b503a8 (patch)
tree15e79d085b7531f6e41c81b0ad57c0bc81e2d66f
parent08522ea706b0e8b883a3cec97755e4e6dc562788 (diff)
Add proper error for unsupported targets
-rw-r--r--src/main/java/org/shedlang/compiler/cli/ShedCli.java3
-rw-r--r--src/main/java/org/shedlang/compiler/cli/UnsupportedTargetError.java11
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);
+ }
+}