aboutsummaryrefslogtreecommitdiff
path: root/src/check_type.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into bill/feature-using-stmtgingerBill2026-01-301-0/+29
|\
| * Add `struct #simple` to force a struct to use simple comparison if all of ↵gingerBill2026-01-291-0/+15
| | | | | | | | the fields "nearly simply comparable".
| * Allow for `CONSTANT_TYPEID_ARRAY[idx]` to be used as a type in certain contextsgingerBill2026-01-261-0/+14
| |
* | Make `using` as a statement an opt-in with `#+feature using-stmt`gingerBill2025-12-211-4/+7
|/
* Add `#all_or_none`gingerBill2025-11-051-3/+4
|
* Add nullptr assert for #5875Jeroen van Rijn2025-11-031-0/+2
|
* Improve error message for missing `&` in some parapoly messagesgingerBill2025-10-271-0/+6
|
* Use `RecursiveMutex` to fix a race condition with parapoly recordsgingerBill2025-09-261-2/+3
|
* Use a `RwMutex` instead of `BlockingMutex`gingerBill2025-09-101-2/+2
|
* Remove global `PtrMap<Type *, GenTypesData *>` and store on the `TypeNamed` ↵gingerBill2025-09-101-9/+9
| | | | directly
* Minimize more thread contentiongingerBill2025-09-101-4/+5
|
* Minor clean up of permanent/temporary arena usagegingerBill2025-09-101-12/+12
|
* skip errors on polymorphic procs when in a proc group with other optionsA10293847562025-08-281-1/+3
|
* Fix instantiation of package for parapoly recordsgingerBill2025-08-071-2/+12
|
* Remove the semantics of `#no_copy`, keep the grammargingerBill2025-07-301-1/+0
|
* Merge pull request #5150 from wishfoundry/patch-1Laytan2025-06-201-1/+1
|\ | | | | spelling in compilation errors
| * spelling in compilation errorsBen2025-05-111-1/+1
| |
* | fix another type alias issue with mini cycleLaytan Laats2025-05-261-2/+6
|/
* CHECK 3 donebogwi2025-05-051-1/+10
| | | | | | | | Enhance support for polymorphic procedures in type checking 1. In src/check_type.cpp, added special handling for polymorphic procedures used as default parameter values. We now allow a polymorphic procedure to be used as a default parameter value, even when its type parameters can't be immediately determined. 2. In src/check_expr.cpp, we modified the check_is_assignable_to_with_score function to handle the special case of assigning a polymorphic procedure as a default parameter. The function now allows a polymorphic procedure to be assigned to a concrete procedure type in this specific context.
* Allow polymorphic #simd array as return typeJeroen van Rijn2025-05-021-1/+4
|
* Change hashing rules for float-like types to make `0 == -0`gingerBill2025-04-161-0/+15
|
* Remove `bit_field` -> `bit_set` warning.Jeroen van Rijn2025-04-121-3/+2
| | | | The "This 'bit_field' might be better expressed as a 'bit_set' since all of the fields are booleans, of 1-bit in size, and the backing type is an integer" warning is imperfect. Disable it for now.
* Actually maybe fix #5015gingerBill2025-04-091-0/+1
|
* Fix #5015gingerBill2025-04-091-0/+10
|
* Fix #5020Jeroen van Rijn2025-04-081-1/+3
|
* Improve error message for matrices with no rows or columnsgingerBill2025-02-221-6/+14
|
* compiler: fix align error checkLaytan Laats2025-01-151-1/+2
|
* Fix crash when proc return type is undeclared parapoly variableRoland Kovacs2024-12-221-1/+8
| | | | | | | | Disallow the declaration of new parapoly variables in return types, when the procedure's parapoly scope is itself. This happens if e.g.: `foo :: proc() -> $T`. Closes #3949, #4294, #4563
* Check `type_expr` in `check_procedure_param_polymorphic_type`Jeroen van Rijn2024-11-271-2/+1
| | | | Fixes #4523 assert.
* Remove `#relative` types from the compilergingerBill2024-11-141-35/+2
|
* `#min_field_align` & `#max_field_align`; deprecate `#field_align` in favour ↵gingerBill2024-09-301-6/+25
| | | | of `#min_field_align`
* add '#caller_expression'Laytan Laats2024-09-141-0/+32
|
* fix variadic parameter with default value error checkLaytan2024-08-211-2/+5
|
* Error if missing map key typeJeroen van Rijn2024-08-171-0/+12
| | | | Fixes #4096
* Merge pull request #2977 from jakubtomsu/disallow-variadic-param-defaultLaytan2024-08-141-0/+2
|\ | | | | Report error when a variadic procedure parameter has a default value
| * Add nullptr check backjakubtomsu2023-11-251-1/+1
| |
| * Check for variadic param default valjakubtomsu2023-11-251-1/+3
| |
* | Check if procedure parameter type declares polymorphic argsRoland Kovacs2024-08-081-0/+21
| | | | | | | | | | | | | | | | | | When a procedure parameter's type was declared in an imported package the type checker correctly resolved to the parametric type, but it did not check if the expression that refers to that type conforms to a polymorphic type declaration. This error was not detected if the procedure was unused, since it was marked as polymorphic, where further type check is done on instantiation.
* | Add `#simd[N]rawptr` supportgingerBill2024-08-051-1/+1
| |
* | Add suggestion for #3961gingerBill2024-07-221-0/+19
| |
* | Improve error handling for invalid syntax doing `[*]T`gingerBill2024-07-221-3/+9
| |
* | Begin work for `bit_set[...; [N]T]` (not working)gingerBill2024-07-151-17/+4
| |
* | Add error for `#no_capture` being reserved for future usegingerBill2024-07-141-1/+1
| |
* | Restrict `#no_capture` to pointer-like types onlygingerBill2024-07-141-5/+1
| |
* | Mock out `#no_capture` for future usegingerBill2024-07-141-8/+24
| |
* | Imply `#no_capture` to all variadic parametersgingerBill2024-07-141-1/+9
| |
* | Add `#no_capture args: ..T` to reuse the backing array stack memorygingerBill2024-07-141-0/+17
| |
* | Give error message suggestion when doing `^x` instead of `x^` if `x` is an ↵gingerBill2024-07-101-0/+4
| | | | | | | | r-value
* | Change `..` variadic logic; comment out unneeded error messagegingerBill2024-07-101-17/+19
| |
* | Fix #3894gingerBill2024-07-091-0/+2
| |