summary refs log tree commit diff stats
path: root/compiler/semdata.nim
Commit message (Collapse)AuthorAgeFilesLines
* introduce a pre-processing pass for the concept bodiesZahary Karadjov2017-06-201-2/+7
| | | | | | | fixes #4982 fixes #3805 close #3414
* Allow tyOr,tyAnd and tyNot to be constructed in more contextsZahary Karadjov2017-04-281-0/+4
|
* move the object construction logic to a separate fileZahary Karadjov2017-04-061-1/+1
|
* cleaned up the code and implemented proper error messagesZahary Karadjov2017-04-061-2/+13
|
* fix #4556Zahary Karadjov2017-04-061-1/+1
| | | | | | | | | | | | | | | | | | | | | This implements a number of new safety checks and error messages when object constructors are used: In case objects: * the compiler will prevent you from initializing fields in conflicting branches * When a field from a particular branch is initialized, the compiler will demand that the discriminator field is also supplied with a maching compile-time value In all objects: * When the "requiresInit" pragma is applied to a type, all fields of the type must be initialized when object construction is used. The code will be simplified in a follow up commit.
* proper error reporting for concepts and the introduction of the {.explain.} ↵Zahary Karadjov2017-03-241-4/+5
| | | | pragma
* infer static parameters even when more complicated arithmetic is involvedZahary Karadjov2017-03-241-12/+3
|
* support for inferring static[T] concept paramsZahary Karadjov2017-03-241-4/+12
|
* support the full range of type modifiers when declaring concept vars and ↵Zahary Karadjov2017-03-241-2/+16
| | | | testing proc signatures
* nimsuggest: track type contextsAraq2017-03-011-0/+1
|
* nimsuggest supports prefix matching (first version)Araq2017-02-281-0/+1
|
* Merge branch 'devel' into faster-nimsuggestAndreas Rumpf2017-02-241-10/+8
|\
| * removed compiler internal list implementation (#5371)Arne Döring2017-02-221-10/+9
| |
* | big compiler refactoring; avoid globals for multi method dispatcher generationAndreas Rumpf2017-02-221-13/+11
|/
* fixes #5405Araq2017-02-161-0/+20
|
* fixes #5383Araq2017-02-161-0/+10
|
* happy new yearAraq2017-01-071-1/+1
|
* new shift ops for Nim; based on #4743Andreas Rumpf2016-12-291-1/+10
|
* recursive modules are only detected to improve error messagesAndreas Rumpf2016-11-241-0/+1
|
* new dependency tracking for nimsuggestAraq2016-11-051-3/+6
|
* big refactoring: step 1Araq2016-10-311-30/+16
|
* generic multi-methods should work nowAndreas Rumpf2016-07-281-1/+1
|
* new language feature: explicit 'import system' statements are allowedAndreas Rumpf2016-07-071-0/+1
|
* Merge branch 'patch/fix-3496-generic-tmpl-args' of ↵Andreas Rumpf2016-05-291-1/+1
|\ | | | | | | https://github.com/nanoant/Nim into nanoant-patch/fix-3496-generic-tmpl-args
| * fixes #3496Adam Strzelecki2015-10-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem comes from the fact that macroOrTmpl[...] is transformed by semSubscript which is trying to evaluate macroOrTmpl identifier in place. This is okay for non-generic macros or templates, but wrong for generic ones, that do not have a chance to receive their generic arguments explicitly specified in brackets. Solution: 1. macroOrTmpl[...] where macroOrTmpl is non-generic macro or template, then macroOrTmpl is evaluated before applying brackets. (as before) 2. macroOrTmpl[...] where macroOrTmpl is generic macro or template, then if: a. It comes from macroOrTmpl[...](...) call expr (efInCall), then macroOrTmpl is turned into a symbol (efNoEvaluate) rather than evaluating it in place, then whole bracket expr is returned to semIndirectOp which transforms it to proper generic macro or template call with explicit generic arguments. b. macroOrTmpl[...] does not come from call expr, as above macroOrTmpl is transformed to symbol, then it is transformed into proper generic macro or template call with explicit generic arguments and no normal arguments.
* | fixes #4227Andreas Rumpf2016-05-271-1/+1
| |
* | added 'sig' feature; removed tfShared support in the compilerAndreas Rumpf2016-02-281-0/+3
| |
* | added experimental .this pragmaAndreas Rumpf2016-02-281-11/+2
| |
* | first implementation of the new lambda-lifting pass; barely anything worksAndreas Rumpf2015-12-261-1/+1
|/
* renamed inCompilesContext to compilesContextId; added test case for #3313Araq2015-09-181-1/+1
|
* fixes #3313Araq2015-09-181-0/+1
|
* next steps in binding [] properlyAraq2015-09-131-1/+2
|
* fixes #2585Araq2015-04-221-4/+6
|
* fixes #2505, fixes #1853, fixes #2522Araq2015-04-201-0/+3
|
* fixes #2481Araq2015-04-101-1/+2
|
* first implementation of overloading of '='; missing: rewriting let/var sectionsAraq2015-04-061-2/+7
|
* implemented a[^1] notationAraq2015-03-261-27/+28
|
* cleaned up some testsAraq2015-02-101-0/+1
|
* nimsuggest improvementsAraq2015-01-301-0/+3
|
* fixes #1915Araq2015-01-121-0/+1
|
* fix #1049Zahary Karadjov2015-01-021-1/+1
|
* implemented 'experimental' switchAraq2014-12-051-0/+5
|
* nicer error messages (untested)Araq2014-10-261-2/+1
|
* deepCopy is instantiated when its corresponding type is instantiatedAraq2014-09-261-0/+3
|
* updated the compiler to use the new symbol namesAraq2014-08-281-3/+3
|
* Nimrod renamed to NimAraq2014-08-281-1/+1
|
* Merge pull request #1281 from Araq/new_spawnAndreas Rumpf2014-06-161-0/+1
|\ | | | | New spawn
| * pi test compiles, but crashes randomlyAraq2014-06-011-0/+1
| |
* | Fixed #1172 (for real)Clay Sweetser2014-06-011-2/+2
|/
* removed flawed thread analysis passAraq2014-04-201-2/+0
|