summary refs log tree commit diff stats
path: root/compiler/semtypinst.nim
Commit message (Collapse)AuthorAgeFilesLines
* Change the order of compilation passes, transformation is made lazy at code ↵cooldome2018-10-181-0/+5
| | | | | | | | | | | | | | | 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
|
* fixes #5479Araq2018-10-021-6/+11
|
* fixes #8883Araq2018-09-141-2/+5
|
* WIP: disallow 'nil' for strings and seqsAndreas Rumpf2018-08-131-2/+2
|
* enable destructors without the --newruntime switchAndreas Rumpf2018-07-041-5/+1
|
* requested pull-request changesZahary Karadjov2018-06-161-2/+3
|
* fixes #7222; fixes #5595; fixes #3747Zahary Karadjov2018-06-161-12/+12
| | | | | | | | | | * 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-9/+10
|
* platform.nim doesn't use globals anymore; prepare msgs.nim for not using globalsAndreas Rumpf2018-05-181-1/+1
|
* make tests green againAraq2018-05-141-2/+2
|
* guards.nim does compileAndreas Rumpf2018-05-111-22/+21
|
* .experimental can now be used to enable specific featuresAndreas Rumpf2018-04-241-2/+2
|
* Static[T] fixes (#7333)zah2018-03-241-0/+4
| | | | | | | | | | | * 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
* preparations for language extensions: 'sink' and 'lent' typesAndreas Rumpf2018-01-071-3/+3
|
* fixes #6489Araq2017-11-231-2/+2
|
* fixes #6682Araq2017-11-221-1/+2
|
* deprecated unary '<'Andreas Rumpf2017-10-291-8/+8
|
* destructors: supportsCopyMem finally works for recursive typesAraq2017-10-261-10/+26
|
* destructors: irresponsibly simple tcustomseq test worksAndreas Rumpf2017-10-171-1/+4
|
* destructors: preparations for upcoming changesAraq2017-10-171-5/+1
|
* minor refactorings for better destructorsAndreas Rumpf2017-10-141-5/+11
|
* first implementation of the 'func' keywordAndreas Rumpf2017-09-231-1/+1
|
* fix #2730; fix #4880Zahary Karadjov2017-06-201-1/+2
|
* Fix #5962Zahary Karadjov2017-06-201-13/+44
| | | | | | | | | | | | | | | 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.
* fixes tproctypecache_falsepositive.nim test caseAraq2017-06-081-2/+3
|
* fix #5683Zahary Karadjov2017-04-141-0/+1
|
* fix #5643; fix #5644Zahary Karadjov2017-04-081-2/+6
|
* Restore the Nim's 0.14 proper handling of generic aliasesZahary Karadjov2017-04-081-25/+34
| | | | | | | | | | | 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
* wip fix #5640Zahary Karadjov2017-04-071-1/+1
|
* attempt to fix #5621 #5615 generic ref object typeRel (#5633)andri lim2017-03-311-1/+1
|
* Working test cases for the sophisticated matrix library example from the manualZahary Karadjov2017-03-241-0/+2
| | | | | Fixed the dot operator when used within return types (see tgenericdotrettype) Fixed the matching of generic concepts aliases used with the implicit generics style
* proper error reporting for concepts and the introduction of the {.explain.} ↵Zahary Karadjov2017-03-241-1/+1
| | | | pragma
* infer static parameters even when more complicated arithmetic is involvedZahary Karadjov2017-03-241-2/+3
|
* support for inferring static[T] concept paramsZahary Karadjov2017-03-241-0/+1
|
* support for accessing the inferred concept type params with the dot operatorZahary Karadjov2017-03-241-1/+1
|
* avoid some compiler crashes in debug modeAndreas Rumpf2017-01-231-1/+3
|
* make tsigbreak.nim compileAndreas Rumpf2016-12-121-3/+8
|
* further progressAraq2016-11-281-0/+3
|
* removed tyArrayConstr completely from the compiler; introduced tyAlias ↵Araq2016-11-141-1/+1
| | | | instead in preparation for further bugfixes
* fixes #4677 properlyAndreas Rumpf2016-09-031-6/+7
|
* fixes #4677Andreas Rumpf2016-09-031-1/+2
|
* compiler almost free of deprecated expr/stmt namesAndreas Rumpf2016-07-301-1/+1
|
* generic multi-methods should work nowAndreas Rumpf2016-07-281-3/+10
|
* fixes #4371Andreas Rumpf2016-07-081-4/+4
|
* fixes #3669Andreas Rumpf2016-03-011-8/+8
|
* added 'sig' feature; removed tfShared support in the compilerAndreas Rumpf2016-02-281-13/+0
|
* Consistently use Channel instead of TChanneldef2016-02-251-1/+1
|
* removes 'x is iterator' special casing in the languageAraq2015-12-031-2/+2
|
* fixes #3338Araq2015-10-221-2/+6
|