narimiran
9ce81868a8
Revert "fixes #9940 ; genericAssign does not take care of the importC variables in refc [backport] ( #23761 )"
...
This reverts commit fda43d1f0a .
2024-07-09 13:02:30 +02:00
ringabout
fda43d1f0a
fixes #9940 ; genericAssign does not take care of the importC variables in refc [backport] ( #23761 )
...
fixes #9940
(cherry picked from commit 828cd58d8a )
2024-06-27 14:09:14 +02:00
Giuliano Mega
3864066408
[Backport 1.6] Fix reset code gen for range types ( #22462 , #23214 ) ( #23215 ) ( #23638 )
...
This is a backport of https://github.com/nim-lang/Nim/pull/23215 . I
thought I'd put a PR instead of [just asking for
it](https://github.com/nim-lang/Nim/pull/23215#issuecomment-2125829028 ).
🙂
2024-05-23 11:30:15 +02:00
Juan M Gómez
53424c0036
[Backport 1.6] Skips generic owner when mangling instances ( #23599 )
2024-05-14 11:25:33 +02:00
Nikolay Nikolov
6a63df181f
[backport v1.6.x] fixes the discVal register is used after free in vmgen ( #22688 ) ( #23553 )
...
follow up https://github.com/nim-lang/Nim/pull/11955
(cherry picked from commit b1a8d6976f )
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com >
2024-05-01 22:56:16 +02:00
Nikolay Nikolov
19fdbfc173
Converted the 'invalid kind for firstOrd/lastOrd(XXX)' messages from internal errors to fatal errors. ( #23443 ) ( #23447 )
...
This fixes a nimsuggest crash when opening:
beacon_chain/consensus_object_pools/blockchain_dag.nim
from the nimbus-eth2 project and many other .nim files (44 files, to be
precise) in the same project.
Replaces: https://github.com/nim-lang/Nim/pull/23402 (cherry picked from
commit c934d5986d )
2024-04-06 14:33:03 +02:00
Nikolay Nikolov
e6ee956845
fixes #22753 ; Nimsuggest segfault with invalid assignment to table ( #22781 ) ( #23314 )
...
fixes #22753
## Future work
We should turn all the error nodes into nodes of a nkError kind, which
could be a industrious task. But perhaps we can add a special treatment
for error nodes to make the transition smooth.
(cherry picked from commit 642ac0c1c3 )
---------
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com >
2024-03-14 18:35:25 +01:00
Juan M Gómez
afced7d9ab
[Backport 1.6] When NimScript errors prevents NimSuggest from Init ( #23348 )
2024-03-03 17:36:34 +01:00
Nikolay Nikolov
51c86fdae7
* fixed nimsuggest crash when opening a .nim file, that contain a {.fatal: "msg".} pragma. ( #23325 ) ( #23329 )
...
(cherry picked from commit 773c066634 )
2024-02-24 07:40:47 +01:00
Juan M Gómez
d08bba579d
[Backport 1.6] Itanium mangling scheme #23301 ( #23302 )
2024-02-13 08:08:46 +01:00
ringabout
ac1dc03258
fixes regression #23280 ; Operations on inline toOpenArray len return a wrong result ( #23285 )
...
fixes #23280
(cherry picked from commit 4b67cccf50 )
2024-02-07 20:26:27 +01:00
Nikolay Nikolov
e8fe9275b5
+ show the inferred exception list (as part of the type) for functions that don't have an explicit .raises pragma ( #23193 ) ( #23213 )
...
(cherry picked from commit 18b5fb256d )
2024-01-16 15:36:36 +08:00
ringabout
7912685905
fixes #23148 ; restricts infix path concatenation to what starts with / ( #23150 )
...
fixes #23148
(cherry picked from commit c7d742e484 )
2024-01-03 10:56:47 +01:00
Nikolay Nikolov
9a87057f0b
Skip trailing asterisk when placing inlay type hints. Fixes #23067 (backport of #23068 ) ( #23071 )
...
(cherry picked from commit a3739751a8 )
2023-12-14 09:26:12 +08:00
Nikolay Nikolov
efd5ed7328
backport to version 1.6: Also show the raises pragma when converting proc types to string ( #23026 ) ( #23029 )
...
This affects also nimsuggest hints (e.g. on mouse hover), as well as
compiler messages.
(cherry picked from commit 618ccb6b6a )
2023-12-12 10:36:58 +01:00
Jake Leahy
2e87171e14
Register declaration of enum field has a use ( #22990 )
...
Currently when using `use` with nimsuggest on an enum field, it doesn't
return the definition of the field.
Breaks renaming in IDEs since it will replace all the usages, but not
the declaration
(cherry picked from commit c31bbb07fb )
2023-11-28 08:25:42 +01:00
Nikolay Nikolov
6f0cad6843
backport to v 1.6: nimsuggest: Added optional command line option '--clientProcessId:XXX' ( #22969 ) ( #22982 )
...
When it is specified, the nimsuggest instance monitors whether this
process is still alive. In case it's found to be dead, nimsuggest shuts
itself down. Currently only implemented on POSIX and Windows platforms.
The switch is silently ignored on other platforms. Note that the Nim
language server should still try to shut down its child nimsuggest
processes. This switch just adds extra protection against crashing Nim
language server and gets rid of the remaining nimsuggest processes,
which consume memory and system resources.
(cherry picked from commit 502a4486ae )
2023-11-25 11:50:37 +01:00
Nikolay Nikolov
f3382743dd
backport to version 1.6: nimsuggest: Instead of checking for protocol version 3 exactly, check for version 3 or later. ( #22945 ) ( #22956 )
...
Refactored the way nimsuggest checks for protocol version 3. Instead of
checking for version 3 exactly, it now checks for version 3 or later.
This way, once a version 4 is introduced, it will use version 3 as a
base line, and then extra changes to the protocol can be added on top.
No functional changes are introduced in this commit.
(cherry picked from commit 3680200df4 )
2023-11-18 09:52:15 +08:00
Nikolay Nikolov
a77ca1a4bf
Inlay hints backport to Nim v1.6.x ( #22920 )
2023-11-08 00:22:40 +01:00
ringabout
47010a3919
fixes #22874 ; backport #22088 to version-1-6
2023-11-01 00:51:48 +00:00
SirOlaf
246267aa52
Exclude block from endsInNoReturn, fix regression ( #22632 )
...
Co-authored-by: SirOlaf <>
(cherry picked from commit d2f36c071b )
2023-09-15 19:49:57 +02:00
SirOlaf
ce8d9dd1cb
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-15 12:58:20 +02:00
ringabout
4fc535fbd6
fixes #17197 ; fixes #22560 ; fixes the dest of newSeqOfCap in refc ( #22594 )
...
(cherry picked from commit 5bd1afc3f9 )
2023-09-15 12:58:20 +02:00
metagn
d37901fe06
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-15 09:10:56 +02:00
Andreas Rumpf
d80397c7d7
fixes #22138 ( #22221 )
...
(cherry picked from commit 86ff37fab8 )
2023-09-14 17:02:49 +02:00
Juan M Gómez
efa3479e4e
reset macrocache after each script evaluation ( #22195 )
...
(cherry picked from commit 2f109595e9 )
2023-09-14 16:59:13 +02:00
ringabout
e8ec3efd3d
allow addressing elements of openArray[char] in VM ( #22045 )
...
allow addressing elements of openArray[char]
(cherry picked from commit a8d0dda833 )
2023-09-14 14:07:08 +02:00
metagn
8f102f9e62
retain forced open undeclared ident information ( #22019 )
...
(cherry picked from commit ce72b564bc )
2023-09-14 14:04:43 +02:00
ringabout
876f6d69a8
fixes #21974 ; fixes sameConstant fieldDefect ( #21981 )
...
* fixes #21974 ; fixes sameConstant fieldDefect
* add a test case
(cherry picked from commit 8e35b3d577 )
2023-09-14 14:04:43 +02:00
heterodoxic
50173ec7ec
prevent spamming of thread local forward declarations in C/C++ output ( #21955 )
...
(cherry picked from commit f47b27d532 )
2023-09-14 14:03:47 +02:00
metagn
ecab260330
underscore as special word ( #21766 )
...
* underscore as special word
* fix really hard to notice error
(cherry picked from commit ca82b4ea16 )
2023-09-14 13:09:43 +02:00
ringabout
43ce0558b4
handle quoted routine symbols and non symbols expressions as before ( #21740 )
...
(cherry picked from commit 560fa9a1fe )
2023-09-14 12:00:47 +02:00
narimiran
19b3f8c0ea
Revert "fixes #16790 ; fixes #19075 ; put big arrays on the constant seqs; don't inline them in the VM; big performance boost ( #21318 )"
...
This reverts commit 7ad8c44e28 .
2023-09-14 06:03:34 +02:00
SirOlaf
5ad4b72ac7
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-12 09:24:33 +02:00
metagn
79a1990774
use dummy dest for void branches to fix noreturn in VM ( #22617 )
...
fixes #22216
(cherry picked from commit 2542dc09c8 )
2023-09-12 09:24:33 +02:00
metagn
106cde1ff8
unify explicit generic param semchecking in calls ( #22618 )
...
fixes #9040
(cherry picked from commit 6738f44af3 )
2023-09-12 09:24:33 +02:00
metagn
965eeb68e2
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-11 21:33:48 +02:00
metagn
0dbac38d12
clearer error for different size int/float cast in VM ( #22582 )
...
refs #16547
(cherry picked from commit b6cea7b599 )
2023-09-11 21:33:42 +02:00
metagn
f16e4dd22a
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-11 21:33:35 +02:00
Bung
69faab3cf6
fix #22548;environment misses for type reference in iterator access n… ( #22559 )
...
* fix #22548;environment misses for type reference in iterator access nested in closure
* fix #21737
* Update lambdalifting.nim
* remove containsCallKinds
* simplify
(cherry picked from commit 0b78b7f595 )
2023-09-11 21:32:58 +02:00
SirOlaf
b7a1210964
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-11 21:32:22 +02:00
Jason Beetham
60dc41a5e4
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-09-11 21:31:32 +02:00
Bung
f55f3d6ffd
Fix #5780 ( #22428 )
...
* fix #5780
(cherry picked from commit 46e94c83d4 )
2023-09-11 21:30:06 +02:00
Jake Leahy
118f83f965
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-11 20:41:29 +02:00
SirOlaf
30921aaff5
Check try block for endsInNoReturn ( #22314 )
...
Co-authored-by: SirOlaf <>
(cherry picked from commit 62869a5c68 )
2023-09-11 20:41:28 +02:00
SirOlaf
a3b65da80f
Open scope for defer ( #22315 )
...
Co-authored-by: SirOlaf <>
(cherry picked from commit 3ebe24977c )
2023-09-11 20:41:28 +02:00
ringabout
ba2d8ba468
fixes #22297 ; return in the finally in the closure iterators ( #22300 )
...
ref #22297 ; return in the finally in the closure iterators
(cherry picked from commit b02c1dd6ca )
2023-09-11 20:41:28 +02:00
Anna
0ac3461c7d
Fix #22281 ( #22289 )
...
Respect `--gcc.exe` and similar options when `--genScript:on` is used.
(cherry picked from commit 14a9929464 )
2023-09-11 20:24:58 +02:00
ringabout
e7fc94e130
gendepends now supports pkgs2 ( #22277 )
...
(cherry picked from commit 3b377937de )
2023-09-11 20:24:21 +02:00
ringabout
44708f4b01
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
(cherry picked from commit ecc6ab7ee0 )
2023-09-11 20:24:11 +02:00