summary refs log tree commit diff stats
path: root/compiler/semexprs.nim
Commit message (Collapse)AuthorAgeFilesLines
* refactoring: remove idents.legacy global variable and pass the IdentCache ↵Andreas Rumpf2018-05-271-18/+18
| | | | around explicitly
* remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-10/+10
|
* make semantic checking free of globalsAndreas Rumpf2018-05-181-2/+2
|
* platform.nim doesn't use globals anymore; prepare msgs.nim for not using globalsAndreas Rumpf2018-05-181-7/+7
|
* preparations of making compiler/msgs.nim free of global variablesAndreas Rumpf2018-05-171-1/+1
|
* remove ast.emptyNode global; cleanup configuration.nimAraq2018-05-161-13/+16
|
* fixes testament compilationAraq2018-05-141-5/+28
|\
| * implement the export/except statementZahary Karadjov2018-05-071-2/+21
| |
| * A motivating example for the new `bindSym` behavior.Zahary Karadjov2018-05-071-0/+2
| | | | | | | | | | | | | | | | The example is a proof-of-concept logging library, allowing you to define lexically-scoped environments where certain logging attributes are applied automatically to all logging statements. fixes tmacro1 (use of `bindSym` inside static blocks)
| * Better support for treating templates and macros as symbols.Zahary Karadjov2018-05-071-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-6/+6
| |
* | make nimsuggest compile againAndreas Rumpf2018-05-131-1/+1
| |
* | sem pass compiles againAndreas Rumpf2018-05-121-144/+151
| |
* | semstmts compiles againAndreas Rumpf2018-05-121-3/+3
| |
* | more modules compile againAndreas Rumpf2018-05-121-107/+107
|/
* compiler refactoring, pass config around explicitlyAndreas Rumpf2018-05-051-3/+3
|
* minor speedup: concept tests still greenAndreas Rumpf2018-04-281-1/+2
|
* stuff that is greenAndreas Rumpf2018-04-281-1/+2
|
* semcheck: code cleanupsAndreas Rumpf2018-04-281-5/+1
|
* .experimental can now be used to enable specific featuresAndreas Rumpf2018-04-241-3/+3
|
* new 'var T' error messages with hyperlinks; closes #7373Andreas Rumpf2018-04-221-4/+4
|
* fixes #5113Andreas Rumpf2018-04-211-0/+8
|
* introduce nkTupleConstr AST node for unary tuple construction; breaking changeAndreas Rumpf2018-04-131-9/+11
|
* Static[T] fixes (#7333)zah2018-03-241-6/+34
| | | | | | | | | | | * 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
* enforce 'var T' produces a view into the first parameter; refs #7373Andreas Rumpf2018-03-241-4/+7
|
* more checking for 'var T' as return type; refs #7373Andreas Rumpf2018-03-241-1/+8
|
* better error messagesAraq2018-03-181-0/+4
|
* make the 'canimport' template workAndreas Rumpf2018-03-061-1/+8
|
* improve the error message for mutability problemsAraq2018-02-171-1/+1
|
* better error messages: use <T1, T2> instead of (T1, T2) in order to prevent ↵Araq2018-02-101-1/+1
| | | | confusions with tuple types
* basic 'lent T' test worksAndreas Rumpf2018-01-211-8/+8
|
* Implement custom annotations (#6987)cooldome2018-01-091-1/+2
|
* Merge branch 'devel' into nimv2Andreas Rumpf2018-01-081-11/+10
|\
| * fixes #7018Andreas Rumpf2018-01-081-11/+10
| |
* | sink type begins to compileAndreas Rumpf2018-01-081-1/+12
| |
* | preparations for language extensions: 'sink' and 'lent' typesAndreas Rumpf2018-01-071-27/+27
|/
* fixes reported 'proc foo(): int = result' codegen problemAraq2017-12-301-5/+1
|
* fixes #6980Araq2017-12-271-0/+13
|
* fix #6108Zahary Karadjov2017-12-211-5/+8
|
* first steps in adding template/macro calls to stack tracesAraq2017-12-211-0/+1
|
* Alternative fix for #4910 that covers #6892; fixes #6892 (#6938)cooldome2017-12-171-8/+6
|
* fixes #6932Araq2017-12-171-1/+1
|
* runnableExamples feature: allow import statements and move them to the top levelAraq2017-12-171-0/+10
|
* make tests green againAraq2017-12-151-0/+2
|
* make type vs proc ambiguous handling more consistent; fixes #6726; fixes #6693Araq2017-12-151-2/+2
|
* more progress on destructors; removed old destructor based code as it proved ↵Araq2017-12-011-2/+1
| | | | confusing
* the documentation generator now supports ':test:' for the testing of test ↵Araq2017-11-281-7/+8
| | | | snippets
* fixes system.runnableExamples; strutils makes use of runnableExamplesAraq2017-11-261-2/+2
|
* the documentation generator now supports system.runnableExamplesAraq2017-11-261-0/+11
|
* improve the error messages for bug #6692Araq2017-11-051-4/+5
|