diff options
| author | Michael Williamson <mike@zwobble.org> | 2024-12-23 11:38:39 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2024-12-23 11:38:39 +0000 |
| commit | 1d0a52cfbb17d77eef8d89be7762203f7286e92f (patch) | |
| tree | ea6cf68094d5c7a058143348a551bb3664e19f77 /src/main/java | |
| parent | ac56c2e61c8d4c9af26d49f419b2193a798ae68f (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.java | 14 |
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) + ); } } |
