Commit Graph

1229 Commits

Author SHA1 Message Date
gingerBill
f34870f232 Merge pull request #7064 from tf2spi/7027-add-constant-typeid-comparison
Add typeid constant case to check_comparison
2026-07-16 11:18:39 +01:00
gingerBill
3f2a66044b Merge pull request #7056 from korvahkh/fix-untyped-coercion
Stricter type coercions in `convert_to_typed`
2026-07-16 11:15:41 +01:00
Jeroen van Rijn
0051152f76 Merge pull request #7042 from catermujo/push-nyzmuzxuzpox
compiler: preserve recursive struct aliases
2026-07-16 10:21:31 +02:00
misomosi
dac6e7dbad Add typeid constant case to check_comparison 2026-07-15 21:54:34 -04:00
korvahkh
f36ed5e668 Stricter type coercions in convert_to_typed
There were issues similar to #6923 with
arrays, matrices, & SIMD vectors.
This PR addresses those.
2026-07-15 10:26:15 -05:00
Isabella Basso
ca878a1de7 checker: keep polymorphic probes read-only
Overload candidate checks pass modify_type=false, but generic array
counts still specialized their candidate Type and scope entity. Parallel
probes could then observe and mutate the same partial specialization.

Resolve generic dimensions in local state and commit them only when
specializing. Keep array-like and map cache updates out of probe mode.
2026-07-15 08:51:43 -03:00
Isabella Basso
6299379911 compiler: preserve recursive struct aliases
fixes: #7037
2026-07-14 09:42:06 -03:00
RoBaertschi
c44740f570 Fix #6979 2026-07-09 14:14:05 +02:00
Jeroen van Rijn
0c7fc0b416 Fix #6982 2026-07-09 00:32:41 +02:00
gingerBill
9050e6b8cd Merge pull request #6950 from tf2spi/6840-check-any-int-addressing
Disallow types in #any_int params
2026-07-04 16:12:16 +01:00
misomosi
5b24b47e9c Disallow types in #any_int params 2026-07-03 10:04:41 -04:00
gingerBill
55a1876d5b Merge pull request #6934 from tf2spi/6675-patch-load-or-else-diverging
Make diverging or_else inherit load lhs type
2026-07-03 13:07:19 +01:00
misomosi
aa53466cb6 Make diverging or_else inherit lhs type 2026-07-02 13:22:03 -04:00
gingerBill
1007ea2785 Merge pull request #6921 from tf2spi/6757-array-programming-cast
Allow casts to change mode for array programming
2026-07-02 14:06:50 +01:00
gingerBill
dadcfafb7d Merge pull request #6925 from tf2spi/6923-check-untyped-to-union-conversion
Make checking of untyped to union conversions more strict
2026-07-02 14:01:41 +01:00
gingerBill
c9f069be20 Merge pull request #6929 from korvahkh/fix-union-typo
Fix typo in union error: excepts -> accepts
2026-07-02 14:01:07 +01:00
korvahkh
fdb1a2c01b Fix typo in union error: excepts -> accepts
Before:
```
foo.odin(4:24) Error: Cannot convert untyped value '""' to 'union {int, bool}' from 'untyped string'
	u: union{int, bool} = ""
	                      ^^
'union {int, bool}' is a union which only excepts the following types:
	'int' or 'bool'
```
After:
```
foo.odin(4:24) Error: Cannot convert untyped value '""' to 'union {int, bool}' from 'untyped string'
	u: union{int, bool} = ""
	                      ^^
'union {int, bool}' is a union which only accepts the following types:
	'int' or 'bool'
```
2026-07-01 21:07:31 -05:00
Mike
7ccbd3d4ec Fix compiler segmentation fault when field names start with '.' 2026-07-01 21:55:11 -03:00
misomosi
ae1280d6f9 Convert untyped to variant type unconditionally 2026-07-01 12:54:06 -04:00
misomosi
a2a0b83162 Allow casts to change mode for array programming 2026-07-01 07:59:08 -04:00
gingerBill
882736d330 Merge pull request #6920 from tf2spi/6674-patch-cmp-anonymous-procs
Add ways to diff anon procs with same signature
2026-07-01 11:02:21 +01:00
misomosi
eb47032840 Add ways to diff anon procs with same signature 2026-07-01 01:49:35 -04:00
misomosi
c7cd4b9e95 Only allow direct CVarArg usage in c_va_start 2026-06-30 14:18:54 -04:00
misomosi
fc62110392 Report range type correctly on out-of-bounds 2026-06-29 08:29:14 -04:00
misomosi
5be99bf1c2 Add missing check_is_expressible 2026-06-28 19:25:22 -04:00
gingerBill
910ddb4626 Check for nullptr when none of the options match in a proc group 2026-06-26 15:09:18 +01:00
gingerBill
5ba39f42ea Improve error message on calls with varying argument count 2026-06-23 11:49:00 +01:00
gingerBill
6cf57c1eaa Fix #6863 2026-06-22 13:17:43 +01:00
gingerBill
3834aeec49 Compiler: Improve error propagation when all of the overloads have the same return values 2026-06-22 12:56:25 +01:00
gingerBill
588a8148f2 Remove the now defunct __write_bits and __read_bits 2026-06-22 12:55:33 +01:00
gingerBill
a7186b8af0 Minimize error propagation of map[key] indexing 2026-06-22 12:54:02 +01:00
gingerBill
baef272bbd Support constant compound literals 2026-06-22 12:53:27 +01:00
Franz
32f1a09909 Add suggestion to use 'typeid_of(type)' when trying to do typeid(type) 2026-06-15 11:38:43 +02:00
gingerBill
dd4044dd1c Merge branch 'master' of https://github.com/odin-lang/Odin 2026-06-05 14:13:18 +01:00
gingerBill
f14071bd14 Fix transmute corrupting a compile time constant 2026-06-05 14:13:08 +01:00
gingerBill
1c9fa5d0b7 Merge pull request #6731 from odin-lang/bill/expand-values-operator
Support `**` as `expand_values` operator: `**x` == `expand_values(x)`
2026-06-05 11:42:08 +01:00
A1029384756
f735e794a6 [checker] disallow * and / for bit sets 2026-06-04 16:12:35 -04:00
jakubtomsu
46bb13d0bd check operand type in any_int params 2026-05-27 19:10:34 +02:00
gingerBill
fb8a9d0839 Support ** as expand_values operator: **x == expand_values(x) 2026-05-25 10:28:15 +01:00
gingerBill
2094cd4768 Add suggestion for ternary if with simd 2026-05-19 15:27:34 +01:00
gingerBill
cfef365c9f Add another suggestion of #simd shifting 2026-05-19 14:53:50 +01:00
gingerBill
0a87628a76 Add suggestion when trying to use << and >> with #simd 2026-05-19 14:52:46 +01:00
gingerBill
f370632888 Add suggestion when trying to index a #simd array 2026-05-19 14:47:06 +01:00
gingerBill
9501894e80 Merge pull request #6701 from Creativty/fix_poly_proc_nil
Fix nil typing when procedure call argument
2026-05-18 15:00:18 +01:00
Abderrahim Indjaren
d02c5e1a21 add: check duplicates in type switches 2026-05-18 03:15:55 +01:00
Abderrahim Indjaren
d37284ce55 fix: nil keeps its type instead of taking expected type 2026-05-17 18:49:49 +01:00
gingerBill
3715544202 Merge pull request #6670 from Creativty/fix_dynamic_cap_doc
Handle Fixed Capacity Dynamic Arrays in write_expr_to_string
2026-05-12 14:29:09 +01:00
Abderrahim Indjaren
7954e3bdbe add: cap dynamic array is now handled in write_expr_to_string 2026-05-10 15:48:32 +01:00
gingerBill
daa6bb1aee Fix check_multi_expr_with_type_hint to use return rather than break 2026-05-08 14:34:44 +01:00
gingerBill
ea5175d865 Support s: [2]u16 = "hi" 2026-05-02 12:11:39 +01:00