summary refs log tree commit diff stats
path: root/compiler/seminst.nim
Commit message (Collapse)AuthorAgeFilesLines
* fixes #11515 (#11624)Andreas Rumpf2019-07-011-1/+1
| | | | | | * fixes #11515 * better fix for #11515; make tests green
* Replace countup(x, y-1) with x ..< yClyybber2019-05-071-3/+3
|
* more destructor based changes (#10885)Andreas Rumpf2019-03-231-1/+1
| | | | | | | | | | | * 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
* gc:destructors: progressAndreas Rumpf2019-02-281-0/+2
|
* fixes nested gensym'ed parameters; fixes #9476Araq2018-12-081-1/+1
|
* IC: further progressAraq2018-12-011-2/+2
|
* Change the order of compilation passes, transformation is made lazy at code ↵cooldome2018-10-181-3/+2
| | | | | | | | | | | | | | | gen (#8489) * Ast no transformation * Add getImplNoTransform to the macros module * progress on delaying transf * Fix methods tranformation * Fix lazy lambdalifting * fix create thread wrapper * transform for lambda lifting * improve getImplTransformed * Fix destructor tests * try to fix nimprof for linux
* replace deprecated `safeAdd` with `add` (#9416)Miran2018-10-181-1/+1
|
* compiler: show name of instantiating context in error traces (#6763) (#9207)xzfc2018-10-111-1/+1
|
* fixes #4766Araq2018-08-281-1/+2
|
* WIP: disallow 'nil' for strings and seqsAndreas Rumpf2018-08-131-4/+3
|
* allow referencing other parameters in default parameter valuesZahary Karadjov2018-06-161-2/+24
| | | | | | | | fix #7756 fix #1201 fix #7000 fix #3002 fix #1046
* fix #6928; fix #7208Zahary Karadjov2018-06-161-3/+4
|
* Support default type parametersZahary Karadjov2018-06-161-3/+16
| | | | progress on #7516
* fixes #7222; fixes #5595; fixes #3747Zahary Karadjov2018-06-161-17/+20
| | | | | | | | | | * late instantiation for the generic procs' default param values * automatic mixin behaviour in concepts Other fixes: * don't render the automatically inserted default params in calls * better rendering of tyFromExpr
* remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-6/+6
|
* remove ast.emptyNode global; cleanup configuration.nimAraq2018-05-161-1/+1
|
* make tests green againAraq2018-05-141-2/+2
|
* more modules compile againAndreas Rumpf2018-05-121-13/+14
|
* added toOpenArray builtin for zero-copy slices; syntax sugar yet to comeAraq2018-03-241-1/+3
|
* Static[T] fixes (#7333)zah2018-03-241-0/+30
| | | | | | | | | | | * fix the usage of unresolved static[T] parameters in proc signatures * fix tsametype and tmacrogenerics * Allow creating composite type classes with concepts and using them in type signatures * Allow integers to be used in ident concatenations * Support using imported C++ generic types in proc signatures * fixes #7230 * closes #7379 * re-enable some metatype tests
* fixes #6489Araq2017-11-231-0/+2
|
* deprecated unary '<'Andreas Rumpf2017-10-291-4/+4
|
* first implementation of the 'func' keywordAndreas Rumpf2017-09-231-1/+1
|
* Fix #5962Zahary Karadjov2017-06-201-3/+8
| | | | | | | | | | | | | | | During the instantiation of a generic type A, some other generic type B may be instantiated multiple times with different parameters. We can think about each instantiation as a function call that should temporary bind the parameter names to concrete types. The problem with the existing implementation in semtypinst was that it was performing this binding within a shared global table. In this sense, it was executing the code as a programming language featuring only global variables. In such a language, re-entrant functions cannot be defined properly and hence this was leading to problems with similar types. The solution is simple - just like we need to introduce stack frames to handle re-entrant functions, we introduce a stack of type bindings that are pushed and popped during the generic instantiations.
* introduce a pre-processing pass for the concept bodiesZahary Karadjov2017-06-201-3/+3
| | | | | | | fixes #4982 fixes #3805 close #3414
* fixes tproctypecache_falsepositive.nim test caseAraq2017-06-081-1/+2
|
* Restore the Nim's 0.14 proper handling of generic aliasesZahary Karadjov2017-04-081-1/+2
| | | | | | | | | | | A more efficient implementation is possible by restoring the old lifting ot tyGenericInvocation to tyGenericInst in liftTypeParam, but this fix will suffice for now. fixes #5087 fixes #5602 fixes #5641 fixes #5570
* fix tgenericshardcasesZahary Karadjov2017-03-241-1/+2
|
* Fix generic forward declarations; fixes #4104; fixes #4908 (#5566)zah2017-03-231-3/+11
|
* fixes #5430Araq2017-02-261-1/+1
|
* big compiler refactoring; avoid globals for multi method dispatcher generationAndreas Rumpf2017-02-221-3/+3
|
* make tests green againAraq2017-02-161-1/+3
|
* fixes #5383Araq2017-02-161-3/+4
|
* fixes #5285Andreas Rumpf2017-02-041-2/+9
|
* remove remnants of tyIterJacek Sieka2016-10-241-1/+1
|
* fixes #4856Andreas Rumpf2016-10-201-1/+2
|
* fixes #4673Andreas Rumpf2016-09-011-1/+1
|
* Merge pull request #4592 from arnetheduck/compiler-cleanupAndreas Rumpf2016-08-251-30/+0
|\ | | | | Compiler cleanup
| * remove unused stuffJacek Sieka2016-08-091-30/+0
| |
* | side-effect computation now done in the proper pass; fixes #4254Andreas Rumpf2016-08-251-3/+4
|/
* fixes #3055Andreas Rumpf2016-07-081-1/+1
|
* fixes #4177Andreas Rumpf2016-05-281-2/+4
|
* fixes #4097Andreas Rumpf2016-04-191-7/+7
|
* added experimental .this pragmaAndreas Rumpf2016-02-281-1/+43
|
* fixes #3476Araq2015-10-271-2/+2
|
* fixes #3338Araq2015-10-221-1/+7
|
* renamed inCompilesContext to compilesContextId; added test case for #3313Araq2015-09-181-3/+3
|
* fixes #3313Araq2015-09-181-4/+7
|
* fixes #3329Araq2015-09-181-1/+1
|