LemonBoy
15584879b9
Properly wrap discarded statements ( #10322 )
...
Failing to do so lead the codegen to emit invalid code sometimes,
especially when C++ references were involved.
Fixes #10241
2019-01-17 07:55:29 +01:00
Neelesh Chandola
8922063bd8
typed/untyped return type is invalid for everything except templates and macros ( #10275 )
2019-01-15 08:08:12 +01:00
jcosborn
044cef152f
add custom pragma support for var and let symbols ( #9582 )
...
* add custom pragma support for var and let symbols
* updated changelog for custom pragmas on var and let symbols
* add oldast switch for backwards compatibility
2019-01-07 12:36:06 +01:00
Neelesh Chandola
7c5ae00887
exportc is now not allowed for type aliases ( #9979 )
2019-01-02 20:01:06 +01:00
Neelesh Chandola
9faad7591e
Deprecate gc v2 ( #10151 )
...
* Deprecate gc v2
* warnDeprecated now has custom messages
2019-01-01 13:50:48 +01:00
deech
e87910197a
Check there are no side effects before optimizing away compile time expressions. ( #9934 )
2018-12-31 14:41:24 +01:00
Neelesh Chandola
65a52ecebb
Fix const tuple unpacking not working for variables > 2 ( #10099 )
2018-12-27 00:50:33 +01:00
alaviss
58d293d6a9
fixes nim-lang/nimsuggest#76 ( #10093 )
...
* nimsuggest: prevent out-of-bound access
* fixes nim-lang/nimsuggest#76
* undo tester changes
2018-12-25 21:08:16 +01:00
Andreas Rumpf
3300c8a500
much simpler implementation of constant tuple declarations
2018-12-19 11:11:33 +01:00
Neelesh Chandola
8e90ed0618
Const tuple unpacking ( #9964 )
...
* tuple unpacking is now supported for consts
* Move nkConstTuple to the end of TNodeKind
* Add nnkConstTuple in macros.nim
* Fix Formatting
2018-12-19 10:52:41 +01:00
Andreas Rumpf
72500420d3
Fixes #3060 and adds error checking for invalid else branches in object variants ( #9957 )
...
* Fix semRecordCase
* Fix ftpclient.nim
* Check for ordinal type
* Check tyRange for exhaustiveness
2018-12-19 10:03:22 +01:00
Andreas Rumpf
e3a668a33b
--gc:destructors: baby steps
2018-12-15 13:54:41 +01:00
Andreas Rumpf
446f911a17
better error message for 'proc' that is not intended to be used as a typeclass
2018-12-15 09:09:46 +01:00
Neelesh Chandola
b2411db541
Merge remote-tracking branch 'upstream/devel' into record-case
2018-12-13 13:59:46 +05:30
Neelesh Chandola
a3c4791e9c
Give error when case has an else branch even though all cases are already covered ( #9930 )
...
* Give error when case has an else branch even though all cases are already covered.
* Don't check for invalid else for type tyFloat..tyFloat128, tyString, tyError
* Remove unnecessary else in unittest.nim
* Fix sockets.nim
2018-12-13 09:08:10 +01:00
Neelesh Chandola
1f1d7b1088
Fix semRecordCase
2018-12-13 12:11:56 +05:30
Andrii Riabushenko
df0f0f2858
custom pragmas in pragma blocks
2018-12-11 23:35:46 +00:00
Andreas Rumpf
606b43ba11
Merge pull request #9911 from nc-x/fixes-#9627
...
`include` now accepts collective arguments
2018-12-09 13:47:45 +01:00
Neelesh Chandola
9aa783624d
include now accepts collective arguments
2018-12-09 12:33:58 +05:30
Araq
e874705971
fixes nested gensym'ed parameters; fixes #9476
2018-12-08 13:30:06 +01:00
Araq
bc8cea2672
fixes #9614 [backport]
2018-12-05 19:49:37 +01:00
Timothee Cour
d502ddea9e
fix #9832 (fixup) ( #9859 )
2018-12-04 16:48:08 +01:00
Timothee Cour
05769020d3
fixes #9832 ( #9841 ) [backport]
2018-12-04 11:13:49 +01:00
Andreas Rumpf
413580bc04
new minor language feature: .noSideEffect blocks like .gcsafe blocks
2018-11-27 00:36:29 +01:00
Arne Döring
39ad3a0da6
fix #9726 ( #9765 )
2018-11-20 13:12:47 +01:00
Andreas Rumpf
6e8ed8c6fa
added first version of a nimfind tool for the poor souls that don't have a good nimsuggest integretation
2018-11-14 16:04:54 +01:00
Andreas Rumpf
8d850f7a69
deprecated ospaths ( #9665 )
2018-11-09 16:36:49 +01:00
Arne Döring
16353c2ac8
fix #8011
2018-11-08 22:28:29 +01:00
Araq
e844e536bf
Nim style checker: document the switch; fixes #9564
2018-10-30 15:03:28 +01:00
cooldome
eaca5be9d6
Change the order of compilation passes, transformation is made lazy at code gen ( #8489 )
...
* Ast no transformation
* Add getImplNoTransform to the macros module
* progress on delaying transf
* Fix methods tranformation
* Fix lazy lambdalifting
* fix create thread wrapper
* transform for lambda lifting
* improve getImplTransformed
* Fix destructor tests
* try to fix nimprof for linux
2018-10-18 20:21:25 +02:00
Araq
604dfebee0
disallow 'continue' that is not used within a loop; fixes #6367
2018-10-18 17:42:57 +02:00
Miran
675c629fee
replace deprecated safeAdd with add ( #9416 )
2018-10-18 12:29:32 +02:00
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