Commit Graph

24 Commits

Author SHA1 Message Date
ringabout
cd3cf3a20e fixes #23524; global variables cannot be analysed when injecting move (#23529)
fixes #23524

```nim
proc isAnalysableFieldAccess*(orig: PNode; owner: PSym): bool =
  ...
  result = n.kind == nkSym and n.sym.owner == owner and
    {sfGlobal, sfThread, sfCursor} * n.sym.flags == {} and
    (n.sym.kind != skParam or isSinkParam(n.sym))
```
In `isAnalysableFieldAccess`, globals, cursors are already rejected
2024-04-24 12:47:05 +02:00
Andreas Rumpf
8d47bf1822 new move analyser2 (#20471)
* produce better code for closure environment creation
* new 'first write' analysis; 
* scope based move analyser
* code cleanup

Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
2022-10-01 16:46:51 +02:00
flywind
9df195ef58 style usages part one (openarray => openArray) (#19321)
* style usages (openArray)

* revert doc changes
2022-01-04 13:29:50 +01:00
Timothee Cour
7e1ae35195 testament: error instead of silently ignore invalid targets; remove pointless alias target vs targets; document matrix; DRY (#16343)
* testament: error instead of silently ignore invalid targets
* s/target/targets/
* fix test; refs #16344
* address comments
* Update testament/specs.nim

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-12-14 10:58:29 +01:00
Clyybber
2b0e336c97 injectdestructors fixes and refactor (#14964)
* injectdestructors fixes and refactor

* Tiny cleanup

* Refactor and expand testcase

* Closes #14902 by adding testcase

* Better naming

* Fix test failures

* Misc cleanup

* Add testcase for #14968

* Better approach; expand testcases

* Optimizations and fixes

* Add testcase

* typo

* Tiny cleanup
2020-07-14 14:15:39 +02:00
Araq
b17e1efc67 progress 2020-07-08 10:48:12 +02:00
Clyybber
52841dba09 Fix #14568 (#14583)
* Fix #14568
* Add testcase
* Fix bogus test
* Adapt other failing tests
* Declarations are always first writes
2020-06-07 23:32:41 +02:00
Andreas Rumpf
a14abc5708 ARC: solves phase ordering problems (#12654) 2019-11-14 23:19:18 +01:00
cooldome
c9f49cbc0a lift destructor for openarray (#12073)
* destroy for sink openarray
2019-08-28 12:07:46 +02:00
Andreas Rumpf
551d6d00df make tests green again 2019-03-05 20:05:47 +01:00
Andreas Rumpf
2dc8a32324 make megatest green again 2019-03-05 08:17:30 +01:00
Andreas Rumpf
f907354121 make tests green again 2019-03-04 22:44:23 +01:00
cooldome
690f21043d isLastRead regression fix (#10463)
* fixes #10462

* add a test
2019-01-28 08:32:14 +01:00
Arne Döring
a5ecbf823f lots of small changes 2018-12-11 21:23:22 +01:00
Andrii Riabushenko
43c70a6b12 improve test 2018-12-07 22:25:32 +00:00
Andrii Riabushenko
938d3ffad7 add test 2018-12-05 19:29:14 +00:00
Andrii Riabushenko
4b31d7bb83 move moves 2018-11-29 23:33:48 +00:00
cooldome
5b98afb8a8 Destructors: more moves for tuples (#9808) 2018-11-27 18:59:21 +01:00
cooldome
962b2e4b39 Destructors: move into nkTupleConstr and move on tuple unpacking (#9776) 2018-11-22 18:33:19 +01:00
Andreas Rumpf
3c461755e2 enable destructors for top level statements; needs to be documented 2018-09-24 16:00:57 +02:00
Araq
9047c3f582 workaround the fact that top level statements currently don't produce destructor calls 2018-08-21 21:33:19 +02:00
Araq
c00de13e1f closes #985 2017-11-29 00:19:27 +01:00
Araq
d065931991 destructors: harden the test case 2017-11-29 00:02:49 +01:00
Araq
c43f718301 destructors: some improvements for bug #4214: object constructors are moved too 2017-11-29 00:01:27 +01:00