metagn
4f891aa50c
don't render underscore identifiers with id ( #22538 )
2023-08-23 13:43:02 +02:00
SirOlaf
3de75ffc02
Fix #21532 : Check if template return is untyped ( #22517 )
...
* Don't ignore return in semTemplateDef
* Add test
---------
Co-authored-by: SirOlaf <>
2023-08-23 06:18:35 +02:00
metagn
602f537eb2
allow non-pragma special words as user pragmas ( #22526 )
...
allow non-pragma special words as macro pragmas
fixes #22525
2023-08-21 20:08:57 +02:00
metagn
942f846f04
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
2023-08-21 20:08:00 +02:00
metagn
a4781dc4bc
use old typeinfo generation for hot code reloading ( #22518 )
...
* use old typeinfo generation for hot code reloading
* at least test hello world compilation on orc
2023-08-20 06:30:36 +02:00
SirOlaf
c0ecdb01a9
Fix #21722 ( #22512 )
...
* Keep return in mind for sink
* Keep track of return using bool instead of mode
* Update compiler/injectdestructors.nim
* Add back IsReturn
---------
Co-authored-by: SirOlaf <>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
2023-08-19 21:04:25 +02:00
Amjad Ben Hedhili
d77ada5bdf
Markdown code blocks migration part 9 ( #22506 )
...
* Markdown code blocks migration part 9
* fix [skip ci]
2023-08-19 15:14:56 +02:00
Juan Carlos
c44c8ddb44
Remove Deprecated Babel ( #22507 )
2023-08-19 07:05:06 +02:00
Alberto Torres
20cbdc2741
Fix #22366 by making nimlf_/nimln_ part of the same line ( #22503 )
...
Fix #22366 by making nimlf_/nimln_ part of the same line so the debugger doesn't advance to the next line before executing it
2023-08-18 21:13:27 +02:00
Tomohiro
eb83d20d0d
Add staticFileExists and staticDirExists ( #22278 )
2023-08-18 16:47:47 +02:00
ringabout
7fababd583
make float32 literals stringifying behave in JS the same as in C ( #22500 )
2023-08-17 18:52:38 +02:00
metagn
98c39e8e57
cascade tyFromExpr in type conversions in generic bodies ( #22499 )
...
fixes #22490 , fixes #22491 , adapts #22029 to type conversions
2023-08-17 18:52:28 +02:00
ringabout
940b1607b8
fixes #22357 ; don't sink elements of var tuple cursors ( #22486 )
2023-08-16 13:46:44 +02:00
Jason Beetham
6c4e7835bf
When in object handles procedure call again, fixes #22474 ( #22480 )
...
Ping @narimiran please backport to the 2.0 line.
2023-08-15 17:48:31 +02:00
ringabout
09d0fda7fd
fixes #22469 ; generates nimTestErrorFlag for top level statements ( #22472 )
...
fixes #22469 ; generates `nimTestErrorFlag` for top level statements
2023-08-14 13:08:01 +02:00
ringabout
4c89223171
relax the parameter of ensureMove; allow let statements ( #22466 )
...
* relax the parameter of `ensureMove`; allow let statements
* fixes the test
2023-08-12 13:23:54 +02:00
ringabout
23f3f9ae2c
better initialization patterns for seminst ( #22456 )
...
* better initialization patterns for seminst
* Update compiler/seminst.nim
* Update compiler/seminst.nim
2023-08-12 08:30:17 +08:00
Pylgos
48da472dd2
fix #22448 Remove structuredErrorHook temporary in tryConstExpr ( #22450 )
...
* fix #22448
* add test
2023-08-11 18:23:09 +02:00
ringabout
469c9cfab4
unpublic the sons field of PType; the precursor to PType refactorings ( #22446 )
...
* unpublic the sons field of PType
* tiny fixes
* fixes an omittance
* fixes IC
* fixes
2023-08-11 22:18:24 +08:00
ringabout
72bc72bf9e
refactor result = default(...) into object construction ( #22455 )
2023-08-11 22:16:58 +08:00
ringabout
9fed58d5a0
modernize lambdalifting ( #22449 )
...
* modernize lambdalifting
* follow @beef331's suggestions
2023-08-11 17:08:51 +08:00
ringabout
0bf286583a
initNodeTable and friends now return (#22444 )
2023-08-11 12:50:41 +08:00
ringabout
faf1c91e6a
fixes move sideeffects issues [backport] ( #22439 )
...
* fixes move sideeffects issues [backport]
* fix openarray
* fixes openarray
2023-08-10 18:04:29 +02:00
ringabout
7be2e2bef5
replaces doAssert false with raiseAssert for unreachable branches, which works better with strictdefs ( #22436 )
...
replaces `doAssert false` with `raiseAssert`, which works better with strictdefs
2023-08-10 14:26:40 +02:00
ringabout
8523b543d6
getTemp and friends now return TLoc as requested (#22440 )
...
getTemp and friends now return `TLoc`
2023-08-10 14:17:15 +02:00
Juan M Gómez
8625e71250
adds support for functor in member ( #22433 )
...
* adds support for functor in member
* improves functor test
2023-08-10 14:15:23 +02:00
Bung
2aab03bdfb
fix #19304 Borrowing std/times.format causes Error: illformed AST ( #20659 )
...
* fix #19304 Borrowing std/times.format causes Error: illformed AST
* follow suggestions
* mitigate for #4121
* improve error message
2023-08-10 16:26:23 +08:00
ringabout
a6610745d8
initLocExpr and friends now return TLoc (#22434 )
...
`initLocExpr` and friends now return TLoc
2023-08-10 07:57:34 +02:00
SirOlaf
baf350493b
Fix #21760 ( #22422 )
...
* Remove call-specific replaceTypeVarsN
* Run for all call kinds and ignore typedesc
* Testcase
---------
Co-authored-by: SirOlaf <>
2023-08-10 07:56:09 +02:00
ringabout
fa58d23080
modernize sempass2; initEffects now returns TEffects ( #22435 )
2023-08-10 11:29:42 +08:00
Juan M Gómez
6ec1c80779
makes asmnostackframe work with cpp member #22411 ( #22429 )
2023-08-09 20:57:52 +02:00
ringabout
91c3221855
simplify isAtom condition ( #22430 )
2023-08-09 20:57:13 +02:00
Bung
46e94c83d4
Fix #5780 ( #22428 )
...
* fix #5780
2023-08-09 23:17:08 +08:00
ringabout
5ec81d076b
fixes cascades of out parameters, which produces wrong ProveInit warnings ( #22413 )
2023-08-09 13:49:30 +02:00
Bung
d53a89e453
fix #12938 index type of array in type section without static ( #20529 )
...
* fix #12938 nim compiler assertion fail when literal integer is passed as template argument for array size
* use new flag tfImplicitStatic
* fix
* fix #14193
* correct tfUnresolved add condition
* clean test
2023-08-09 12:45:43 +02:00
ringabout
5334dc921f
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 >
2023-08-09 12:43:17 +02:00
Bung
989da75b84
fix #20891 Illegal capture error of env its self ( #22414 )
...
* fix #20891 Illegal capture error of env its self
* fix innerClosure too earlier, make condition shorter
2023-08-09 09:43:39 +02:00
ringabout
c622e58db9
make the name of procs consistent with the name forwards ( #22424 )
...
It seems that `--stylecheck:error` acts up when the name forwards is involved.
```nim
proc thisOne*(x: var int)
proc thisone(x: var int) = x = 1
```
It cannot understand this at all.
2023-08-09 13:18:50 +08:00
ringabout
28b2e429ef
refactors initSrcGen and initTokRender into returning objects ( #22421 )
2023-08-09 06:40:17 +02:00
ringabout
ce079a8da4
modernize jsgen; clean up some leftovers ( #22423 )
2023-08-09 06:33:19 +02:00
metagn
3aaef9e4cf
block ambiguous type conversion dotcalls in generics ( #22375 )
...
fixes #22373
2023-08-09 06:12:14 +02:00
ringabout
d136af0122
modernize lineinfos; it seems that array access hinders strict def analysis like field access ( #22420 )
...
modernize lineinfos; array access hinders strict def analysis like field access
A bug ?
```nim
proc computeNotesVerbosity(): array[0..3, TNoteKinds] =
result[3] = {low(TNoteKind)..high(TNoteKind)} - {warnObservableStores, warnResultUsed, warnAnyEnumConv, warnBareExcept}
result[2] = result[3] - {hintStackTrace, hintExtendedContext, hintDeclaredLoc, hintProcessingStmt}
result[1] = result[2] - {warnProveField, warnProveIndex,
warnGcUnsafe, hintPath, hintDependency, hintCodeBegin, hintCodeEnd,
hintSource, hintGlobalVar, hintGCStats, hintMsgOrigin, hintPerformance}
result[0] = result[1] - {hintSuccessX, hintSuccess, hintConf,
hintProcessing, hintPattern, hintExecuting, hintLinking, hintCC}
```
2023-08-09 08:18:47 +08:00
ringabout
73e661d01b
modernize compiler/reorder, which exposes yet another strictdefs bug ( #22415 )
...
```nim
{.experimental: "strictdefs".}
type
NodeKind = enum
nkImportStmt
nkStmtList
nkNone
PNode = ref object
kind: NodeKind
proc hasImportStmt(n: PNode): bool =
# Checks if the node is an import statement or
# i it contains one
case n.kind
of nkImportStmt:
return true
of nkStmtList:
if false:
return true
else:
result = false
var n = PNode()
echo hasImportStmt(n)
```
It compiles without warnings, but shouldn't. As a contrast,
```nim
{.experimental: "strictdefs".}
type
NodeKind = enum
nkImportStmt
nkStmtList
nkNone
PNode = ref object
kind: NodeKind
proc hasImportStmt(n: PNode): bool =
# Checks if the node is an import statement or
# i it contains one
case n.kind
of nkImportStmt:
result = true
of nkStmtList:
if false:
return true
else:
result = false
var n = PNode()
echo hasImportStmt(n)
```
This gives a proper warning.
2023-08-08 21:12:54 +08:00
ringabout
10a6e4c236
clean up gc:arc or gc:orc in docs and in error messages ( #22408 )
...
* clean up gc:arc/orc in docs
* in error messages
2023-08-08 05:55:18 -04:00
ringabout
bf5d173bc6
fixes LineTooLong hints on old compilers ( #22412 )
...
* fixes LineTooLong hints on old compilers
* fixes config/nim.cfg
2023-08-08 17:53:21 +08:00
ringabout
4c6be40b34
modernize compiler/filter_tmpl.nim ( #22407 )
2023-08-08 16:08:16 +08:00
Bung
37d8f32ae9
fix #18823 Passing Natural to bitops.BitsRange[T] parameter in generi… ( #20683 )
...
* fix #18823 Passing Natural to bitops.BitsRange[T] parameter in generic proc is compile error
2023-08-08 16:06:47 +08:00
Bung
0219c5a607
fix #22287 nimlf_ undefined error ( #22382 )
2023-08-08 06:13:14 +02:00
ringabout
260b4236fc
use out parameters for getTemp ( #22399 )
2023-08-07 10:11:59 +02:00
Juan M Gómez
b5b4b48c94
[C++] Member pragma RFC ( https://github.com/nim-lang/RFCs/issues/530 ) ( #22272 )
...
* [C++] Member pragma RFC #530
rebase devel
* changes the test so `echo` is not used before Nim is init
* rebase devel
* fixes Error: use explicit initialization of X for clarity [Uninit]
2023-08-07 10:11:00 +02:00