aboutsummaryrefslogtreecommitdiff
path: root/src/check_expr.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add `-integer-division-by-zero:all-bits`gingerBill2025-08-101-6/+25
|
* Merge pull request #5556 from odin-lang/bill/division-by-zerogingerBill2025-08-101-2/+73
|\ | | | | Define Integer Division By Zero
| * Add `-integer-division-by-zero:self`gingerBill2025-08-081-6/+22
| |
| * Add `#+feature integer-division-by-zero:<string>`gingerBill2025-08-081-4/+11
| |
| * Define the behaviour of integer division by zerogingerBill2025-08-081-2/+50
| |
* | Merge pull request #5558 from odin-lang/bill/init-fini-changesgingerBill2025-08-101-2/+6
|\ \ | | | | | | `@(init)` & `@(finit)` Changes.
| * | Improve error messagegingerBill2025-08-081-2/+6
| |/
* | Do not check for explicit allocators when determining proc in proc groupjanga-perlind2025-08-091-8/+10
| |
* | Merge pull request #5559 from Creativty/variable_dereference_suggestiongingerBill2025-08-081-1/+2
|\ \ | |/ |/| Improve dereference missing suggestion message
| * Add a better suggestion for cases that don't need ^ operatorxenobas2025-08-081-1/+2
| |
* | Merge branch 'master' into bill/utf16-stringsgingerBill2025-08-051-1/+1
|\ \
| * | Add `intrinsics.type_is_nearly_simple_compare`gingerBill2025-08-041-1/+1
| | |
* | | `for in string16`; Support `string16` across coregingerBill2025-08-021-1/+1
| | |
* | | Begin supporting `string16` across the core librarygingerBill2025-08-021-7/+35
| | |
* | | Add `string16` and `cstring16` (UTF-16 based strings)gingerBill2025-08-021-0/+88
|/ /
* | Remove the semantics of `#no_copy`, keep the grammargingerBill2025-07-301-23/+0
| |
* | Fix issue 5474Paul-Andre Henegar2025-07-281-39/+35
| | | | | | | | | | | | | | | | The fix was adding `is_constant = false;` I also removed the unnecessary check regarding the first element of the BitSet, since it's checked inside the loop, and also fixed a typo in the message.
* | Merge pull request #5081 from Lperlind/vet-explicit-allocatorsgingerBill2025-07-221-7/+30
|\ \ | |/ |/| Add -vet-explicit-allocators
| * Add -vet-explicit-allocatorsLucas Perlind2025-04-271-7/+30
| | | | | | | | | | | | | | | | | | | | | | | | This vet flag will make it so that allocators must be explicitly used in places where context.allocator and context.temp_allocator are a procedure parameter. The goal of this flag is to prevent using the context.allocator in cases where a different allocator was meant to be used. Some code bases default context.allocator to nil/panic allocator to catch this at runtime. This effectively makes it a compile time error instead.
* | [source-code-locations] - added options to show, obfuscate, and hide source ↵Hayden Gray2025-06-261-4/+42
| | | | | | | | code locations (#5412)
* | fix load type panic because front-end allows a deref of a typeLaytan Laats2025-06-261-0/+7
| | | | | | | | Fixes #5357
* | Better error messagesAirtz2025-06-241-7/+7
| |
* | Better proc groups inferenceAirtz2025-06-231-25/+39
| |
* | Merge branch 'odin-lang:master' into fix-4445Airtz2025-06-221-82/+62
|\ \
| * \ Merge pull request #5368 from Airtz/masterJeroen van Rijn2025-06-221-82/+62
| |\ \ | | | | | | | | Fix #5331 and `check_shift` improvements
| | * | sign check error message updateAirtz2025-06-221-1/+1
| | | |
| | * | `check_is_expressible` instead of `convert_to_typed` when there is no ↵Airtz2025-06-201-3/+2
| | | | | | | | | | | | | | | | `type_hint`
| | * | Update check_expr.cppAirtz2025-06-201-82/+63
| | | |
* | | | Fix #4445Airtz2025-06-221-19/+26
|/ / /
* / / Clarify --- for global variable.Jeroen van Rijn2025-06-211-1/+1
|/ /
* | Guard against invalid proc types in parameter listFeoramund2025-06-101-1/+4
| | | | | | | | Fixes #4362
* | Add support for `#soa[N]T` compound literalsgingerBill2025-06-041-77/+107
| |
* | Merge pull request #5261 from spiel0meister/masterJeroen van Rijn2025-06-031-0/+3
|\ \ | | | | | | add a missing nullptr check
| * | early return; fix indentationspiel0meister2025-06-031-7/+8
| | |
| * | check if expr is nullspiel0meister2025-06-021-5/+7
| | |
* | | Merge pull request #5264 from ↵Jeroen van Rijn2025-06-031-37/+6
|\ \ \ | | | | | | | | | | | | | | | | LeandroLibanio28H/5243-fix-scope-attribute-proc-grouping Fix scope attribute proc grouping (#5243 )
| * | | Update check_expr.cppLeandro Libanio2025-06-031-2/+0
| | | | | | | | | | | | Removing iostream
| * | | Removing unreacheable block (since e86fde3)LeandroLibanio28H2025-06-021-31/+0
| | | |
| * | | Checking if entity is exported before checking if it's a procedure groupLeandroLibanio28H2025-06-021-10/+12
| |/ /
* / / Fix #5265Jeroen van Rijn2025-06-031-52/+57
|/ /
* | Add suggestions for `quaternionN` or `complexN` conversionsFeoramund2025-05-311-1/+21
| | | | | | | | | | | | | | Quaternions and complex numbers are constructed with `quaternion` and `complex`, but their types are of the `*N` form. These suggestions should point the user in the right direction.
* | Add `Suggestion: 'context = runtime.default_context()'`gingerBill2025-05-241-0/+2
| |
* | Remove now unnecessary checks.Jeroen van Rijn2025-05-211-6/+2
| |
* | Fix #5177 - Tweak error messages.Jeroen van Rijn2025-05-211-0/+10
| |
* | -dynamic-literalsJeroen van Rijn2025-05-191-1/+1
| |
* | CHECK 3 donebogwi2025-05-051-9/+29
| | | | | | | | | | | | | | | | 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.
* | Clarify error messages for types that aren't simply comparable.Jeroen van Rijn2025-05-031-5/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, it implied that these are different types: ``` W:/Scratch/scratch.odin(17:5) Error: Cannot compare expression, operator '==' not defined between the types 'Handle_Map($T=u32, $HT=u32, $Max=10000)' and 'Handle_Map($T=u32, $HT=u32, $Max=10000)' if m == {} { ^~~~~~^ ``` Now: ``` W:/Scratch/scratch.odin(20:5) Error: Cannot compare expression. Type 'Handle_Map($T=u32, $HT=u32, $Max=10000)' is not simply comparable, so operator '==' is not defined for it. if m == {} { ^~~~~~^ ```
* | Fix #5107Jeroen van Rijn2025-05-031-1/+1
| | | | | | | | Fixes #5107 by checking whether `result_count` is non-zero before indexing `type->Proc.results->Tuple.variables`.
* | fixes assigning null as a type if it's an alias but the base type isn't ↵Laytan Laats2025-04-301-1/+4
| | | | | | | | | | | | | | | | | | | | | | resolved yet It's a bit of a band aid fix because the field will get the type of the alias, not the base type, but that was already the case before #5045 so it's forward progression. Closes #5092 Fixes #5061
* | All N-valued (N>=2) expressions in `or_else` expressionsgingerBill2025-04-291-1/+13
|/