Zahary Karadjov
5f2cdcd4fa
fix #7653
2018-06-10 22:27:51 +03:00
LemonBoy
03653ab61e
Fix type inference with static literals.
...
Fixes #3977
2018-06-10 14:25:40 +03:00
Zahary Karadjov
7297613900
Bugfix: The compiler were not inserting proper downcasts for generic types
...
This resulted in a codegen error in C++ mode, because the generic
types were not defined in modules where calls requiring downcasts
were used (generating a downcast forces the inclusion of the full
definition of the involved types).
2018-05-07 09:37:49 +02:00
Andreas Rumpf
3dab0877da
fixes #7247
2018-02-23 11:42:19 +01:00
Araq
b57d14b1ae
make more tests green
2018-02-10 20:55:22 +01:00
Andreas Rumpf
bd1dfa4b38
better type inference for numerical types; prerequisitive for version 1
2018-02-02 09:29:05 +01:00
Fabian Keller
6df6ec27ec
Improved collection-to-string behavior ( #6825 )
2017-12-14 14:02:13 +01:00
Andreas Rumpf
1548743856
make tests green again
2017-11-18 23:03:16 +01:00
Arne Döring
000b8afd26
Remove expr/stmt ( #5857 )
2017-07-25 09:28:23 +02:00
Zahary Karadjov
491162d3c8
close #5106
2017-06-20 11:29:42 +02:00
Zahary Karadjov
9edf66df85
close #5756
2017-06-20 11:29:42 +02:00
Zahary Karadjov
f713e730c8
fix #5864
2017-06-20 11:29:42 +02:00
Zahary Karadjov
f0999de9dc
Fix #5962
...
During the instantiation of a generic type A, some other generic
type B may be instantiated multiple times with different parameters.
We can think about each instantiation as a function call that should
temporary bind the parameter names to concrete types. The problem
with the existing implementation in semtypinst was that it was
performing this binding within a shared global table. In this sense,
it was executing the code as a programming language featuring only
global variables. In such a language, re-entrant functions cannot be
defined properly and hence this was leading to problems with similar
types. The solution is simple - just like we need to introduce stack
frames to handle re-entrant functions, we introduce a stack of type
bindings that are pushed and popped during the generic instantiations.
2017-06-20 11:29:42 +02:00
Araq
4033929127
fixes tproctypecache_falsepositive.nim test case
2017-06-08 18:35:37 +02:00
Zahary Karadjov
2a34552596
fix 5756
2017-04-30 22:28:20 +03:00
Zahary Karadjov
5c678e2848
alternative fake covariance based on converters
2017-04-28 18:26:41 +03:00
Zahary Karadjov
72f42ff95f
more advanced fake covariance
2017-04-28 18:01:04 +03:00
Zahary Karadjov
c981284ddc
a simple way to simulate covariance in generic types
2017-04-28 17:40:57 +03:00
Zahary Karadjov
3e52bb6535
fix a regrsesion in signature matching of derived ptr types
2017-04-18 23:55:59 +03:00
Zahary Karadjov
dfbafff2e7
fix a compilation error in linalg
2017-04-16 02:44:58 +03:00
Zahary Karadjov
bf4ce87e5b
fix #5689
2017-04-15 02:53:28 +03:00
Zahary Karadjov
d578815963
fix #5683
2017-04-14 23:54:09 +03:00
Zahary Karadjov
03172bef6f
fix #5643 ; fix #5644
2017-04-08 23:42:42 +03:00
Zahary Karadjov
e9a3ffbc3d
Restore the Nim's 0.14 proper handling of generic aliases
...
A more efficient implementation is possible by restoring the old
lifting ot tyGenericInvocation to tyGenericInst in liftTypeParam,
but this fix will suffice for now.
fixes #5087
fixes #5602
fixes #5641
fixes #5570
2017-04-08 17:28:19 +03:00
andri lim
2f9a698e87
attempt to fix #5632 typedesc typeRel regression ( #5634 )
2017-03-31 21:58:26 +02:00
andri lim
fce4b7cd62
attempt to fix #5621 #5615 generic ref object typeRel ( #5633 )
2017-03-31 21:58:09 +02:00
Zahary Karadjov
cbf66e99a8
Working test cases for the sophisticated matrix library example from the manual
...
Fixed the dot operator when used within return types (see tgenericdotrettype)
Fixed the matching of generic concepts aliases used with the implicit generics style
2017-03-24 16:59:47 +02:00
Andreas Rumpf
0d8a503e45
fixes #5597 ; wrong eager template instantiation in generic context ( #5601 )
2017-03-24 07:35:12 +01:00
andri lim
568c954062
fixes #5241 , fixes #5411 inherit from specialized generic typeRel problem ( #5573 )
2017-03-23 23:39:29 +01:00
zah
be174fc3c7
Fix generic forward declarations; fixes #4104 ; fixes #4908 ( #5566 )
2017-03-23 12:40:57 +01:00
mfxmfx
8699372109
Correct the spelling of the word 'overridden'. ( #5212 )
2017-01-11 13:40:10 +01:00
Zahary Karadjov
bf612a7f19
fix #4884
2017-01-08 23:24:27 +02:00
Araq
49667798eb
further progress; more tests are green
2016-11-28 21:45:29 +01:00
Andreas Rumpf
d0ec83eaa8
fixes #4863
2016-10-19 19:28:27 +02:00
Andreas Rumpf
f6a2ff731b
fixes #4672
2016-09-01 13:02:53 +02:00
Andreas Rumpf
89f3e21fc8
fixes #4658
2016-08-26 13:02:52 +02:00
Andreas Rumpf
55e86184a5
fixes #4600
2016-08-23 01:29:30 +02:00
Andreas Rumpf
57b8664a0c
fixes #4589
2016-08-10 11:14:02 +02:00
Andreas Rumpf
09f122f68c
fixes #4528
2016-08-08 18:03:52 +02:00
Andreas Rumpf
24b72cebe7
make tests green again
2016-08-01 12:02:05 +02:00
Andreas Rumpf
089c31765f
fixes #3055
2016-07-08 20:11:59 +02:00
Anatoly Galiulin
764668d099
Fix generics inheritance issues
2016-06-23 18:37:14 +06:00
Andreas Rumpf
e52044660d
Merge branch 'patch/fix-3496-generic-tmpl-args' of https://github.com/nanoant/Nim into nanoant-patch/fix-3496-generic-tmpl-args
2016-05-29 23:58:25 +02:00
Andreas Rumpf
e04f319540
fixes #4084
2016-04-29 22:30:00 +02:00
Andreas Rumpf
e97d640ce8
fixes #3998
2016-03-28 02:26:38 +02:00
Andreas Rumpf
06d4131ce1
fixes #3669
2016-03-01 23:25:46 +01:00
Andreas Rumpf
c9966a3e17
use 'using' instead of 'sig' keyword; cleans up new features a bit
2016-02-29 12:19:54 +01:00
def
c50b5b62ef
Fix a few deprecation warnings
2016-01-25 19:10:37 +01:00
Andreas Rumpf
0d4e52c648
makes tests green
2016-01-15 14:44:54 +01:00
Andreas Rumpf
35b65e6f4e
Merge branch 'devel' into new-ll
2016-01-14 15:05:48 +01:00