summary refs log tree commit diff stats
path: root/compiler/semtypinst.nim
Commit message (Collapse)AuthorAgeFilesLines
* Fixes #20348; only respect the recursion limit if the symbol's generic type ↵Aditya Siram2022-09-221-11/+14
| | | | | has been generated by the compiler (#20377) Fixes #20348
* move assertions out of system (#19599)flywind2022-03-231-0/+3
|
* test whether it is unnecessary (#18893)flywind2021-10-141-1/+1
|
* Alternative to #18928 (#18931)Jason Beetham2021-09-301-6/+6
| | | | | * fixed #18841 * Added test
* semtypinst: don't wrap type nodes from expressions in static[T] (#18860)alaviss2021-09-171-1/+1
|
* Fixed #18838 (#18841) [backport]Jason Beetham2021-09-131-1/+5
|
* Fix recursive generic typed defs (#18809)Jason Beetham2021-09-061-1/+1
|
* fixes #16246 (#18800)Andreas Rumpf2021-09-041-1/+1
|
* ORC: improvements (#17993)Andreas Rumpf2021-05-121-1/+1
| | | | * ORC: improvements * ORC: fix .acyclic annotation for ref objects
* new-style concepts implementation, WIP (#15251)Andreas Rumpf2021-02-241-1/+3
| | | | | | | | | | | | | * fixes #15210 [backport:1.2] * make tests green * make ordinal work * makes Swapable test compile * make Indexable example work * concepts: 'self' is now 'Self' * concepts: make Dictionary example compile * document the new concept implementation * concepts: make typeDesc work properly * concepts: allow documentation comments (d'oh)
* fixed dot operator recursive loop & macro suggest (#16922)Saem Ghani2021-02-151-0/+2
| | | | | | | | | | | | | | | | | | * basic stability improvements; refs nimsuggest * fixed dot operator recursive loop & macro suggest * hacky fix for run away dot operator sem check Committing this mostly to make the issue more clear. Perhaps get better feedback. * semExprWithType seems like a better place to check * fixed error messages const case expressions * Clean-up test * stopped the dot operator madness No longer get infinite recursion when seming broken code with a dot operator macro like in jsffi. Co-authored-by: Araq <rumpf_a@web.de>
* IC: final implementation steps (#16801)Andreas Rumpf2021-01-251-4/+4
| | | | | | | | * removed dead code * we need even more laziness for the generic caches * make it bootstrap on older Nims * wrote more deserialization code * IC: replay required methods information
* IC: next steps (#16729)Andreas Rumpf2021-01-231-19/+14
| | | | | | | | | | | * IC: dead code elimination pass * preparations for a different codegen strategy * added documentation to the newly written code * IC: backend code * IC: backend adjustments * optimized the compiler a bit * IC: yet another massive refactoring * fixes regressions * cleanups
* IC: next steps (#16705)Andreas Rumpf2021-01-141-18/+0
| | | | | | | | | | | * code cleanups * refactorings for IC * more refactorings for IC * IC: attach the 'nil' type to its module * IC: refactorings and improvements * IC: progress * IC: more serialization fixes * IC: embarrassing omission * code cleanups
* big steps torwards an efficient, simple IC implementation (#16543)Andreas Rumpf2021-01-021-3/+3
| | | | | | | | | | | | | | | | | | | * reworked ID handling * the packed AST now has its own ID mechanism * basic serialization code works * extract rodfiles to its own module * rodfiles: store and compare configs * rodfiles: store dependencies * store config at the end * precise dependency tracking * dependency tracking for rodfiles * completed loading of PSym, PType, etc * removed dead code * bugfix: do not realloc seqs when taking addr into an element * make IC opt-in for now * makes tcompilerapi green again * final cleanups Co-authored-by: Andy Davidoff <github@andy.disruptek.com>
* explicit ID generation for easier IC (#15559)Andreas Rumpf2020-10-251-7/+12
| | | | | | | | | | | | | | | | | * refactoring: idents don't need inheritance * refactoring: adding an IdGenerator (part 1) * refactoring: adding an IdGenerator (part 2) * refactoring: adding an IdGenerator (part 3) * refactoring: adding an IdGenerator (part 4) * refactoring: adding an IdGenerator (part 5) * refactoring: adding an IdGenerator (part 5) * IdGenerator must be a ref type; hello world works again * make bootstrapping work again * progress: add back the 'exactReplica' ideas * added back the missing exactReplica hacks * make tcompilerapi work again * make important packages green * attempt to fix the build for 32 bit machines (probably need a better solution here)
* Expand hoisted default params in sem (#15270)Clyybber2020-09-051-1/+1
| | | | | | | | | * Expand hoisted default params in sem Introduce ast.newTree{I,IT} Add test for default params in procs * Cleanup * Simplify hoist transformation and expand test
* Big compiler Cleanup (#14777)Clyybber2020-08-281-2/+1
|
* fix #14698 nkRecWhen caused internalAssert in semConstructFields when ↵Timothee Cour2020-07-271-1/+4
| | | | | | | | | | | generic type not mentioned in fields (#14709) * fix #14698 nkRecWhen caused internalAssert in semConstructFields when generic type not mentioned in fields * address comment * Update compiler/semtypinst.nim Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* [cleanups] doassert => doAssert; mark deadcode (#14711)Timothee Cour2020-06-171-10/+12
|
* fixes #14315 (#14594)Andreas Rumpf2020-06-071-2/+1
|
* avoid unsafe Nim features in preparation for --gc:arc (#14431)Andreas Rumpf2020-05-221-12/+13
|
* Replace tfHasRequiresInit with a more accurate mechanismZahary Karadjov2020-04-011-0/+2
| | | | | | | | | The new mechanism can deal with more complex scenarios such as not nil field appearing in a non-default case object branch or a field within a generic object that may depend on a when branch. The commit also plugs another hole: the user is no longer able to create illegal default values through seq.setLen(N).
* fixes #13646Araq2020-03-161-0/+3
|
* minor code style changesAraq2020-03-161-1/+1
|
* ARC related bugfixes and refactorings (#12781)Andreas Rumpf2019-12-051-1/+3
|
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-75/+74
| | | | | | | | | | | | | | | | | | * Cleanup compiler code base * Unify add calls * Unify len invocations * Unify range operators * Fix oversight * Remove {.procvar.} pragma * initCandidate -> newCandidate where reasonable * Unify safeLen calls
* fixes #12336 [backport]Andreas Rumpf2019-10-021-1/+1
|
* Fix spellings (#12277) [backport]Federico Ceratto2019-09-271-3/+3
|
* some gc:destructors progressAndreas Rumpf2019-09-161-14/+0
|
* Small ast.nim cleanup (#12156)Clyybber2019-09-091-14/+14
| | | | | * Remove sonsLen * Use Indexable
* fixes #7258 (#12054)Andreas Rumpf2019-08-261-1/+25
|
* fixes tcompiletimerange [bugfix] (#11720)Andreas Rumpf2019-07-121-0/+20
|
* styleCheck: make the compiler and large parts of the stdlib compatible with ↵Araq2019-07-101-1/+1
| | | | --styleCheck:error
* fixes #11660 (#11677)Andreas Rumpf2019-07-071-1/+4
|
* fixes #7816 (#11261)Andreas Rumpf2019-05-151-0/+1
|
* Merge pull request #11201 from nim-lang/araq-fixes-11200Andreas Rumpf2019-05-081-1/+1
|\ | | | | fixes 11200
| * fixes #11200Araq2019-05-081-1/+1
| |
* | Replace countup(x, y-1) with x ..< yClyybber2019-05-071-7/+7
|/
* Fix 105, few fixes for 101 (#11148)genotrance2019-05-041-2/+4
|
* destructors: internal compiler refactoringAraq2019-04-181-13/+12
|
* more destructor based changes (#10885)Andreas Rumpf2019-03-231-2/+2
| | | | | | | | | | | * mark user defined destructors with sfOverriden to simplify the logic * refactoring in preparation to merge liftings and generic instantiations for destructors * ast: introduce nkHiddenTryStmt for destructor generation in order to be able to optimize better the code later on * renamed 'patterns' switch to 'trmacros' as it was totally misleading before * destructors: introduce tfCheckedForDestructor flag in preparation of strict =destroy checking * test for invalid/too late destructor introductions * liftdestructors: make code robust for nimsuggest * --newruntime works for hello world again * newruntime: code generation for closures
* fixes #10884 (#10887)Andreas Rumpf2019-03-221-1/+1
|
* Size ptr tuple (#10846)Arne Döring2019-03-181-2/+1
| | | | | | * fixes #10117 * Add support for recursive tuples * detect in generics
* --newruntime: work in progressAndreas Rumpf2019-03-141-1/+1
|
* introduce tfHasOwned for fast must-move checkings; removed tfAcyclic as the ↵Andreas Rumpf2019-03-051-5/+1
| | | | GC has ignored this hint for quite some time now
* gc:destructors: progressAndreas Rumpf2019-02-281-0/+16
|
* first steps in implementing 'owned' pointers; undocumented, do not useAndreas Rumpf2019-02-231-1/+1
|
* Propagate tfGcSafe flag to generic instantiations (#10620)LemonBoy2019-02-131-3/+2
| | | Fixes a nasty endless loop in the generic instantiation phase.
* gc: destructors is beginning to work (#10483)Andreas Rumpf2019-01-291-13/+24
| | | | | | | | | | | | | | | | * kochdocs.nim: code cleanup * docgen: nicer indentation * parser.nim: code cleanup * fixes #10458 * make tests green again * make =destroy mixins * gc:destructors: produced C code is almost working * --gc:destructors simple program compiles (but leaks memory) * gc:destructors make examples compile in C++ mode * destructors: string implementation bugfixes * strs.nim: minor code cleanup * destructors: builtin seqs are beginning to work * remove debugging helpers