summary refs log tree commit diff stats
path: root/compiler/semexprs.nim
Commit message (Collapse)AuthorAgeFilesLines
* Show error when trying to export individual enum field (#10109)Neelesh Chandola2019-01-071-1/+3
|
* Fix #10073 (#10218)zah2019-01-071-1/+8
|
* Fix defer not not-working at top level (#10191)Neelesh Chandola2019-01-071-0/+2
|
* Deprecate gc v2 (#10151)Neelesh Chandola2019-01-011-1/+1
| | | | | | * Deprecate gc v2 * warnDeprecated now has custom messages
* Check there are no side effects before optimizing away compile time ↵deech2018-12-311-8/+12
| | | | expressions. (#9934)
* fixes nested gensym'ed parameters; fixes #9476Araq2018-12-081-0/+4
|
* fixes #9868Araq2018-12-051-0/+17
|
* fix #8289 (#9828)Timothee Cour2018-11-301-0/+1
|
* improve line info retreival (#9822)Arne Döring2018-11-301-1/+8
| | | | | * improve line info * fix error message
* fix #9759 (#9789)Arne Döring2018-11-231-1/+2
|
* fixes #9743Araq2018-11-191-1/+2
|
* Converter bug fixes (#9700)cooldome2018-11-151-0/+1
| | | | | * Fixes #9698 * Fixes #9699
* added first version of a nimfind tool for the poor souls that don't have a ↵Andreas Rumpf2018-11-141-18/+19
| | | | good nimsuggest integretation
* feedback injectedArne Döring2018-11-081-1/+1
|
* fix #8335Arne Döring2018-11-081-0/+2
|
* Quote do now works with result in block (#7343)PMunch2018-10-311-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix result not being able to use in quote do This fixes the annoying issue of not be able to use result inside a quote do block. It works by a simple trick. The quote do mechanic is based on dynamically creating a template and immediately calling it with the arguments found within the quote do block. Since this is called in the scope of the macro the result variable is shadowed. This trick works by changing all occurences of result (which shouldn't cause any issues as result isn't used for anything else for the same reason) to another name and then passing in an IdentNode with result as a named parameter with that name. Note that currently this just replaces it with a fixed named variable "res" which should be changed to a non-colliding, dynamically created name. * Fix hard coded parameter "res" to anonymous symbol This fixes the hard coded parameter "res" to be an anonymous symbol instead so it won't collide with other parts of the argument list. * Add test case for result in quote do block A simple test case based on GitHub issue #7323 on how you can't put result in a quote do block. This test verifies that it actually works correctly now. * Add test for explicit capturing of result * Rebased against devel
* Openmp parallel iterator improvements (#9493)Mamy Ratsimbazafy2018-10-251-5/+0
| | | | | * More flexibility in OpenMP pragma * Use static to constrain to compile-time annotation string * Update changelog with OpenMP change
* fixes #9498, typeof is for everybodyAraq2018-10-251-3/+2
|
* Relax the restrictions on the index types (#9412)LemonBoy2018-10-181-17/+12
|
* fixes a regression about indexing into UncheckedArrayAndreas Rumpf2018-10-161-1/+12
|
* fixes #2760Araq2018-10-151-1/+1
|
* [WIP] Early evaluation of mIs (#8723)LemonBoy2018-10-141-4/+2
| | | | | | | | | | * Early evaluation of mIs The `evalIs` implementation was just a broken copy of `isOpImpl` so let's just avoid it alltogether: `mIs` nodes are either resolved during the semantic phase or bust. * Remove dead code and tidy it up
* implement sizeof and alignof operator (manually squashed #5664) (#9356)Timothee Cour2018-10-141-11/+4
|
* Make sure the annotation for `||` is avail. at CT (#9354)LemonBoy2018-10-141-0/+8
| | | Closes #9353
* compiler: show name of instantiating context in error traces (#6763) (#9207)xzfc2018-10-111-1/+1
|
* Unchecked arrays now have their own type (#9267)LemonBoy2018-10-101-1/+1
|
* Merge pull request #8990 from LemonBoy/fix-8259Andreas Rumpf2018-09-171-0/+2
|\ | | | | Always check the deduced type validity for result
| * Always check the deduced type validity for resultLemonBoy2018-09-171-0/+2
| | | | | | | | Fixes #8259
* | fixes #1616; fixes 'nim doc' regressionsAndreas Rumpf2018-09-171-5/+6
|/
* extended system.type/typeof to support an upcoming 'collect' macro that ↵Andreas Rumpf2018-09-111-12/+12
| | | | works much better than sugar.lc
* Fix type comparison in semConv (#8907)LemonBoy2018-09-071-1/+2
| | | Fixes #8905
* change runnableExamples implementation; fixes #8641; fixes #7135; ↵Andreas Rumpf2018-09-021-17/+11
| | | | runnableExamples works for templates and generics
* introduce precise string '[]', '[]=' accessors; fixes #8049 (#8817)Andreas Rumpf2018-08-301-2/+2
|
* enforce the condition of a 'when' condition to be of type bool; refs #8603Andreas Rumpf2018-08-231-1/+1
|
* fixes merge conflictAraq2018-08-231-0/+5
|\
| * Don't consider tyAnd/tyNot/tyOr/tyAnything as generic (#8700)LemonBoy2018-08-221-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Don't consider tyAnd/tyNot/tyOr/tyAnything as generic `containsGenericType` was too shallow and didn't check all the branches. The resulting half-processed nodes are often simplified by the constant folding pass but when that's not possible we get a nasty error during codegen. Fixes #8693 * Move the blame onto the semFold pass Slightly better evaluation of `is` forms.
* | some progress on destructors for builtin seqsAndreas Rumpf2018-08-201-1/+4
|/
* fixes #8425Araq2018-08-041-1/+1
|
* keep the imports in runnableExamples visible in generated html doc (#8354)skilchen2018-07-191-2/+3
|
* fix #7405 and #8195 (#8198)Timothee Cour2018-07-161-0/+3
| | | | | | | | * fix #7405 and #8195 * control pushInfoContext in semExprNoType,genStmts via a new hintExtendedContext; make NotesVerbosity computation more DRY * addressed comments
* enable destructors without the --newruntime switchAndreas Rumpf2018-07-041-6/+1
|
* Minor changes to discardable handling (#8155)LemonBoy2018-07-011-13/+0
|
* fix #8129 by calling `semExpr` in `semIs` if node is `strLit` (#8130)Vindaar2018-06-291-0/+2
| | | | | | | | | | | | | | | | | | | * call `semExpr` in `semIs` if node is `strLit`, fixes #8129 In case the second son of the node in `semIs` is of kind `strLit`, we now call `semExpr` to set the `typ` field of that node. Also removes the `t2 != tyTypeDesc` check in `isOpImpl`, since the kind of `n[2]` is already assertet with the `internalAssert`. * reintroduce check for `t2.kind != tyTypeDesc` to fix test case The `internalAssert` in the `isOpImpl` doesn't check `n.sons[2].typ.kind` as I previously read, but rather `n.sons[2].kind`. Therefore the check for `tyTypeDesc` here is useful. Otherwise the last test case in `isopr.nim` fails. Also removes the flag `efDetermineType` from the call to `semExpr`.
* Merge branch 'devel' into typedesc-reformsAndreas Rumpf2018-06-261-2/+2
|\
| * More concept fixesLemonBoy2018-06-241-2/+2
| | | | | | | | Fixes #7705, #7703, #7702
* | requested pull-request changesZahary Karadjov2018-06-161-0/+1
| |
* | fix some breakage after rebasingZahary Karadjov2018-06-161-1/+1
| |
* | fixes #7222; fixes #5595; fixes #3747Zahary Karadjov2018-06-161-0/+30
| | | | | | | | | | | | | | | | | | | | * 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
* | Implement the `is` operator for the new static and typedesc type classesZahary Karadjov2018-06-161-20/+61
| | | | | | | | | | | | | | | | | | This also makes the first baby steps towards a sound treatment of higher-order kinds (type type int). Adds test cases showcasing the new features. * Also fixes breakage after the rebase
* | A minimal patch enabling the new typedesc and static types syntaxZahary Karadjov2018-06-161-6/+33
|/