summary refs log tree commit diff stats
path: root/compiler/ast.nim
Commit message (Collapse)AuthorAgeFilesLines
* initial version of the new untested destructor passAndreas Rumpf2017-10-121-1/+5
|
* further preparations for 'opt' builtin typeAndreas Rumpf2017-10-091-2/+2
|
* first steps of making 'opt' a first class type for NimAndreas Rumpf2017-09-251-1/+1
|
* some work to make 'opt' a first class typeAndreas Rumpf2017-09-241-9/+3
|
* first implementation of the 'func' keywordAndreas Rumpf2017-09-231-5/+8
|
* Merge branch 'devel' into araq-better-codegenAndreas Rumpf2017-09-231-1/+1
|\
| * NimScript: added buildOS and buildCPU constantsAndreas Rumpf2017-09-221-1/+1
| |
* | fixes #6403Andreas Rumpf2017-09-211-2/+1
| |
* | refactoring: TLoc knows the node it originated from; it is planned to use ↵Andreas Rumpf2017-09-211-3/+2
| | | | | | | | this to produce better C code (move optimizations)
* | introduce OnHeapNew and rename TLoc.s to TLoc.storageAndreas Rumpf2017-09-211-3/+4
|/
* Fix operations on string as openarray in VM. (#6257)Parashurama2017-09-151-0/+6
| | | | | | | | | | * fix openarray.len for string as openArray in VM. * fix openarray[idx] for string as openArray in VM. * fix openarray[idx]=val for string as openArray in VM. * add tests for passing string as openArray in VM. * fix issue with NimNode.len NimNode.len was also returning len for string literals. also fix logic bug in if/elif chain.
* distinguish between 'reorder' and 'noforward'Andreas Rumpf2017-07-261-0/+2
|
* Fix #4020; Better handling of templates within conceptsZahary Karadjov2017-06-201-1/+3
|
* 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
|
alt'>