aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-12-23 11:38:39 +0000
committerMichael Williamson <mike@zwobble.org>2024-12-23 11:38:39 +0000
commit1d0a52cfbb17d77eef8d89be7762203f7286e92f (patch)
treeea6cf68094d5c7a058143348a551bb3664e19f77 /src/main/java
parentac56c2e61c8d4c9af26d49f419b2193a798ae68f (diff)
Check type of string in config
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/config/toml/TomlTableWithSource.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/main/java/org/shedlang/compiler/config/toml/TomlTableWithSource.java b/src/main/java/org/shedlang/compiler/config/toml/TomlTableWithSource.java
index e11925f6..3e560d63 100644
--- a/src/main/java/org/shedlang/compiler/config/toml/TomlTableWithSource.java
+++ b/src/main/java/org/shedlang/compiler/config/toml/TomlTableWithSource.java
@@ -107,7 +107,8 @@ public record TomlTableWithSource(
}
public String getString(String key) {
- var value = table.getString(key);
+ var value = table.get(key);
+ var valuePosition = table.inputPositionOf(key);
if (value == null) {
throw new ConfigError(
@@ -116,6 +117,15 @@ public record TomlTableWithSource(
);
}
- return value;
+ if (value instanceof String valueString) {
+ return valueString;
+ }
+
+ throw new UnexpectedTypeConfigError(
+ path.plusKey(key),
+ "a string",
+ value.getClass(),
+ TomlSource.sourceAtTomlPosition(fullSource, valuePosition)
+ );
}
}