aboutsummaryrefslogtreecommitdiff
path: root/src/check_stmt.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Disallow `@(static)` and `@(thread_local)` within `defer` statementsgingerBill2021-12-171-0/+7
|
* Remove `scope` field from `Ast`gingerBill2021-11-141-8/+6
|
* Begin minimizing `Ast` sizegingerBill2021-11-141-1/+1
|
* Move more things to `PtrMap`gingerBill2021-11-051-5/+4
|
* Correct ternary if expression type determinationgingerBill2021-10-221-2/+0
|
* Correct update propagation of type for ternary if expressionsgingerBill2021-10-221-0/+2
|
* `ERROR_BLOCK()` any usages of "Did you mean?" like behaviour whilst ↵gingerBill2021-08-271-0/+4
| | | | iterating across a scope entry map
* Correct race condition and incorrect usage of `condition_signal` outside of ↵gingerBill2021-08-261-0/+1
| | | | a mutex lock
* Correct procedure checking flag handling, and correct the (bodge) handle of ↵gingerBill2021-08-231-0/+3
| | | | unchecked procedure bodies
* Fix bug in `check_is_terminating`gingerBill2021-08-231-0/+3
|
* Add suggestions when trying to take the address the a value from a ↵gingerBill2021-08-231-4/+7
| | | | `for`/`switch` statement
* Fix deadlock caused by typogingerBill2021-08-191-1/+1
|
* Improve parsing for `or_return`; allow `#force_inline foo() or_return;`gingerBill2021-08-161-15/+0
|
* Correct `or_return` logic for debug printing and expression is not used checkinggingerBill2021-08-161-4/+21
|
* Reduce superfluous error messages for return statements expecting not-1 ↵gingerBill2021-08-071-1/+15
| | | | return values
* Temporarily disable `-threaded-checker`; Restructure the untyped-expr-info ↵gingerBill2021-07-131-2/+2
| | | | system to be much more thread-friendly
* Add experimental support for a threaded semantic checker to `-threaded-checker`gingerBill2021-07-101-3/+3
|
* Improve CheckerContext usagegingerBill2021-07-101-5/+5
|
* Allow `x in ptr_to_map_or_bit_set`gingerBill2021-07-101-1/+2
|
* [Experimental] Add 'try' and `or_else' built-in proceduresgingerBill2021-07-041-1/+1
|
* Improve logic for diverging procedures by checking if it terminatesgingerBill2021-06-161-5/+18
|
* Add unreachable detection for deferred statements in a scope which contains ↵gingerBill2021-06-161-0/+44
| | | | | | | | | | | a diverging procedure call ```odin { defer foo(); // Unreachable defer statement due to diverging procedure call at the end of the current scope os.exit(0); } ```
* Allow trivial optimizations for switch statements of `typeid`gingerBill2021-06-091-2/+2
|
* Experimental support for inline swizzling for array types of len <= 4 e.g. ↵gingerBill2021-06-051-0/+3
| | | | `v.xyz`, `v.argb`, `v.xxx`
* Be a little more correct with the temporary Ast nodegingerBill2021-05-191-3/+3
|
* Add range-based error messages to `-verbose-errors`gingerBill2021-05-191-1/+1
| | | | | | | | Example: Cannot convert '(1 + 2)' to 'untyped bool' from 'untyped integer' x := (1 + 2) * true; ^~~~~~^
* Add suggestion for unused expression on `x == y`gingerBill2021-05-191-0/+22
| | | | | | Expression is not used: 'x == 123' Suggestion: Did you mean to do an assignment? 'x = 123;'
* Improve untyped to typed logic for aiding the backendgingerBill2021-05-161-1/+5
|
* Allow `..=` alongside `..` as a "full range" operator; Update ↵gingerBill2021-05-161-0/+1
| | | | `core:odin/parser` etc
* Remove old dead codegingerBill2021-05-151-47/+0
|
* Fix #814gingerBill2021-05-131-3/+38
|
* Remove `use_llvm_api` related checks and other related thingsgingerBill2021-04-251-3/+0
|
* Move out some intrinsics into separate procedures in llvm_backend.cpp; ↵gingerBill2021-04-241-4/+4
| | | | Rename `InlineRangeStmt` to `UnrollRangeStmt` (eventually merge the two AST nodes)
* Add new intrinsics: debug_trap, trap, read_cycle_counter, expectgingerBill2021-04-221-1/+13
|
* Allow casting of `#optional_ok` call expressionsgingerBill2021-04-191-3/+3
|
* Add support for soa slice reference iterationgingerBill2021-03-241-0/+1
|
* Support `using` on intermediate soa field value from a for-in statementgingerBill2021-03-241-1/+4
|
* Support #soa array iteration in a `for in` loop for `-llvm-api` backend onlygingerBill2021-03-241-1/+12
|
* Make `for in` logic a bit more genericgingerBill2021-03-241-30/+28
|
* Make the parser support as many identifiers on the LHS in `for in` loops to ↵gingerBill2021-03-241-9/+18
| | | | improve error messages
* Fix `is_diverging_stmt` for invalid statementsgingerBill2021-03-131-4/+4
|
* Minimize TokenPos size by using `i32` for line/column/offset and file_id ↵gingerBill2021-03-041-23/+18
| | | | | | instead of `String` To make `i32` safe, the parser limits the file size of odin files to a maximum of 2GiB (which will be good enough for the vast vast majority of cases)
* Deprecate `inline for` in favour of `#unroll for`gingerBill2021-02-231-5/+5
|
* Remove `"pure"` and `"pure_none"` calling conventionsgingerBill2021-02-231-11/+0
|
* Remove `bit_field` type from Odin (keyword and dead runtime code still exists)gingerBill2021-02-191-11/+0
|
* Improve text/scanner whitespace parameter to use a bit_set instead; Improve ↵gingerBill2020-12-151-2/+12
| | | | error message for `for x in y` where y is not iterable but allows `in` as an operator
* Fix #795gingerBill2020-12-031-2/+1
|
* Minimize memory usage for AST nodes by using Slice<T> rather than Array<T> ↵gingerBill2020-11-161-3/+3
| | | | when the parameter doesn't need to grow
* Improve logic for x->y() shorthandgingerBill2020-11-151-2/+1
|
* Implement custom temporary allocator using ring buffergingerBill2020-11-151-5/+0
|