aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-09-17 14:08:00 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-09-17 14:08:00 -0400
commit2d878af34c298d510e6c4f73bf3af9c3f1cd8a84 (patch)
tree7abdae22ddfdb46e4234d8127c41608ecc2fc037 /src
parent1e4f8a48819da450a73023f565c1bedfda33afd7 (diff)
Change untyped map to be enumerated array and use parse_f64 for parsing untyped values
Diffstat (limited to 'src')
-rw-r--r--src/server/analysis.odin11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 44063d6..db37ef7 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -297,7 +297,7 @@ resolve_type_comp_literal :: proc(
}
// odinfmt: disable
-untyped_map: map[SymbolUntypedValueType][]string = {
+untyped_map: [SymbolUntypedValueType][]string = {
.Integer = {
"int", "uint", "u8", "i8", "u16", "i16", "u32", "i32", "u64", "i64", "u128", "i128", "byte",
"i16le", "i16be", "i32le", "i32be", "i64le", "i64be", "i128le", "i128be",
@@ -882,19 +882,12 @@ resolve_basic_lit :: proc(ast_context: ^AstContext, basic_lit: ast.Basic_Lit) ->
value.type = .Integer
} else if v, ok := strconv.parse_bool(basic_lit.tok.text); ok {
value.type = .Bool
- } else if v, ok := strconv.parse_int(basic_lit.tok.text[0:1]); ok {
+ } else if v, ok := strconv.parse_f64(basic_lit.tok.text); ok {
value.type = .Float
} else {
value.type = .String
}
- /*
- out commented because of an infinite loop in parse_f64
- else if v, ok := strconv.parse_f64(basic_lit.tok.text); ok {
- value.type = .Float
- }
- */
-
symbol.pkg = ast_context.current_package
symbol.value = value