summary refs log tree commit diff stats
path: root/compiler/ast.nim
Commit message (Collapse)AuthorAgeFilesLines
* cleanup of in/out covariance handlingAndreas Rumpf2017-05-171-7/+5
|
* enforce the covariance rules for user-defined generic typesZahary Karadjov2017-05-131-6/+8
|
* doh, forgot to add all files in the previous commitZahary Karadjov2017-05-121-1/+2
|
* support for external types with covariant generic paramsZahary Karadjov2017-05-081-0/+4
|
* lift parameter-less do block to lambdasZahary Karadjov2017-04-101-0/+1
|
* fix the do notation when used with procsZahary Karadjov2017-04-091-0/+1
|
* Restore the Nim's 0.14 proper handling of generic aliasesZahary Karadjov2017-04-081-0/+3
| | | | | | | | | | | 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
* proper error reporting for concepts and the introduction of the {.explain.} ↵Zahary Karadjov2017-03-241-0/+1
| | | | pragma
* implement the special treatment of explicit type params in conceptsZahary Karadjov2017-03-241-0/+2
|
* infer static parameters even when more complicated arithmetic is involvedZahary Karadjov2017-03-241-1/+11
|
* support derived values in non-generic user type classesZahary Karadjov2017-03-241-0/+3
|
* support for inferring static[T] concept paramsZahary Karadjov2017-03-241-0/+4
|
* introduce tyInferred for the unbound concept type paramsZahary Karadjov2017-03-241-11/+23
| | | | | | | | | | | | | | | | | | * Why is tyInferred needed? The bindings in TCandidate are capable of inferring types within a single call expression. In concepts, we need to infer types in the same way, but across the whole body of the concept. Previously, once a concept type param was inferred, it was destructively mutated using t.assignType, but this proved to be problematic in the presence of overloads, because the bindings established while a non-matching overload is tested must be reverted/forgotten. tyInferred offers a non-destructive way to keep track of the inference progress. While introducing new types usually requires a lot of code paths in the compiler to updated, currently tyInferred is only a short-lived type within the concept body pass and it's unlikely to introduce breakage elsewhere in the compiler.
* concept type params inference working in basic examplesZahary Karadjov2017-03-241-0/+1
|
* Merge branch 'devel' of github.com:nim-lang/Nim into develAraq2017-03-141-0/+2
|\
| * Merge branch 'devel' into faster-nimsuggestAndreas Rumpf2017-03-141-0/+2
| |\
| | * Fixes #5167 and related problems (#5475)zah2017-03-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit returns to a bit less strict checking of the number of macro arguments, because some old immediate macros rely on a behavior where even the arity of the macro is not being checked. It may be better if such macros are just declared to use varargs[expr], but this remains for another day.
| * | nimsuggest: make tests green againAraq2017-03-101-2/+2
| |/
* / fixes #5529; don't merge type visibility flagsAraq2017-03-141-3/+3
|/
* removed compiler internal list implementation (#5371)Arne Döring2017-02-221-2/+4
|
* fixes #5383Araq2017-02-161-2/+1
|
* Merge branch 'devel' into feature/3691Dominik Picheta2017-02-071-1/+2
|\
| * fixes #5285Andreas Rumpf2017-02-041-1/+2
| |
* | Fixes based on @Araq's feedback.Dominik Picheta2017-02-011-1/+1
| |
* | Fixes #3691.Dominik Picheta2017-02-011-1/+10
| |
* | WIP implementation of `except ExcType as ident` syntax. Refs #3691.Dominik Picheta2017-02-011-0/+7
|/
* make tsigbreak.nim compileAndreas Rumpf2016-12-121-1/+2
|
* further progressAraq2016-11-281-0/+2
|
* removed tyArrayConstr completely from the compiler; introduced tyAlias ↵Araq2016-11-141-6/+6
| | | | instead in preparation for further bugfixes
* bootstrapping works againAraq2016-11-121-4/+4
|
* big refactoring: step 1Araq2016-10-311-10/+0
|
* clean up tyMutable remnantsJacek Sieka2016-10-241-3/+3
|
* clean up tyConst remnantsJacek Sieka2016-10-241-1/+1
|
* clean up tyBigNum remnantsJacek Sieka2016-10-241-2/+6
|
* remove remnants of tyIterJacek Sieka2016-10-241-1/+1
|
* fixes #4803Andreas Rumpf2016-09-241-0/+3
|
* C++ backend: use .noInit pragma for non-public default constructors; refs #4687Andreas Rumpf2016-09-041-2/+2
|
* MergedAraq2016-08-271-27/+1
|\
| * fixes #3606Andreas Rumpf2016-08-261-1/+1
| |
| * remove TLoc.heapRootJacek Sieka2016-08-171-3/+0
| |
| * remove unused stuffJacek Sieka2016-08-091-23/+0
| |
* | next steps in getting symbol files to work againAraq2016-08-161-7/+2
|/
* compiler almost free of deprecated expr/stmt namesAndreas Rumpf2016-07-301-3/+3
|
* remove sfFakeConstJacek Sieka2016-07-301-1/+0
|
* stdlib and compiler don't use .immediate anymoreAndreas Rumpf2016-07-291-0/+2
|
* generic multi-methods should work nowAndreas Rumpf2016-07-281-0/+1
|
* fixes #4485; package handling works better; docgen works with --project on ↵Andreas Rumpf2016-07-191-1/+1
| | | | Nimble package level
* added system.newSeqOfCap for improved efficiencyAndreas Rumpf2016-07-151-1/+1
|
* make tests green againAndreas Rumpf2016-07-101-1/+0
|
* fixes #4371Andreas Rumpf2016-07-081-3/+4
|