top-down type inference, implements rfc 149 (#20091)
* micro implementation of rfc 149 refs https://github.com/nim-lang/RFCs/issues/149 * number/array/seq literals, more statements * try fix number literal alias issue * renew expectedType with if/case/try branch types * fix (nerf) index type handling and float typed int * use typeAllowed * tweaks + const test (tested locally) [skip ci] * fill out more of the checklist * more literals, change @ order, type conversions Not copying the full call tree before the typedesc call check in `semIndirectOp` is also a small performance improvement. * disable self-conversion warning * revert type conversions (maybe separate op later) * deal with CI for now (seems unrelated), try enums * workaround CI different way * proper fix * again * see sizes * lol * overload selection, simplify int literal -> float * range, new @ solution, try use fitNode for nil * use new magic * try fix ranges, new magic, deal with #20193 * add documentation, support templates Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
This commit is contained in:
parent
2dcfd73260
commit
0014b9c48e
17 changed files with 599 additions and 199 deletions
|
|
@ -453,8 +453,8 @@ block:
|
|||
for i in 0..<len:
|
||||
yield i
|
||||
|
||||
# xxx: obscure CT error: basic_types.nim(16, 16) Error: internal error: symbol has no generated name: true
|
||||
when not defined(js):
|
||||
# xxx: obscure CT error: basic_types.nim(16, 16) Error: internal error: symbol has no generated name: true
|
||||
doAssert: iter(3).mapIt(2*it).foldl(a + b) == 6
|
||||
|
||||
block: # strictFuncs tests with ref object
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue