Commit Graph
1284 Commits
Author SHA1 Message Date
Brody 87b514890c fix: instantiated procs keep their own scope
Was this check here for a reason? Investigate
2026-08-03 22:07:18 +10:00
Brody cce1bdd8c7 fix: return true for already specialised poly proc 2026-08-03 21:42:39 +10:00
Brody df6719cb89 fix: remove broken special case for poly proc as default value 2026-08-03 18:13:12 +10:00
aelobdog d8eb6e0481 fix: expand_values panic on type expressions 2026-07-30 00:26:12 +05:30
aelobdog 39cbaf0494 fix: reject the use of labels as expressions 2026-07-25 19:28:56 +05:30
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