summary refs log tree commit diff stats
path: root/compiler/ast.nim
Commit message (Collapse)AuthorAgeFilesLines
* fixes merge conflictAraq2018-08-231-0/+1
|\
| * Fix #8126 (#8712)zah2018-08-211-0/+1
| | | | | | | | | | | | This is a temporary fix that will be reworked in a follow up commit that aims to eliminate the tfExplicit flag from the compiler. The complete and proper fix was considered too risky for inclusion just before our 0.19 release.
* | even more strict isNil handling for strings/seqs in order to detect bugsAraq2018-08-221-19/+33
| |
* | fixes merge conflictAndreas Rumpf2018-08-191-6/+20
|\|
| * Merge branch 'devel' into araq-miscAndreas Rumpf2018-08-161-0/+8
| |\
| | * Fix unsound transform pass (#8633)LemonBoy2018-08-141-0/+8
| | | | | | | | | | | | | | | When a `var openArray[T]` function parameter goes trough the `transformAddrDeref` pass we may lose the `var` specifier, leading to nasty crashes at runtime.
| * | fixes more nil handling regressionsAraq2018-08-131-2/+2
| | |
| * | WIP: disallow 'nil' for strings and seqsAndreas Rumpf2018-08-131-3/+9
| |/
| * fixes #6255, add `system.ashr` arithmetic right shift (#8547)andri lim2018-08-071-1/+1
| |
* | allows a destructor to be attached to a tyString/tySequenceAndreas Rumpf2018-07-271-3/+3
| |
* | ast.nim: remove space for unary operatorAndreas Rumpf2018-07-221-1/+1
| |
* | fix merge conflictAndreas Rumpf2018-07-181-1/+2
|\|
| * Custom pragmas in proc types (#8205)cooldome2018-07-091-1/+2
| |
* | WIP: strings/seqs based on destructorsAndreas Rumpf2018-07-171-0/+1
|/
* allow referencing other parameters in default parameter valuesZahary Karadjov2018-06-161-1/+7
| | | | | | | | fix #7756 fix #1201 fix #7000 fix #3002 fix #1046
* fixes #7222; fixes #5595; fixes #3747Zahary Karadjov2018-06-161-0/+1
| | | | | | | | | | * 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
* A minimal patch enabling the new typedesc and static types syntaxZahary Karadjov2018-06-161-2/+2
|
* WIP: an API for VM replay global state supportAndreas Rumpf2018-06-031-3/+7
|
* incremental compilation: implemented basic replay logicAndreas Rumpf2018-06-021-16/+20
|
* baby steps for incremental compilationAndreas Rumpf2018-05-301-0/+2
|
* refactoring: remove idents.legacy global variable and pass the IdentCache ↵Andreas Rumpf2018-05-271-1/+1
| | | | around explicitly
* more refactoringAndreas Rumpf2018-05-271-2/+2
|
* remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-1/+1
|
* remove ast.emptyNode global; cleanup configuration.nimAraq2018-05-161-8/+2
|
* fixes testament compilationAraq2018-05-141-1/+14
|\
| * fix a compiler crash related to the new strings in C++ modeZahary Karadjov2018-05-071-1/+1
| |
| * Better support for treating templates and macros as symbols.Zahary Karadjov2018-05-071-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows you to pass a template or a macro to another macro which can then inspect the implementation of the former template/macro using `getImpl`. Since templates can be freely redefined, this allows you to treat their symbols as compile-time variables that have lexical scope. A motivating PoC example for a logging library taking advantage of this will be provided in the next commit. Implementation details: * The name of a template or a macro will be consider a symbol if the template/macro requires parameters * For parameterless templates/macros, you can use `bindSym`, which was extended to also work outside of compile-time procs.
* | options.nim: no global variables anymoreAndreas Rumpf2018-05-131-9/+10
| |
* | big refactoring: parser compiles againAndreas Rumpf2018-05-101-8/+12
|/
* Use safeLen in pairs iterator for PNode (#7684)Oscar Nihlgård2018-04-251-1/+1
|
* remove dead code elimination option (#7669)Jacek Sieka2018-04-231-3/+3
|
* refactoring: make FileIndex a distinct type; make line information an ↵Andreas Rumpf2018-04-211-5/+5
| | | | uint16; fixes #7654
* introduce nkTupleConstr AST node for unary tuple construction; breaking changeAndreas Rumpf2018-04-131-1/+2
|
* fixes #6895Andreas Rumpf2018-04-111-2/+2
|
* Get symbol kind (#7491)Arne Döring2018-04-111-2/+3
|
* Cpp codegen: handling of imported exceptions. Fixes #3571 (#7360)cooldome2018-04-101-0/+13
|
* the 'deprecated' pragma for modules now supports an error messageAraq2018-04-061-0/+2
|
* destructors: first version of 'sink' parameter logicAndreas Rumpf2018-03-311-2/+0
|
* further steps in implementing sink parameters; refs #7041Araq2018-03-301-0/+2
|
* Static[T] fixes (#7333)zah2018-03-241-4/+5
| | | | | | | | | | | * 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 #7215Andreas Rumpf2018-02-141-1/+1
|
* genTryCpp to catch by Nim type, ready for first review (#7196)cooldome2018-02-121-0/+14
| | | | | | | | | | | | | | | | * Rewrite genTryCpp * correction * Implement polymorphic raise in cpp * revert backticks in emit * Cleanp a comment * revert test changes * better handling of <new> header
* move new sha1 module into the new 'std' namespaceAndreas Rumpf2018-02-061-1/+1
|
* fixes #6961Andreas Rumpf2018-02-021-1/+1
|
* Custom pragmas in procs bug fix (#7086)cooldome2018-01-181-0/+1
|
* Implement custom annotations (#6987)cooldome2018-01-091-0/+1
|
* preparations for language extensions: 'sink' and 'lent' typesAndreas Rumpf2018-01-071-5/+5
|
* work in progress: 'sink' and 'lent' typesAraq2018-01-071-2/+2
|
* first steps in adding template/macro calls to stack tracesAraq2017-12-211-2/+2
|
* Now analyzes over magics instead of symbol names; but dosn't compile for meVeladus2017-12-111-1/+2
|