summary refs log tree commit diff stats
path: root/compiler/semexprs.nim
Commit message (Collapse)AuthorAgeFilesLines
* Open a new scope for `static:` expr blocks (#10649)LemonBoy2019-02-231-1/+5
| | | | Bring this in line with how plain blocks are analysed and avoids codegen errors if one references variables defined in such a block.
* first steps in implementing 'owned' pointers; undocumented, do not useAndreas Rumpf2019-02-231-7/+7
|
* Stop useless suggestion of unsafeAddr (#10598)LemonBoy2019-02-081-1/+1
| | | Fixes #10594
* Reject assignments with nkEmpty RHS (#9000)LemonBoy2019-02-061-7/+9
| | | Fixes #8997
* fixes double object field symbol lookups (no test case available) (#10450)cooldome2019-01-251-1/+5
|
* compiler/sem*: better lineinfo for templates (#10428)alaviss2019-01-231-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * compiler/sem*: better lineinfo for templates Lineinfo for templates is inconsistant across the compiler, for example: doAssert true ^ ^ a[int](10) ^^ ^ The `^` marks where the compiler thinks the template starts. For qualified call, we got the same situation with `proc`s before #10427: system.once ^ Generics lineinfo within template declaration is also incorrect, for example, this is where the compiler believes the `T` in `[T]` is: template a[T](b: T) ^ This PR addresses all of these problems. * nimsuggest: add tests for template highlighting
* compiler/sem*: improve lineinfo for qualified and generic procs (#10427)alaviss2019-01-231-3/+4
| | | | | | | | | | | | | | | | Previously the compiler will believe these are where `newSeq` symbol starts: newSeq[int]() ^ system.newSeq[int]() ^ This commit moves them back to: newSeq[int]() ^ system.newSeq[int]() ^
* Proper check for tyStatic[T] -> U conversions (#10382)LemonBoy2019-01-211-0/+2
| | | | | Drop the outer tyStatic shell then perform the check. Fixes #7609
* Fix spelling errors (#10379)Federico Ceratto2019-01-191-1/+1
|
* destructors: first step towards fixing #9617 (#10341)cooldome2019-01-181-2/+2
|
* Properly wrap discarded statements (#10322)LemonBoy2019-01-171-2/+2
| | | | | | Failing to do so lead the codegen to emit invalid code sometimes, especially when C++ references were involved. Fixes #10241
* fixes #10136Araq2019-01-131-2/+2
|
* 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
|