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
ringabout
05f7c4f79d
fixes a typo ( #22437 )
2023-08-10 16:41:24 +08: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
ringabout
47d06d3d4c
fixes #22387 ; Undefined behavior when with hash(...) ( #22404 )
...
* fixes #22387 ; Undefined behavior when with hash(...)
* fixes vm
* fixes nimscript
2023-08-08 13:42:08 +08:00
Bung
0219c5a607
fix #22287 nimlf_ undefined error ( #22382 )
2023-08-08 06:13:14 +02:00
ringabout
b4b555d8d1
tiny change on action.nim ( #22405 )
2023-08-08 11:13:38 +08: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
Bung
fe9ae2c69a
nimIoselector option ( #22395 )
...
* selectors.nim: Add define to select event loop implementation
* rename to nimIoselector
---------
Co-authored-by: Jan Pobrislo <ccx@webprojekty.cz >
2023-08-07 10:09:35 +02:00
ringabout
614a18cd05
Delete parse directory, which was pushed wrongly before [backport] ( #22401 )
...
Delete parse directory
2023-08-07 15:49:30 +08:00
ringabout
26eb0a944f
a bit modern code for depends ( #22400 )
...
* a bit modern code for depends
* simplify
2023-08-07 15:40:39 +08:00
ringabout
e7b4c7cddb
unify starting blank lines in the experimental manual ( #22396 )
...
unify starting blank lines in the experimental manal
2023-08-06 17:59:43 +02:00
ringabout
93ced31353
use strictdefs for compiler ( #22365 )
...
* wip; use strictdefs for compiler
* checkpoint
* complete the chores
* more fixes
* first phase cleanup
* Update compiler/bitsets.nim
* cleanup
2023-08-06 14:26:21 +02:00
konsumlamm
53586d1f32
Fix some jsgen bugs ( #22330 )
...
Fix `succ`, `pred`
Fix `genRangeChck` for unsigned ints
Fix typo in `dec`
2023-08-06 14:24:35 +02:00
SirOlaf
67122a9cb6
Let inferGenericTypes continue if a param is already bound ( #22384 )
...
* Play with typeRel
* Temp solution: Fixup call's param types
* Test result type with two generic params
* Asserts
* Tiny cleanup
* Skip sink
* Ignore proc
* Use changeType
* Remove conversion
* Remove last bits of conversion
* Flag
---------
Co-authored-by: SirOlaf <>
2023-08-06 14:23:00 +02:00
Bung
d2b197bdcd
Stick search result ( #22394 )
...
* nimdoc: stick search result inside browser viewport
* fix nimdoc.out.css
---------
Co-authored-by: Locria Cyber <74560659+locriacyber@users.noreply.github.com >
2023-08-06 19:07:36 +08:00
Bung
f18e4c4050
fix set op related to {sfGlobal, sfPure} ( #22393 )
2023-08-06 19:07:01 +08:00
Bung
95c751a9e4
fix #15005 ; [ARC] Global variable declared in a block is destroyed too… ( #22388 )
...
* fix #15005 [ARC] Global variable declared in a block is destroyed too early
2023-08-06 15:46:43 +08:00
Bung
137d608d7d
add test for #3907 ( #21069 )
...
* add test for #3907
2023-08-06 15:21:24 +08:00
ringabout
b2c3b8f931
introduces online bisecting ( #22390 )
...
* introduces online bisecting
* Update .github/ISSUE_TEMPLATE/bug_report.yml
2023-08-06 08:52:17 +08:00
Daniel Belmes
7bf7496557
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
2023-08-06 02:50:47 +08:00
norrath-hero-cn
e0396900ed
Prevent early destruction of gFuns, fixes AddressSanitizer: heap-use-after-free ( #22386 )
...
Prevent destruction of gFuns before callClosures
2023-08-05 19:38:32 +02:00
Andreas Rumpf
9872453365
destructors: better docs [backport:2.0] ( #22391 )
2023-08-05 19:35:37 +02:00
konsumlamm
e15e19308e
Revert adding generic V: Ordinal parameter to succ, pred, inc, dec ( #22328 )
...
* Use `int` in `digitsutils`, `dragonbox`, `schubfach`
* Fix error message
2023-08-06 00:38:46 +08:00
Andreas Rumpf
873eaa3f65
compiler/llstream: modern code for llstream ( #22385 )
2023-08-04 22:52:31 +02:00
Tomohiro
db435a4a79
Fix searchExtPos so that it returns -1 when the path is not a file ext ( #22245 )
...
* Fix searchExtPos so that it returns -1 when the path is not a file ext
* fix comparision expression
* Remove splitDrive from searchExtPos
2023-08-04 20:00:43 +02:00
norrath-hero-cn
73a29d72e3
fixes AddressSanitizer: global-buffer-overflow in getAppFilename on windows 10 ( #22380 )
...
fixes AddressSanitizer: global-buffer-overflow
2023-08-04 19:59:05 +02:00
Bung
26f183043f
fix #20883 Unspecified generic on default value segfaults the compiler ( #21172 )
...
* fix #20883 Unspecified generic on default value segfaults the compiler
* fallback to isGeneric
* change to closer error
* Update t20883.nim
2023-08-04 13:35:43 +02:00