file-local / package-local decls

This commit is contained in:
2026-08-09 17:01:05 +02:00
parent a7a32894f3
commit 8785912b73
15 changed files with 369 additions and 152 deletions
@@ -8,6 +8,16 @@ hide Sibling :: struct {
hide sibling_value :: 1
hide(file) file_sibling func() i32 {
return 1
}
hide(file) File_Sibling :: struct {
value i32
}
hide(file) file_sibling_value :: 1
collision c_func() i32 {
return 1
}
+8 -2
View File
@@ -12,6 +12,12 @@ read_sibling_value func() i32 {
return sibling_value
}
main func() i32 {
return sibling() + dep.secret() + read_sibling(Sibling { value = 1 }) + read_sibling_value()
read_file_sibling func(value File_Sibling) i32 {
return value.value
}
main func() i32 {
return file_sibling() + file_sibling_value + sibling() + dep.secret() +
read_sibling(Sibling { value = 1 }) + read_sibling_value() +
read_file_sibling(File_Sibling { value = 1 })
}
+1 -1
View File
@@ -1,3 +1,3 @@
hide secret c_func() i32 {
hide(package) secret c_func() i32 {
return 1
}
+13 -2
View File
@@ -1,4 +1,4 @@
hide helper func() i32 {
hide(package) helper func() i32 {
thing Thing := Thing { value = value }
return thing.value
}
@@ -38,7 +38,18 @@ hide Local_C_Record :: c_struct {
value c_int
}
hide(file) file_helper func() i32 {
return 1
}
hide(file) File_Thing :: struct {
value i32
}
hide(file) file_value :: 1
from_a func() i32 {
record Local_C_Record := Local_C_Record { value = 0 }
return helper() + local_foreign() + i32(record.value)
thing File_Thing := File_Thing { value = file_value }
return helper() + local_foreign() + file_helper() + thing.value + i32(record.value)
}
+13 -1
View File
@@ -5,9 +5,21 @@ Box :: struct {
_value i32
}
hide(file) file_helper func() i32 {
return 2
}
hide(file) File_Thing :: struct {
value i32
}
hide(file) file_value :: 2
from_b func(_input i32) i32 {
_local Box := Box { _value = _input }
record _C_Record := _C_Record { value = 0 }
thing Thing := Thing { value = value }
return helper() + thing.value + _local._value + _foreign() + i32(record.value) + dep._visible()
file_thing File_Thing := File_Thing { value = file_value }
return helper() + thing.value + _local._value + _foreign() + i32(record.value) +
dep._visible() + file_helper() + file_thing.value
}