Commit Graph

963 Commits

Author SHA1 Message Date
gingerBill
1e37eaf54d Begin work for bit_set[...; [N]T] (not working) 2024-07-15 14:49:20 +01:00
gingerBill
eb6805ef40 Disable the need for mutexes in single threaded checker stage 2024-07-15 01:44:23 +01:00
gingerBill
11e2aa2d51 Improve error message 2024-07-14 15:31:40 +01:00
gingerBill
556355ef05 Disallow global use of target specific procedure calls 2024-07-14 15:30:40 +01:00
gingerBill
3dff83f3dc Mock out #no_capture for future use 2024-07-14 12:39:30 +01:00
gingerBill
edc793d7c1 Add #no_capture args: ..T to reuse the backing array stack memory 2024-07-14 11:39:05 +01:00
gingerBill
38315f83da Merge pull request #3898 from laytan/fix-enable-target-features-for-poly-procs
fix require/enable target feature attribute on poly procs
2024-07-10 13:22:06 +01:00
Laytan Laats
40625b24e2 fix optimization mode, cold, and disabled not being applied to poly procs 2024-07-09 19:49:12 +02:00
Laytan Laats
1fce5791a1 fix require/enable target feature attribute on poly procs 2024-07-09 19:33:25 +02:00
Feoramund
77d64a5461 Forbid $T= parameter from crashing compiler
Fixes #3883
2024-07-06 15:32:17 -04:00
gingerBill
bf711b282d Remove when check in check_entity_from_ident_or_selector 2024-07-04 13:58:36 +01:00
gingerBill
657bc88535 Allow x :: y when cond else proc(...){...} 2024-07-04 13:48:52 +01:00
gingerBill
a2b23de0a7 Sanity check for a nullptr 2024-07-01 12:24:46 +01:00
gingerBill
42ff711114 Fix #3515 2024-07-01 12:22:18 +01:00
gingerBill
4086a62167 Fix showing error when not meant to 2024-07-01 11:50:35 +01:00
gingerBill
11617af8f5 Add support for make(#soa[]T) etc 2024-07-01 11:34:50 +01:00
Jeroen van Rijn
efd933e221 Merge pull request #3842 from karl-zylinski/fix-poly-bitset-size
Fix for bit_set[$T] proc params always being generated as i8
2024-06-30 21:10:42 +02:00
Karl Zylinski
e0face1ac8 Make types like bit_set[$T] have their upper and lower bits overwritten by upper/lower from the source types when checking if polymorphic type is assignable. This fixes an issue where an i8 was always generated for bit_sets with generic elements, because it couldn't figure out upper/lower when check_bit_set_type was run. Fixes #2860 2024-06-30 20:36:51 +02:00
gingerBill
c88a1bef91 Add another -vet-cast check 2024-06-29 12:40:04 +01:00
gingerBill
e46d772b6d Add check for integer casts 2024-06-29 12:13:41 +01:00
gingerBill
4b71c47fd5 Check for unneeded transmute with -vet-cast 2024-06-29 12:02:31 +01:00
gingerBill
704530497b Rename -vet-identical-cast to -vet-cast; with minor code clean up 2024-06-29 11:44:45 +01:00
Feoramund
6496432b80 Add -vet-identical-cast 2024-06-28 23:14:03 -04:00
gingerBill
5a9698e8cb Properly fix #3820 2024-06-28 09:08:57 +01:00
Feoramund
f58eded5d2 Fix print segfault by missing argument in or_* shadowed error 2024-06-22 11:45:43 -04:00
gingerBill
c9884906d9 Add #directory 2024-06-20 12:15:55 +01:00
gingerBill
56383e45a7 Fix #3768 2024-06-20 11:44:00 +01:00
Feoramund
78a5a27212 Fix bit_set construction crash on constant non-integer field 2024-06-16 12:27:42 -04:00
Feoramund
33270f14a4 Fix #3739 2024-06-12 15:31:43 -04:00
gingerBill
c5f7788652 Check to see if matrices are exactly the same type 2024-06-12 12:54:57 +01:00
gingerBill
f57c03c170 Improve matrix type hinting rules a little 2024-06-12 12:40:29 +01:00
gingerBill
fa3cae2bb0 Add intrinsics.procedure_of
```odin
foo :: proc(x: $T) { fmt.println(x) }
bar :: intrinsics.procedure_of(foo(int(123))) // parameters are never ran at compile time, similar to `size_of`
bar(333) // prints 333
```
2024-06-10 15:02:34 +01:00
Feoramund
45d1328a85 Fix typo in a #force_inline error message 2024-06-10 00:50:16 -04:00
gingerBill
ef7c6b9895 Re Fix #3713 2024-06-09 14:07:07 +01:00
gingerBill
c17981ac38 Add edge case to error_operand_no_value 2024-06-09 14:02:01 +01:00
gingerBill
4b52f7fe2b Fix #3713 2024-06-09 13:35:22 +01:00
gingerBill
7044a7d776 Try to fix a possible race condition with polymorphic record parameters 2024-06-06 23:55:48 +01:00
gingerBill
cbabcb0907 Fix #3682 2024-06-05 15:43:15 +01:00
gingerBill
a0b1b8d1c3 Merge pull request #3673 from laytan/implement-foreign-import-improvements-on-vendor
Implement `#exists(path)` and use it to provide good errors for common missing vendor libraries
2024-06-04 19:57:09 +01:00
Laytan Laats
3e159736cd use #exists to provide good errors for common missing libraries 2024-06-04 20:13:51 +02:00
Laytan Laats
b47a15733d implement #exists(path) 2024-06-04 19:06:13 +02:00
gingerBill
6b386631dd Improve error message suggestion for passing enums to integers 2024-06-04 16:16:27 +01:00
Dudejoe870
9b78061c8f Initial hash directive implementation 2024-05-28 22:42:10 -05:00
gingerBill
64bdb3a097 Fix #3630 (first part) 2024-05-26 12:17:03 +01:00
gingerBill
f3f08c264f Be very particular with the cases for the error notes 2024-05-22 21:55:48 +01:00
gingerBill
2f35ee9671 Improve errors a lot for assigning procedures of the wrong signature 2024-05-22 21:52:15 +01:00
gingerBill
bc706f8b0c Fix indexing type when using a #row_major matrix 2024-05-20 15:04:15 +01:00
gingerBill
a68c635c00 Remove constant indexing for matrix value propagation 2024-05-20 15:00:43 +01:00
gingerBill
32245e93a1 Fix #3514 along with soa.a[i] bounds checking 2024-05-16 16:18:21 +01:00
gingerBill
a344bc4c0e Remove the old switch/for semantics entirely and enforce switch &x in y 2024-05-16 14:39:16 +01:00