Commit Graph

102 Commits

Author SHA1 Message Date
Christoffer Lerno
bc4ed2b213 Use assert functions on various platforms. 2021-08-16 16:43:53 +02:00
Christoffer Lerno
3a1f417ea5 Updated try tests. 2021-08-11 19:17:45 +02:00
Christoffer Lerno
da76777ee4 Fixes to aarch64 float struct return. Missing byval and align on calls. This *breaks* try-catch. 2021-08-11 19:17:45 +02:00
Christoffer Lerno
991f24d06a Added chained unwrap test and fixed the same. 2021-08-03 19:57:44 +02:00
Christoffer Lerno
c12cba67a8 Fix of try(...) { ... } and failable state on function call. 2021-08-03 19:57:44 +02:00
Christoffer Lerno
490dd65664 Add attributes to call site. @inline, @noinline to calls #250 2021-08-03 12:02:36 +02:00
Christoffer Lerno
78425ff5f2 Initial work on foreach overloading. Fixes a bug in indirect return values. Unifies call analysis. 2021-08-02 22:55:11 +02:00
Christoffer Lerno
ec612eea67 Added some explicit casts. Added sret at call site. 2021-07-29 16:42:20 +02:00
Christoffer Lerno
efe4f8c745 Coerce lowering for the C ABI updated. Updated aarch64 fixes. 2021-07-29 03:16:07 +02:00
Christoffer Lerno
ce6e59483f Unified function and macro call analysis. 2021-07-28 17:20:19 +02:00
Christoffer Lerno
9f42ddb68d Fix foreach body copy. Moved deref / addr into special functions. Cleaned up access. Remove .sizeof .alignof .qnameof .nameof, create $qnameof $nameof 2021-07-26 09:30:35 +02:00
Christoffer Lerno
c4aa366592 Use heuristic to determine the type to convert to for compile time types. Added parsing for generic 2021-07-22 18:45:39 +02:00
Christoffer Lerno
198e3c369c Extension methods added. Some initial work on virtual. 2021-07-21 19:28:02 +02:00
Christoffer Lerno
46e39f883c Assigning to $Type now works. 2021-07-20 23:36:53 +02:00
Christoffer Lerno
8568b9b079 Fix right -> left associativity for assignment. 2021-07-19 17:31:13 +02:00
Christoffer Lerno
28a0dec343 Fixes: Extname works on global variables. Bug with boolean in ternary in some cases. Global declarations would not parse attributes. 2021-07-19 17:10:13 +02:00
Christoffer Lerno
8ba2994caa Required parens code moved to semantic analysis. Make || and && have different levels since parens cannot be enforced. 2021-07-18 20:26:19 +02:00
Christoffer Lerno
ac2fd2dd71 Added tests for type methods on non struct/unions. 2021-07-18 19:00:16 +02:00
Christoffer Lerno
2778adbcb9 Fix bug #208 2021-07-18 18:53:00 +02:00
Christoffer Lerno
917f00bb7a Support $typeof, removing the old typeof 2021-07-18 18:36:19 +02:00
Christoffer Lerno
f64c35214e Change error -> anyerr / errtype 2021-07-18 14:11:39 +02:00
Christoffer Lerno
e6b9efe850 Fixing parse of error type. 2021-07-18 13:44:16 +02:00
Christoffer Lerno
069dbe8238 Make it possible for globals and static variables to have failables. 2021-07-18 12:39:08 +02:00
Christoffer Lerno
26d976d0bd Fix Foo! syntactic sugar. 2021-07-17 20:59:29 +02:00
Christoffer Lerno
5fc937897a Check private module parsing. 2021-07-17 18:09:31 +02:00
Christoffer Lerno
1af27136fa Improved error messages on incorrect module name. Issue #209 2021-07-17 15:20:13 +02:00
kvk1920
429fb647fb CI testing (#234)
* run test in CI
* make CI run
* fix some issues with paths on Windows
* avoid using float80
* add mingw64 ci
* fix path issue in tests
* add lld for mingw64 CI
2021-07-17 10:30:19 +02:00
Christoffer Lerno
45a3c8ae50 Fix alignment on all indirect. Fixed incorrect preferred alignment. Added mingw regression tests. 2021-07-16 13:05:56 +02:00
Christoffer Lerno
22fb7b4bcc Fix bug in (x && y && z) codegen. 2021-07-16 11:18:33 +02:00
Christoffer Lerno
afd39c4d4d Add inf and nan. 2021-07-16 00:05:09 +02:00
Christoffer Lerno
1948ae3fe2 Fix checks on float literal exceeding max, and implicit float conversions. 2021-07-15 01:17:18 +02:00
Christoffer Lerno
a18f668fc4 Updated error messages on failed binary arithmetic promotion. 2021-07-14 23:48:43 +02:00
Christoffer Lerno
89a1f62ea8 This improves error messages when using the wrong arguments for "define". Closes #221 2021-07-13 23:52:04 +02:00
Christoffer Lerno
c0d8f7ba90 Incorrect error message when trying to subtract incompatible types from each other. Also, allowing ulong - int should just work. Issue #222. 2021-07-13 23:26:08 +02:00
Christoffer Lerno
c94eacd26f Fixes issue where cont/break/next stack isn't pushed for expression blocks. 2021-07-13 16:09:45 +02:00
Christoffer Lerno
9a6d8d7657 Corrected hex double literal parsing (although it's not 100% correct yet) 2021-07-12 23:45:34 +02:00
Christoffer Lerno
9ee24b5846 Improve error message on import "foo", module "foo", and import statements out of order. 2021-07-12 21:07:14 +02:00
Christoffer Lerno
2134a9f77b $offsetof added. 2021-07-11 01:22:21 +02:00
Christoffer Lerno
a5ce7c47ba Adding "require" precondition. Corrects inferred arrays and fixes so that it uses [*] everywhere. Distict type will now allow methods to be added to it. Added $alignof and $sizeof. 2021-07-09 23:57:35 +02:00
Christoffer Lerno
4ed2596164 Removes "yield" 2021-06-28 00:19:46 +02:00
Christoffer Lerno
1d0c2ab2b0 Unifies function and macro argument parsing. Removed generic and attribute parsing. Prepare removal of yield. 2021-06-27 23:09:37 +02:00
Christoffer Lerno
038ed7f9d5 Macro methods added. 2021-06-26 17:42:45 +02:00
Christoffer Lerno
9572c4afc9 Top level $if now uses $if: / $endif; Fix of boolean globals. Fix of $else: clause. Fix of $assert inside of $if 2021-06-24 18:01:59 +02:00
Christoffer Lerno
321ee81c9d Complete removal of /+ +/ 2021-06-24 01:29:53 +02:00
Christoffer Lerno
5a6cdd25ef Introduced ${...} syntax for constants. Fixed issue where constants were not correctly handled for macros. /* */ comments are nesting. Added LINE, FUNC, FILE defines. Corrected shallow resolution of subarrays. Added int defines. Removed Vararray. 2021-06-24 00:59:25 +02:00
Christoffer Lerno
dafe0e6fb6 Updated scope code and variable tracking. Added trailing body macros. 2021-06-10 15:06:12 +02:00
Christoffer Lerno
9f545c3f89 Added bigger test for regression. 2021-06-01 10:08:51 +02:00
Christoffer Lerno
95f39f42eb Fix nasty bug where the node copies did not get a proper id. 2021-05-31 21:11:10 +02:00
Christoffer Lerno
dd8b850544 Support for "static" keyword. 2021-05-30 16:30:16 +02:00
Christoffer Lerno
0605a8c500 Introduce "private" keyword and private modules / private import. 2021-05-30 16:30:16 +02:00