Commit graph

654 commits

Author SHA1 Message Date
Araq
bf01d7136e Merge branch 'Fixes-7845' of https://github.com/cooldome/Nim into cooldome-Fixes-7845 2018-10-15 11:50:12 +02:00
LemonBoy
33458894da Fix overload resolution for pragmas evaluation (#8902)
Fixes #6448
Fixes #4384
2018-10-09 19:58:23 +02:00
Dheepak Krishnamurthy
70018aa683 Add checks for except: body blocks (#9191) 2018-10-09 14:09:22 +02:00
Araq
40e01d8549 don't require an implementation for procs marked with .error; activate the move optimizer for destructors 2018-09-29 16:54:59 +02:00
Araq
787687727a fixes #9076 2018-09-26 11:32:02 +02:00
LemonBoy
4d9aec1858 Revert #7964
Somehow the test case doesn't crash anymore and the regression in the
doc generation is fixed.

Fixes #9019
2018-09-21 18:59:46 +02:00
Andreas Rumpf
539fc5d58b improve the error message for 'attempt to redefine X'; fixes #447 2018-09-17 19:54:56 +02:00
Andreas Rumpf
132eb31e32
Merge pull request #8949 from nim-lang/araq-for-loop-expressions
For loop expressions
2018-09-12 10:27:54 +02:00
LemonBoy
8670f4911b Fix semantic pass with borrowed magic procs (#8945)
Reported by pqflx3 on the forum.
2018-09-11 20:32:25 +02:00
Andreas Rumpf
84d122b5c8 extended system.type/typeof to support an upcoming 'collect' macro that works much better than sugar.lc 2018-09-11 19:02:05 +02:00
Andreas Rumpf
f7d1902043 fixes merge conflicts 2018-09-11 17:27:47 +02:00
Andreas Rumpf
dc67dd3bef fixes #8028 2018-09-03 01:35:45 +02:00
LemonBoy
b1c2416abd Validate pragmas attached to for variables (#8749)
Fixes #8741
2018-08-24 09:40:17 +02:00
Araq
64517445ea even more strict isNil handling for strings/seqs in order to detect bugs 2018-08-22 12:35:46 +02:00
Andreas Rumpf
696c0c48c7 fixes merge conflict 2018-08-19 15:14:03 +02:00
Andreas Rumpf
1061e26bc9 implements 'case statement macros' in order to encourage the development of pattern matching mechanisms that are not terrible to look at 2018-08-16 00:16:49 +02:00
Andreas Rumpf
da41fc1801 put the new for loop macros under an experimental switch named 'forLoopMacros' 2018-08-15 17:45:57 +02:00
Andreas Rumpf
dae5450947 WIP: disallow 'nil' for strings and seqs 2018-08-13 11:41:33 +02:00
Andreas Rumpf
ef4b755183 allows a destructor to be attached to a tyString/tySequence 2018-07-27 18:20:13 +02:00
Andreas Rumpf
32afdc09c6 WIP: strings/seqs based on destructors 2018-07-17 13:19:42 +02:00
Andreas Rumpf
db35ac435b code cleanup: remove newScopeForIf switch 2018-07-04 20:04:08 +02:00
LemonBoy
dbbe311e18 Minor changes to discardable handling (#8155) 2018-07-01 15:27:14 +02:00
cooldome
34170db963 Merge branch 'devel' into Fixes-7845 2018-06-26 23:33:34 +01:00
Andreas Rumpf
ccb1514837
Merge pull request #8108 from LemonBoy/fix-5958
Make `static` blocks introduce their own scope
2018-06-26 23:16:40 +02:00
Andreas Rumpf
7d437a3a74
Merge pull request #7964 from LemonBoy/fix-7936
Fixes #7936
2018-06-25 15:06:07 +02:00
LemonBoy
9543689306 Make static blocks introduce their own scope
Treat the static block as a normal block, don't leak any identifier in
the outer scope.

Fixes #5958
2018-06-24 18:27:40 +02:00
LemonBoy
7f0d7871ed Use the resolved typedesc in semVarOrLet
By leaving the unsemanticized node in the AST we'd trip some passes like
the Transf one as seen in #7936.
2018-06-23 13:40:11 +02:00
Yuriy Glukhov
951157a4e9 Fixed proto options 2018-06-15 12:54:59 +03:00
Yuriy Glukhov
466af35d4d Fixed stacktrace/linetrace proc pragmas when appended by macro pragma 2018-06-14 15:48:51 +03:00
Andreas Rumpf
5348fef003 implements a --nep1:on switch to make the compiler enforce the naming conventions outlined in NEP-1 2018-06-13 01:44:19 +02:00
Yuriy Glukhov
7e7b85afc7 Allow stacktrace and linetrace pragmas on procs 2018-06-12 12:31:14 +03:00
Andreas Rumpf
26133a33a4 make tests green properly 2018-06-11 07:18:34 +02:00
Andreas Rumpf
61d9292095 fixes merge conflict 2018-06-11 01:25:48 +02:00
Andreas Rumpf
61e1897922 make tests green again 2018-06-11 01:23:14 +02:00
cooldome
7302a8ce7a Fixes 7845 2018-06-10 22:49:09 +01:00
LemonBoy
03653ab61e Fix type inference with static literals.
Fixes #3977
2018-06-10 14:25:40 +03:00
Andreas Rumpf
9ab92824f6 AST change: keep nkStaticStmt in the AST for incremental compilation support 2018-06-03 20:16:29 +02:00
Andreas Rumpf
826c1e2d78 incremental compilation: implemented basic replay logic 2018-06-02 09:41:27 +02:00
Andreas Rumpf
40ec7be45c refactoring: remove idents.legacy global variable and pass the IdentCache around explicitly 2018-05-27 22:09:15 +02:00
Andreas Rumpf
dd8a6ef3a2 implements --hint[globalvar]:on switch for quickly finding global variables 2018-05-27 14:00:44 +02:00
Andreas Rumpf
669a564492 remove more global variables in the Nim compiler 2018-05-27 11:10:56 +02:00
Andreas Rumpf
feef109e60 make tests green again 2018-05-18 20:53:41 +02:00
Andreas Rumpf
f86ca02960 make semantic checking free of globals 2018-05-18 15:59:44 +02:00
Andreas Rumpf
a4e2b0c153 platform.nim doesn't use globals anymore; prepare msgs.nim for not using globals 2018-05-18 15:18:00 +02:00
Andreas Rumpf
bf6c2c5ccf preparations of making compiler/msgs.nim free of global variables 2018-05-17 15:21:22 +02:00
Araq
2a7fc84c86 remove ast.emptyNode global; cleanup configuration.nim 2018-05-16 03:06:07 +02:00
Araq
02b78d3f94 make tests green again 2018-05-14 21:38:18 +02:00
Araq
5526252fa0 fixes testament compilation 2018-05-14 17:45:44 +02:00
Andreas Rumpf
328e7a1005 options.nim: no global variables anymore 2018-05-13 17:52:21 +02:00
Andreas Rumpf
e4c088721a make nimsuggest compile again 2018-05-13 09:53:00 +02:00