aboutsummaryrefslogtreecommitdiff
path: root/src/check_stmt.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* Add SCOPED_TEMPORARY_BLOCK for temporary allocations within a blockgingerBill2020-11-151-15/+15
|
* Add check to block statements to see if they only contain one statement, a ↵gingerBill2020-09-231-0/+60
| | | | value declaration, and err.
* Fix issue #723Joseph Battelle2020-09-141-1/+1
| | | | | Typo in `check_stmt_internal` for case Ast_UsingStmt; first element was used for all elements of the enumerated list.
* Fix check_arity_match buggingerBill2020-09-121-1/+1
|
* Make sync.atomic_* operations use `when` statements instead of `switch`; ↵gingerBill2020-08-161-1/+5
| | | | Make `#panic` diverging
* Fix using pointers bug with addressing struct fieldsgingerBill2020-06-181-1/+2
|
* Fix typo in error messagegingerBill2020-06-061-1/+1
|
* Improve termination rules checking for missing `return`; Make diverging ↵gingerBill2020-06-061-25/+78
| | | | procedure `-> !` be terminators
* Add `"pure"` procedure typesgingerBill2020-05-231-0/+11
|
* Selector Call Expressions: `x->y(123) == x.y(x, 123)`gingerBill2020-05-221-0/+12
|
* #591 Improve type switch statement error for `fallthrough`gingerBill2020-05-131-2/+6
|
* Fix #632 behaviourgingerBill2020-05-131-3/+19
|
* Replace `entity_of_ident` with `entity_of_node`gingerBill2020-05-121-1/+1
|
* Add experimental atom op tables for llvm-backendgingerBill2020-05-021-0/+55
|
* Simplify compiler's `Map` and create a `StringMap` specifically for stringsgingerBill2020-04-131-3/+3
|