summary refs log tree commit diff stats
path: root/compiler/semtypinst.nim
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* fixes #3329Araq2015-09-181-4/+19
|
* fixes #3112Araq2015-07-141-4/+16
|
* fixes #2540Araq2015-07-031-2/+8
|
* fixes #2505, fixes #1853, fixes #2522Araq2015-04-201-1/+3
|
* fixes #2509Araq2015-04-111-0/+8
|
* first implementation of overloading of '='; missing: rewriting let/var sectionsAraq2015-04-061-3/+9
|
* fixes #1783Araq2015-03-231-1/+5
|
* fixes #2346Araq2015-03-161-26/+27
|
* .n.isNil checks for tyTuple PTypes.Max Zerzouri2015-03-071-0/+2
|
* fixes #2169Araq2015-02-281-2/+1
|
* fixes #2216Araq2015-02-261-4/+4
|
* tsigtypeop.nim works againAraq2015-02-251-0/+1
|
* fixes #2125Araq2015-02-181-1/+1
|
* Fix typosFederico Ceratto2015-02-151-7/+7
|
* nimsuggest: first versionAraq2015-01-271-1/+0
|
* Happy new year!Guillaume Gelin2015-01-061-1/+1
|
* fixes #1187Araq2014-12-191-2/+3
|
* fixes #1687Araq2014-11-301-1/+1
|
* fixes #1562, fixes #1543Araq2014-11-201-0/+2
|
* implemented locking levels; still incompleteAraq2014-09-271-7/+0
|
* deepCopy is instantiated when its corresponding type is instantiatedAraq2014-09-261-0/+12
|
* mostly fixes #1339Zahary Karadjov2014-09-051-2/+6
| | | | | | | | | | | The compiler hangs were caused by the interaction of tyError and the instantiation caches. For procs, the cache wasn't able to find previously compiled proc featuring tyError in the signature. For types, the unresolved type parameters leading to tyError were not replaced everywhere leading to endless replaceTypeVarsT recursion for cyclic types. The fix is still not perfect, because the handling of tyError in other places in the compiler doesn't seem to be complete and the first test case now results in internal error (still, much better than a hang blocking your IDE).
* big renameAraq2014-08-271-1/+1
|