SirOlaf
d30565f810
Fix #17509 : Continue instead of return with unfinished generics ( #22563 )
...
Close #17509
Current knowledge:
- delaying cache fixes the issue
- changing return of `if inst.len < key.len:` in `searchInstTypes` to
`continue` fixes the issue. With return the broken types are also cached
over and over
Related issues are completely unaffected as of now, so there must be
something deeper.
I am also still trying to find the true cause, so feel free to ignore
for now
---------
Co-authored-by: SirOlaf <>
(cherry picked from commit ee4a219012 )
2023-09-18 12:13:00 +02:00
SirOlaf
9ad184841e
Exclude block from endsInNoReturn, fix regression ( #22632 )
...
Co-authored-by: SirOlaf <>
(cherry picked from commit d2f36c071b )
2023-09-18 12:13:00 +02:00
metagn
7536d7f94a
use dummy dest for void branches to fix noreturn in VM ( #22617 )
...
fixes #22216
(cherry picked from commit 2542dc09c8 )
2023-09-18 12:13:00 +02:00
metagn
ee0d3f9b34
unify explicit generic param semchecking in calls ( #22618 )
...
fixes #9040
(cherry picked from commit 6738f44af3 )
2023-09-18 12:13:00 +02:00
SirOlaf
d3cf815dbe
Fix #22604 : Make endsInNoReturn traverse the tree ( #22612 )
...
* Rewrite endsInNoReturn
* Handle `try` stmt again and add tests
* Fix unreachable code warning
* Remove unreachable code in semexprs again
* Check `it.len` before skip
* Move import of assertions
---------
Co-authored-by: SirOlaf <>
(cherry picked from commit 3b206ed988 )
2023-09-18 12:12:59 +02:00
ringabout
b477c2adcc
fixes #17197 ; fixes #22560 ; fixes the dest of newSeqOfCap in refc ( #22594 )
...
(cherry picked from commit 5bd1afc3f9 )
2023-09-18 12:12:59 +02:00
metagn
78d4aa3d01
handle typedesc params in VM ( #22581 )
...
* handle typedesc params in VM
fixes #15760
* add test
* fix getType(typedesc) test
(cherry picked from commit 2e4e2f8f50 )
2023-09-18 12:12:59 +02:00
metagn
855f5c8b81
clearer error for different size int/float cast in VM ( #22582 )
...
refs #16547
(cherry picked from commit b6cea7b599 )
2023-09-18 12:12:59 +02:00
metagn
7ab0f3beec
correct logic for qualified symbol in templates ( #22577 )
...
* correct logic for qualified symbol in templates
fixes #19865
* add test
(cherry picked from commit 3de8d75513 )
2023-09-18 12:12:59 +02:00
SirOlaf
4cf2658235
Fix #21532 : Check if template return is untyped ( #22517 )
...
* Don't ignore return in semTemplateDef
* Add test
---------
Co-authored-by: SirOlaf <>
(cherry picked from commit 3de75ffc02 )
2023-09-18 12:12:58 +02:00
metagn
5fa48e97b6
fix getNullValue for cstring in VM, make other VM code aware of nil cstring ( #22527 )
...
* fix getNullValue for cstring in VM
fixes #22524
* very ugly fixes, but fix #15730
* nil cstring len works, more test lines
* fix high
(cherry picked from commit 942f846f04 )
2023-09-18 12:12:58 +02:00
Bung
106cf7a9f7
Fix #5780 ( #22428 )
...
* fix #5780
(cherry picked from commit 46e94c83d4 )
2023-09-18 10:13:38 +02:00
Jake Leahy
7221c6f156
Fix crash when using uninstantiated generic ( #22379 )
...
* Add test case
* Add in a bounds check when accessing generic types
Removes idnex out of bounds exception when comparing a generic that isn't fully instantiated
(cherry picked from commit 3efabd3ec6 )
2023-09-18 10:13:27 +02:00
Andreas Rumpf
1080f5eba2
produce better code for object constructions and 'result' [backport] ( #22668 )
...
(cherry picked from commit 8f5b90f886 )
2023-09-14 06:02:30 +02:00
ringabout
18e62ad136
fixes #22619 ; don't lift cursor fields in the hook calls ( #22638 )
...
fixes https://github.com/nim-lang/Nim/issues/22619
It causes double free for closure iterators because cursor fields are
destroyed in the lifted destructors of `Env`.
Besides, according to the Nim manual
> In fact, cursor more generally prevents object
construction/destruction pairs and so can also be useful in other
contexts.
At least, destruction of cursor fields might cause troubles.
todo
- [x] tests
- [x] revert a certain old PR
---------
Co-authored-by: zerbina <100542850+zerbina@users.noreply.github.com >
(cherry picked from commit eb91cf991a )
2023-09-05 11:50:59 +02:00
Daniel Belmes
ef63d47ecd
fix server caching issue causing Theme failures ( #22378 )
...
* fix server caching issue causing Theme failures
* Fix tester to ignore version cache param
* fix case of people using -d:nimTestsNimdocFixup
* rsttester needed the same fix
(cherry picked from commit 7bf7496557 )
2023-08-22 08:28:30 +02:00
ringabout
0a58af8cbf
fixes #22357 ; don't sink elements of var tuple cursors ( #22486 )
...
(cherry picked from commit 940b1607b8 )
2023-08-22 08:23:56 +02:00
Jason Beetham
8359f9683a
When in object handles procedure call again, fixes #22474 ( #22480 )
...
Ping @narimiran please backport to the 2.0 line.
(cherry picked from commit 6c4e7835bf )
2023-08-22 08:23:32 +02:00
ringabout
c3425c05e9
relax the parameter of ensureMove; allow let statements ( #22466 )
...
* relax the parameter of `ensureMove`; allow let statements
* fixes the test
(cherry picked from commit 4c89223171 )
2023-08-22 08:23:06 +02:00
Alberto Torres
3fa378533a
Fix #22366 by making nimlf_/nimln_ part of the same line (backport) ( #22508 )
2023-08-22 08:22:58 +02:00
ringabout
037f536e7e
fixes #22419 ; async/closure environment does not align local variables ( #22425 )
...
* fixes #22419 ; async/closure environment does not align local variables
* Apply suggestions from code review
* Update tests/align/talign.nim
Co-authored-by: Jacek Sieka <arnetheduck@gmail.com >
* apply code review
* update tests
---------
Co-authored-by: Jacek Sieka <arnetheduck@gmail.com >
(cherry picked from commit 5334dc921f )
2023-08-11 10:49:49 +02:00
metagn
f553288db3
block ambiguous type conversion dotcalls in generics ( #22375 )
...
fixes #22373
(cherry picked from commit 3aaef9e4cf )
2023-08-11 10:49:11 +02:00
ringabout
0b3ddd4e47
Revert "fixes #22246 ; generate __builtin_unreachable hints for case defaults" ( #22351 )
...
Revert "fixes #22246 ; generate `__builtin_unreachable` hints for case defaults (#22350 )"
This reverts commit b56df5c07f .
2023-07-31 22:14:15 +08:00
ringabout
b56df5c07f
fixes #22246 ; generate __builtin_unreachable hints for case defaults ( #22350 )
...
* fixes #22246 ; generate `__builtin_unreachable` hints
* use elif
* indentation
* fixes holy enums in sim
2023-07-31 16:02:52 +02:00
Juan M Gómez
e70992d291
fixes an issue where byref wasnt properly handled when using it in a generic param ( #22337 )
...
* fixes an issue where byref wasnt properly handled when using it in a generic param
* removes unreachable check
2023-07-29 18:05:31 +02:00
ringabout
f0f3904ff0
implement ensureMove ( #22339 )
...
* implement `ensureMove`
* use an additional flag
* improve some logics
* progress: fixes discard ensureMove
* forbids nested expressions
* improve error messages
* checkpoint
* fixes cursor
* ADD MORE TESTS
* fixes cursorinference again
* tiny cleanup
* improve error messages
* fixes docs
* implement comments add more tests
* fixes js
2023-07-29 10:57:03 +02:00
konsumlamm
db77c98471
[JS] Fix bitwise ops & shifts ( #22340 )
...
* [JS] Fix bitwise ops & shifts
* Test `int64` & `uint64` only with `jsbigint64`
2023-07-27 23:06:30 +02:00
konsumlamm
c0994c2dbd
[JS] Fix casting to ints ( #22327 )
...
* [JS] Fix casting to ints
* Simplify `genCast` by using `asUintN`/`asIntN`
2023-07-25 17:56:14 +02:00
ringabout
1c2ccfad08
fixes #22301 ; fixes #22324 ; rejects branch initialization with a runtime discriminator with defaults ( #22303 )
...
* fixes #22301 ; rejects branch initialization with a runtime discriminator with defaults
* undefault nimPreviewRangeDefault
* fixes tests
* use oldCheckDefault
2023-07-25 12:08:32 +02:00
Khaled Hammouda
dce714b259
Fix grammar top rule ( #22325 )
...
change stmt to complexOrSimpleStmt in the top grammar rule
2023-07-24 19:48:41 +02:00
ringabout
8216d7dd46
fixes #22321 ; fixes building DLL with --noMain still produces a DllMain ( #22323 )
...
* fixes #22321 ; Building DLL with --noMain produces an unexpected DllMain on devel branch
* remove implicit nomain
2023-07-24 17:22:50 +02:00
Juan M Gómez
49a108b302
Expands codegenDecl to work in function params. fixes #22306 ( #22307 )
...
* Expands codegenDecl to work in function params. fixes #22306
* makes the test more concrete so T{lit} params dont match
* adds sfCodegenDecl
2023-07-23 16:42:20 +02:00
Andreas Rumpf
be1844541c
implemented 'push quirky' switch for fine grained control over the ex… ( #22318 )
...
* implemented 'push quirky' switch for fine grained control over the exception handling overhead
* documentation
2023-07-23 13:39:58 +02:00
SirOlaf
62869a5c68
Check try block for endsInNoReturn ( #22314 )
...
Co-authored-by: SirOlaf <>
2023-07-22 21:13:55 +02:00
konsumlamm
576f4a7348
Fix doc comment rendering for concepts ( #22312 )
2023-07-22 19:10:12 +02:00
SirOlaf
3ebe24977c
Open scope for defer ( #22315 )
...
Co-authored-by: SirOlaf <>
2023-07-22 19:09:39 +02:00
ringabout
b02c1dd6ca
fixes #22297 ; return in the finally in the closure iterators ( #22300 )
...
ref #22297 ; return in the finally in the closure iterators
2023-07-22 06:37:27 +02:00
Ryan McConnell
2f817ee5b4
infixArgument fail in renderer.nim sometimes (#22264 )
...
* fixing minor typo
* Adding err msg
2023-07-20 19:56:54 +02:00
Jake Leahy
3f9e16594f
fix jsondoc not getting showNonExports flag ( #22267 )
...
Pass the config down so we can check if the `--showNonExports` flag is used
2023-07-20 19:56:04 +02:00
Andreas Rumpf
c1a82aa5c5
minor code improvement ( #22293 )
2023-07-19 16:03:26 +02:00
ringabout
7d9fe106ec
fixes #22268 ; fixes move codegen ( #22288 )
2023-07-19 12:57:58 +02:00
ringabout
1aff402998
fixes #6499 ; disallow built-in procs used as procvars ( #22291 )
2023-07-19 09:45:28 +02:00
Anna
14a9929464
Fix #22281 ( #22289 )
...
Respect `--gcc.exe` and similar options when `--genScript:on` is used.
2023-07-18 16:06:21 +02:00
ringabout
f16b94a9d7
extend the skipAddr for potential types for destructors ( #22265 )
...
extend the skipAddr for potential types
2023-07-18 16:05:05 +02:00
Jake Leahy
17915d93bf
Fix non-toplevel fields in objects not getting rendered ( #22266 )
...
* Add example object into testproject
The proc is there to check the case of an identDef being inside an identDef (We do want to render those even if they are not exported)
* Add `inside` set to `TSrcGen` which allows us to see what context we are in
This is done instead of adding another inXyz bool parameter
We then use this to know if we are inside an object when rendering an nkIdentDefs (To know if we need to skip rendering it)
* Update test files
2023-07-16 19:46:18 +02:00
Juan M Gómez
50d435cd39
Fixes Naive virtual crash the compiler fixes #22269 ( #22271 )
...
* Fixes Naive virtual crash the compiler fixes #22269
* adds type specific test
2023-07-16 17:01:34 +02:00
ringabout
3b377937de
gendepends now supports pkgs2 ( #22277 )
2023-07-14 12:40:24 +02:00
ringabout
ecc6ab7ee0
fixes #22237 ; fixes #21160 ; wrong cursor on unowned parameters in the for loop in ORC ( #22240 )
...
fixes #22237 ; fixes #21160 ; wrong cursor on unowned parameters
2023-07-10 10:31:13 +02:00
Jake Leahy
1b132ddaa2
Fix nimsuggest not showing suggestions for imported tuples ( #22241 )
...
* Add tests
Also test if exported all tuple fields works. This seems like a hacky solution so will try and dive further to find a better solution
* Always suggest tuple fields if it passes the filter
If the tuple we are accessing is in scope then all the fields will also be in scope
* Update tests so line numbers are correct
2023-07-10 08:34:10 +02:00
ringabout
6ec10a4c91
fixes #21730 ; adds pkgs2 as well when nimbleDir is set ( #22234 )
2023-07-07 12:40:29 +02:00