From 175e43a91d4885d1f5e564c09b1dc3b945b503a8 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 12 Apr 2026 10:06:20 +0100 Subject: Add proper error for unsupported targets --- src/main/java/org/shedlang/compiler/cli/ShedCli.java | 3 +-- .../org/shedlang/compiler/cli/UnsupportedTargetError.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/shedlang/compiler/cli/UnsupportedTargetError.java 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); + } +} -- cgit v1.2.3