mirror of
https://github.com/bearlanguageorg/bear.git
synced 2026-08-26 16:07:01 +00:00
fix: make seen map mutable and use u64 for tagged-value shifts
The struct-literal validator declared `seen` without `mut`, causing a compile error on V. Left-shifting i64 values also produced signed-shift warnings; cast through u64 instead. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
This commit is contained in:
+1
-1
@@ -430,7 +430,7 @@ fn (mut g Gen) gen_expr(e Expr) ! {
|
|||||||
// file, where the same validation applies)
|
// file, where the same validation applies)
|
||||||
if e.name.len > 0 && e.name in g.structs {
|
if e.name.len > 0 && e.name in g.structs {
|
||||||
decl_fields := g.structs[e.name]
|
decl_fields := g.structs[e.name]
|
||||||
seen := map[string]bool{}
|
mut seen := map[string]bool{}
|
||||||
for f in e.fields {
|
for f in e.fields {
|
||||||
if f.name !in decl_fields {
|
if f.name !in decl_fields {
|
||||||
return error('unknown field "${f.name}" for struct ${e.name} (line ${e.line})')
|
return error('unknown field "${f.name}" for struct ${e.name} (line ${e.line})')
|
||||||
|
|||||||
@@ -514,7 +514,7 @@ fn (mut v Vm) is_struct(x i64) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn (mut v Vm) enc_int(x i64) i64 {
|
fn (mut v Vm) enc_int(x i64) i64 {
|
||||||
return x << 2
|
return u64(x) << 2
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (mut v Vm) dec_int(x i64) i64 {
|
fn (mut v Vm) dec_int(x i64) i64 {
|
||||||
@@ -526,15 +526,15 @@ fn (mut v Vm) hand(x i64) int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn (mut v Vm) mkstr(idx int) i64 {
|
fn (mut v Vm) mkstr(idx int) i64 {
|
||||||
return (i64(idx) << 2) | 1
|
return (u64(idx) << 2) | 1
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (mut v Vm) mkarr(idx int) i64 {
|
fn (mut v Vm) mkarr(idx int) i64 {
|
||||||
return (i64(idx) << 2) | 3
|
return (u64(idx) << 2) | 3
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (mut v Vm) mkstruct_handle(idx int) i64 {
|
fn (mut v Vm) mkstruct_handle(idx int) i64 {
|
||||||
return (i64(idx) << 2) | 2
|
return (u64(idx) << 2) | 2
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (mut v Vm) truthy(x i64) bool {
|
fn (mut v Vm) truthy(x i64) bool {
|
||||||
|
|||||||
Reference in New Issue
Block a user