Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge pull request #8990 from LemonBoy/fix-8259 | Andreas Rumpf | 2018-09-17 | 1 | -0/+2 |
|\ | | | | | Always check the deduced type validity for result | ||||
| * | Always check the deduced type validity for result | LemonBoy | 2018-09-17 | 1 | -0/+2 |
| | | | | | | | | Fixes #8259 | ||||
* | | fixes #1616; fixes 'nim doc' regressions | Andreas Rumpf | 2018-09-17 | 1 | -5/+6 |
|/ | |||||
* | extended system.type/typeof to support an upcoming 'collect' macro that ↵ | Andreas Rumpf | 2018-09-11 | 1 | -12/+12 |
| | | | | works much better than sugar.lc | ||||
* | Fix type comparison in semConv (#8907) | LemonBoy | 2018-09-07 | 1 | -1/+2 |
| | | | Fixes #8905 | ||||
* | change runnableExamples implementation; fixes #8641; fixes #7135; ↵ | Andreas Rumpf | 2018-09-02 | 1 | -17/+11 |
| | | | | runnableExamples works for templates and generics | ||||
* | introduce precise string '[]', '[]=' accessors; fixes #8049 (#8817) | Andreas Rumpf | 2018-08-30 | 1 | -2/+2 |
| | |||||
* | enforce the condition of a 'when' condition to be of type bool; refs #8603 | Andreas Rumpf | 2018-08-23 | 1 | -1/+1 |
| | |||||
* | fixes merge conflict | Araq | 2018-08-23 | 1 | -0/+5 |
|\ | |||||
| * | Don't consider tyAnd/tyNot/tyOr/tyAnything as generic (#8700) | LemonBoy | 2018-08-22 | 1 | -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 seqs | Andreas Rumpf | 2018-08-20 | 1 | -1/+4 |
|/ | |||||
* | fixes #8425 | Araq | 2018-08-04 | 1 | -1/+1 |
| | |||||
* | keep the imports in runnableExamples visible in generated html doc (#8354) | skilchen | 2018-07-19 | 1 | -2/+3 |
| | |||||
* | fix #7405 and #8195 (#8198) | Timothee Cour | 2018-07-16 | 1 | -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 switch | Andreas Rumpf | 2018-07-04 | 1 | -6/+1 |
| | |||||
* | Minor changes to discardable handling (#8155) | LemonBoy | 2018-07-01 | 1 | -13/+0 |
| | |||||
* | fix #8129 by calling `semExpr` in `semIs` if node is `strLit` (#8130) | Vindaar | 2018-06-29 | 1 | -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-reforms | Andreas Rumpf | 2018-06-26 | 1 | -2/+2 |
|\ | |||||
| * | More concept fixes | LemonBoy | 2018-06-24 | 1 | -2/+2 |
| | | | | | | | | Fixes #7705, #7703, #7702 | ||||
* | | requested pull-request changes | Zahary Karadjov | 2018-06-16 | 1 | -0/+1 |
| | | |||||
* | | fix some breakage after rebasing | Zahary Karadjov | 2018-06-16 | 1 | -1/+1 |
| | | |||||
* | | fixes #7222; fixes #5595; fixes #3747 | Zahary Karadjov | 2018-06-16 | 1 | -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 classes | Zahary Karadjov | 2018-06-16 | 1 | -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 syntax | Zahary Karadjov | 2018-06-16 | 1 | -6/+33 |
|/ | |||||
* | implements a --nep1:on switch to make the compiler enforce the naming ↵ | Andreas Rumpf | 2018-06-13 | 1 | -1/+1 |
| | | | | conventions outlined in NEP-1 | ||||
* | Fixes #6803 | Yuriy Glukhov | 2018-06-11 | 1 | -0/+3 |
| | |||||
* | fixes yet another merge conflict | Araq | 2018-06-11 | 1 | -2/+0 |
|\ | |||||
| * | Merge pull request #8009 from yglukhov/remove-oldIterTransf | Andreas Rumpf | 2018-06-11 | 1 | -2/+0 |
| |\ | | | | | | | Removed oldIterTranf feature | ||||
| | * | Removed oldIterTranf feature | Yuriy Glukhov | 2018-06-10 | 1 | -2/+0 |
| | | | |||||
* | | | fixes merge conflict | Araq | 2018-06-11 | 1 | -4/+2 |
|\| | | |||||
| * | | fix #7997 | Vindaar | 2018-06-10 | 1 | -4/+2 |
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes issue #7997, which was caused by an export of a `release` proc in `locks`. Thus the `release` in `defined(release)` of the `ifDebug` template, was of kind `nkSym` instead of `nkIdent`. We fix this by getting the `PIdent` of the argument to `defined` using `considerQuotedIdent`. This has the nice property of also checking for a valid identifier for us. E.g. `defined(123)` would fail with ``` Error: in expression 'defined(123)': identifier expected, but found '123' ``` The `localError` is removed, due to a clear distinction between `declared` and `defined` now. | ||||
* | | fixex merge conflicts | Araq | 2018-06-08 | 1 | -1/+1 |
|\| | |||||
| * | Merge branch 'devel' into yield-in-try | Yuriy Glukhov | 2018-05-15 | 1 | -231/+238 |
| |\ | |||||
| * | | Yield in try | Yuriy Glukhov | 2018-05-09 | 1 | -1/+1 |
| | | | |||||
* | | | incremental compilation: implemented basic replay logic | Andreas Rumpf | 2018-06-02 | 1 | -3/+3 |
| | | | |||||
* | | | refactoring: remove idents.legacy global variable and pass the IdentCache ↵ | Andreas Rumpf | 2018-05-27 | 1 | -18/+18 |
| | | | | | | | | | | | | around explicitly | ||||
* | | | remove more global variables in the Nim compiler | Andreas Rumpf | 2018-05-27 | 1 | -10/+10 |
| | | | |||||
* | | | make semantic checking free of globals | Andreas Rumpf | 2018-05-18 | 1 | -2/+2 |
| | | | |||||
* | | | platform.nim doesn't use globals anymore; prepare msgs.nim for not using globals | Andreas Rumpf | 2018-05-18 | 1 | -7/+7 |
| | | | |||||
* | | | preparations of making compiler/msgs.nim free of global variables | Andreas Rumpf | 2018-05-17 | 1 | -1/+1 |
| | | | |||||
* | | | remove ast.emptyNode global; cleanup configuration.nim | Araq | 2018-05-16 | 1 | -13/+16 |
| |/ |/| | |||||
* | | fixes testament compilation | Araq | 2018-05-14 | 1 | -5/+28 |
|\| | |||||
| * | implement the export/except statement | Zahary Karadjov | 2018-05-07 | 1 | -2/+21 |
| | | |||||
| * | A motivating example for the new `bindSym` behavior. | Zahary Karadjov | 2018-05-07 | 1 | -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 Karadjov | 2018-05-07 | 1 | -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 anymore | Andreas Rumpf | 2018-05-13 | 1 | -6/+6 |
| | | |||||
* | | make nimsuggest compile again | Andreas Rumpf | 2018-05-13 | 1 | -1/+1 |
| | | |||||
* | | sem pass compiles again | Andreas Rumpf | 2018-05-12 | 1 | -144/+151 |
| | | |||||
* | | semstmts compiles again | Andreas Rumpf | 2018-05-12 | 1 | -3/+3 |
| | | |||||
* | | more modules compile again | Andreas Rumpf | 2018-05-12 | 1 | -107/+107 |
|/ |