Commit Graph

112 Commits

Author SHA1 Message Date
LemonBoy
631a8ab57f Fix edge case in type hashing (#10601) [backport]
Empty types introduced by a template produced the same hash of the
"clean" type sharing the same name.
2019-02-08 09:56:32 +01:00
Miran
268197add8 properly deprecate parseopt2 (#10452) 2019-01-25 13:13:55 +01:00
Timothee Cour
6ce3949c8a add isNamedTuple; make $(1, 2) be (1, 2) instead of (Field0: 1, Field1: 2) which leaked implementation detail (#10070)
* add `isNamedTuple`; make $(1, 2) be (1, 2) instead of leaking implementation detail (Field0: 1, Field1: 2)
  fixes this: #8670 (comment) /cc @alehander42 @Vindaar @mratsim

* Note: isNamedTuple is useful in other places, eg #10010 (comment)

* move isNamedTuple to helpers.nim to avoid exposing new symbol to system.nim

* remove workaround in tests/vm/tissues.nim failing test now that #10218 was makes it work
2019-01-08 18:37:25 -08:00
cooldome
82c009a2cb Dead code elimination for entire modules and their init procs if empty (#10032)
* fixes #9798
* Change order of write modules
* Move datInit calls ahead of initStackBottom
2018-12-30 11:28:12 +01:00
Arne Döring
a5ecbf823f lots of small changes 2018-12-11 21:23:22 +01:00
Arne Döring
3859878db8 megatest checks output and nimout 2018-12-11 21:23:22 +01:00
Arne Döring
2a4c09ff88 megatest can be executed 2018-12-11 21:23:21 +01:00
Arne Döring
1105d03644 require errormsg to be specified before file. 2018-12-11 21:23:21 +01:00
Arne Döring
a29ec40032 join simple test 2018-11-23 11:58:32 +01:00
Arne Döring
031bfdec6f make run the default action of a test in tester 2018-11-23 11:58:28 +01:00
Araq
7ae6b7e9a2 make more tests green for C++; refs #7870 2018-10-30 16:52:33 +01:00
Araq
81e33b9d87 make thavlak and tmarkerproc_regression tests take fewer iterations in order to speedup the CIs 2018-10-17 13:20:45 +02:00
Miran
749dbce4c6 Merge tests into a larger file (part 5 of ∞) (#9368)
* merge magics

* merge metatype tests

* merge method tests

* merge objects tests

* change `import future` to `import sugar`

Nim in Action tests are left with `import future`, to ensure compatibility.

* merge overload tests

* merge proc tests

* merge procvar tests

* merge range tests

* merge seq tests

* merge sets tests

* remove wrong assert from `tsets3`

* fix `jsTests`

* better fix
2018-10-16 10:50:10 +02:00
cooldome
7a5b614edc fixes #9297 (#9298)
* fixes #9297

* improve spacing
2018-10-11 09:54:50 +02:00
LemonBoy
7775b7efd1 Fix wrong heuristic in codegen (#9293)
A bare return may trigger the insertion of a genericReset.

Fixes #9286
2018-10-11 08:36:05 +02:00
xzfc
505ae14f4b Codegen fix for procs taking type(nil) (#9231) 2018-10-09 14:51:34 +02:00
LemonBoy
a1083d7c43 Fix codegen for some set operations
Taking the LHS type when a temporary result value was needed lead to bad
code being generated if we get a tyRef.

Fixes #9098
2018-09-28 09:59:45 +02:00
Andreas Rumpf
179791aa9a Merge pull request #8746 from LemonBoy/nil-opts
nil strings are movable
2018-09-23 07:51:22 +02:00
LemonBoy
7a087ffb29 nil strings are movable 2018-09-22 20:47:49 +02:00
Andreas Rumpf
c661f8e1be Merge pull request #8983 from cooldome/codegen_crash
Fixes 8979
2018-09-18 09:36:16 +02:00
Andrii Riabushenko
acaf2b8e76 Fixes 8979 2018-09-16 21:33:21 +01:00
LemonBoy
6af6ca6351 Fix codegen for set[T] parameters
Sometimes sets are materialized as arrays and we must treat them as
such: the CPP backend is pickier than the C one and would sometimes
produce invalid code.

Fixes #8967
2018-09-15 11:55:11 +02:00
LemonBoy
839953c3e1 Fix hashing for codegenProc (sic) types
Since the name mangling is inhibited we should take the user-supplied
name during the sighash computation.

Fixes #8964
2018-09-14 15:37:51 +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
LemonBoy
e7d4043406 Always emit hti object types if needed (#8940)
The compiler is now smart enough to emit types only if needed without
all the importc tricks. This also fixes a codegen bug where, if all the
stars align correctly, typeinfo doesn't include any definition of
`TNimType` but uses it.

Found by @skilchen in #8938
2018-09-11 17:03:21 +02:00
LemonBoy
e81fe6d32f Allow wCodegenDecl on lambdas (#8892) 2018-09-07 01:58:49 +02:00
LemonBoy
4aba2981dd Codegen fix for function pointers marked inline (#8866)
Fixes #5345
Fixes #5701
2018-09-04 15:28:14 +02:00
Vindaar
52f03fabc1 fixes #8781 by appending "_U" instead of 'U' (#8787) 2018-08-27 08:35:07 +02:00
Araq
27f488e5d9 make more tests green; system.repr does not produce 'nil' for strings and seqs anymore 2018-08-22 15:37:57 +02:00
LemonBoy
c04404635b Fix unsound transform pass (#8633)
When a `var openArray[T]` function parameter goes trough the
`transformAddrDeref` pass we may lose the `var` specifier, leading to
nasty crashes at runtime.
2018-08-14 20:38:04 +02:00
LemonBoy
3cb963f114 Fixes 8616 (#8617)
* Don't leave dangling forward references to types

Fixes #8616

* Add a test case for #8616
2018-08-12 20:43:30 +02:00
cooldome
e2c2ae8e7e fixes #7392 (#7395) 2018-03-23 13:28:22 +01:00
cooldome
23230572e2 Fixes #7363 (#7371) 2018-03-20 11:14:47 +01:00
cooldome
70b28a39fe Codegen: use type forward declarations more aggresively. Fixes #7339 (#7340)
Do not emit object definition it if used only by ref or ptr
2018-03-16 16:21:03 +01:00
andri lim
4f9f9ea528 fixes #7332 (#7341) 2018-03-16 15:32:01 +01:00
Andreas Rumpf
358709e9cb fixes #6960 2018-02-11 13:55:56 +01:00
GULPF
94038545be Fixes codegen bug with literal negative zero, fixes #7079 (#7158)
* Fixes #7079

* Fix handling of neg zero during constant folding
2018-01-31 16:29:42 +01:00
Araq
a5e4d2f7a3 fixes #668 2017-12-15 11:21:49 +01:00
Fabian Keller
6df6ec27ec Improved collection-to-string behavior (#6825) 2017-12-14 14:02:13 +01:00
Andreas Rumpf
f70d967d2c fixes #6889 2017-12-08 23:31:06 +01:00
Araq
eae1aaa377 fixes another sighashes problem 2017-12-08 10:06:20 +01:00
Anatoly Galiulin
c343303efe Fix usage of parameters types in templates #6756 (#6768) 2017-11-29 01:34:30 +01:00
Andreas Rumpf
d072229975 fixes #6724 2017-11-19 00:37:36 +01:00
Andreas Rumpf
129a599cd6 fixes #6422 2017-10-26 12:23:37 +02:00
Andreas Rumpf
9485f1c888 make tests green again 2017-10-16 20:29:16 +02:00
Andreas Rumpf
920f4acadf fixes #6279 2017-08-29 00:33:46 +02:00
Andreas Rumpf
88b65ea957 fixes #6234 2017-08-11 20:14:44 +02:00
Arne Döring
000b8afd26 Remove expr/stmt (#5857) 2017-07-25 09:28:23 +02:00
zah
1d6018726e fix #5296 (#5565) 2017-03-19 20:33:21 +01:00
Araq
fb37d13f46 fixes #5439 2017-02-26 17:41:00 +01:00