aboutsummaryrefslogtreecommitdiff
path: root/src/check_stmt.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* Support by-reference semantics in `for value_ref, index in &some_array` and ↵gingerBill2020-03-241-0/+14
| | | | `for key, value_ref in &some_map`
* Change behaviour of `switch v in &value` to make `v` have by-reference semanticsgingerBill2020-03-241-2/+6
|
* Fix branch statements within inline for blocks (partial hack)gingerBill2020-03-151-2/+2
|
* Fix #578gingerBill2020-02-291-0/+6
|
* Improve error message on `using` with procedure parameters #568gingerBill2020-02-231-1/+7
|
* Support `for` and `inline for` for enumerated arraysgingerBill2019-12-271-0/+11
|
* Implement `#complete switch` by default, replace with `#partial switch` #511gingerBill2019-12-221-33/+24
|
* Also allow #no_bounds_check on an expression #499gingerBill2019-12-151-13/+12
|
* Fix Duplicate integer switch case values incorrectly consider its absolute ↵gingerBill2019-12-151-16/+19
| | | | | | value #502 (Hashing proc was wrong for big ints)
* Remove addressing mode `Addressing_Immutable`gingerBill2019-12-011-11/+6
|