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
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
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
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
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
Andreas Rumpf
873eaa3f65
compiler/llstream: modern code for llstream ( #22385 )
2023-08-04 22:52:31 +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
Jake Leahy
3efabd3ec6
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
2023-08-04 12:21:36 +02:00
awr1
14bc3f3268
Allow libffi to work via koch boot ( #22322 )
...
* Divert libffi from nimble path, impl into koch
* Typo in koch
* Update options.nim comment
* Fix CI Test
* Update changelog
* Clarify libffi nimble comment
* Future pending changelog
---------
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com >
2023-08-03 23:06:30 +02:00
SirOlaf
8d8d75706c
Add experimental inferGenericTypes switch ( #22317 )
...
* Infer generic bindings
* Simple test
* Add t
* Allow it to work for templates too
* Fix some builds by putting bindings in a template
* Fix builtins
* Slightly more exotic seq test
* Test value-based generics using array
* Pass expectedType into buildBindings
* Put buildBindings into a proc
* Manual entry
* Remove leftover `
* Improve language used in the manual
* Experimental flag and fix basic constructors
* Tiny commend cleanup
* Move to experimental manual
* Use 'kind' so tuples continue to fail like before
* Explicitly disallow tuples
* Table test and document tuples
* Test type reduction
* Disable inferGenericTypes check for CI tests
* Remove tuple info in manual
* Always reduce types. Testing CI
* Fixes
* Ignore tyGenericInst
* Prevent binding already bound generic params
* tyUncheckedArray
* Few more types
* Update manual and check for flag again
* Update tests/generics/treturn_inference.nim
* var candidate, remove flag check again for CI
* Enable check once more
---------
Co-authored-by: SirOlaf <>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
2023-08-03 22:49:52 +02:00
Bung
6b913b4741
Revert "fix #22173 sink paramers not moved into closure (refc) (#22… ( #22376 )
...
Revert "fix #22173 `sink` paramers not moved into closure (refc) (#22359 )"
This reverts commit b40da812f7 .
2023-08-03 19:56:05 +02:00
Bung
b40da812f7
fix #22173 sink paramers not moved into closure (refc) ( #22359 )
...
* use genRefAssign when assign to sink string
* add test case
2023-08-02 14:08:51 +02:00
ringabout
825a0e7df4
fixes #22362 ; Compiler crashes with staticBoundsCheck on ( #22363 )
2023-08-02 11:00:34 +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