Commit graph

479 commits

Author SHA1 Message Date
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
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
Andreas Rumpf
050789a8f4 sem pass compiles again 2018-05-12 21:30:42 +02:00
Andreas Rumpf
dd35111ff2 semstmts compiles again 2018-05-12 19:45:19 +02:00
Andreas Rumpf
ce859d8c16 more modules compile again 2018-05-12 16:35:59 +02:00
Zahary Karadjov
2b8bf8fc4a A motivating example for the new bindSym behavior.
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)
2018-05-07 09:37:49 +02:00
Andreas Rumpf
b7116a28ee compiler refactoring, pass config around explicitly 2018-05-05 18:47:29 +02:00
Andreas Rumpf
1aa359febb warn about inconsistent spacing around binary operators; fixes #7582 2018-05-05 14:58:33 +02:00
Andreas Rumpf
5ac94d26b3 remove the deprecated 'nil' statement 2018-05-02 13:34:54 +02:00
Andreas Rumpf
ee7515e376 fixes #7663 2018-04-28 09:26:15 +02:00
Andreas Rumpf
f697596faf semcheck: code cleanups 2018-04-28 07:49:36 +02:00
Andreas Rumpf
f755808350 remove standalone 'except' and 'finally' statements that have been deprecated for years 2018-04-28 00:00:28 +02:00
Andreas Rumpf
c71c951a64 enforce dot and call operators are used with an explicit .experimental pragma 2018-04-27 09:57:20 +02:00
Andreas Rumpf
ee366f1746 .experimental can now be used to enable specific features 2018-04-24 09:34:29 +02:00
Andreas Rumpf
33b69f0ed0 refactoring: make FileIndex a distinct type; make line information an uint16; fixes #7654 2018-04-21 08:13:37 +02:00
Andreas Rumpf
cb03ae2c9f semstmts: fewer empty lines 2018-04-19 08:54:23 +02:00
Andreas Rumpf
c08efb4c51 implements first version of for-loop macros 2018-04-15 01:07:28 +02:00
RSDuck
3d1d163eff fixes #7451 (#7575) 2018-04-14 08:33:36 +02:00
Andreas Rumpf
47335aab41 introduce nkTupleConstr AST node for unary tuple construction; breaking change 2018-04-13 17:45:58 +02:00
Andreas Rumpf
ea8afebf8c 'func' is now an alias for 'proc .noSideEffect' 2018-04-12 20:09:44 +02:00
cooldome
16c1a90857 Cpp codegen: handling of imported exceptions. Fixes #3571 (#7360) 2018-04-10 12:14:59 +02:00
cooldome
63c28b973e Allow only single infix as in except branches. Fixes #7115 (#7132) 2018-03-08 10:56:32 +01:00
Andreas Rumpf
b35ee82c48 fixes #6992 2018-02-25 17:28:47 +01:00
cooldome
d24b6667c6 genTryCpp to catch by Nim type, ready for first review (#7196)
* Rewrite genTryCpp

* correction

* Implement polymorphic raise in cpp

* revert backticks in emit

* Cleanp a comment

* revert test changes

* better handling of <new> header
2018-02-12 21:23:34 +01:00
Araq
04af9d4051 fixes #3711 2018-02-12 18:45:39 +01:00
Andreas Rumpf
fa0f5d0238 fixes #6946 2018-02-05 21:21:22 +01:00