Zahary Karadjov
b2aa70c6ef
fix #1018
...
Previously, generic types originating from the same body symbol were compared
structurally. The bug illustrates a case, where such a comparison is not correct.
The new approach follows the established method used in typeRel.
2014-03-20 22:27:49 +02:00
Zahary Karadjov
4b7655fd10
reference implementation of a vector swizzle library
...
This also provides the initial steps towards support for type class "filtered" type inference
fixes an "ordinal type expected" ICE, related to the use of static params
2014-03-20 01:16:50 +02:00
Zahary Karadjov
f0953db3ba
handle arbitrary expressions dependent on static input params in proc signatures
2014-03-16 20:42:06 +02:00
Zahary Karadjov
862c0ef83d
split the inline and closure iterators into different symbol kinds for easier discrimination between them
2014-03-06 21:57:35 +02:00
Araq
ed5bbfe36d
fixes #968
2014-03-04 08:31:11 +01:00
Araq
4c26c3a428
bugfix: typo
2014-02-25 00:40:21 +01:00
Zahary Karadjov
9dd753f218
quite messy implementation of generic lambdas, needs reworking; fixes #715
2014-02-17 03:03:17 +02:00
Zahary Karadjov
f701ee086a
Merge branch 'devel' of gh:/Araq/Nimrod into devel
2014-02-15 20:46:54 +02:00
Zahary Karadjov
c1f1f84194
fix some regressions caused by tyTypeDesc[tyNone]
2014-02-15 20:44:01 +02:00
Araq
d142824d65
made 'koch web' work when current dir has a space in it
2014-02-15 02:27:49 +01:00
Araq
d912d18379
tyTypeDesc and tyRange always have 1 child; this might be tyNone but it is required for skipTypes
2014-02-05 23:43:13 +01:00
Araq
99352c1e4c
macro tests almost green
2014-02-03 17:35:03 +01:00
Dominik Picheta
92f7c479b9
Fixes #848 .
2014-01-27 17:48:39 +00:00
Zahary Karadjov
3f71b7f1f6
implements #766 ;
...
expressions such as Type.field are now recognised by the compiler.
This also fixes a bug, preventing the user-defined to check for the presence of
regular fields in addition to procs
2014-01-24 23:52:52 +02:00
Zahary Karadjov
a6a18be089
support for parametric user-defined type classes
2014-01-24 14:13:32 +02:00
Araq
73c6efdf66
'nil' as a statement is deprecated, use an empty 'discard' instead
2014-01-19 16:54:59 +01:00
Zahary Karadjov
1ffae7cbaf
progress towards fixing tgenericshardcases
2014-01-06 00:15:55 +02:00
Zahary Karadjov
789ba107cf
introduce tyFromExpr; fixes #618
2014-01-04 13:10:52 +02:00
Zahary Karadjov
8f3d5a25a6
Templates will pick the candidate in the nearest scope when symbols are mixed-in
2013-12-31 04:04:59 +02:00
Zahary Karadjov
754e2ef1db
migrate the static param handling to ReplaceTypeVars; fix tgenericvariant
2013-12-30 19:15:41 +02:00
Zahary Karadjov
7e24cf26de
handle recursive types during the instantiation of meta types; propagate tfHasMeta more carefully
2013-12-30 16:06:32 +02:00
Zahary Karadjov
e3f53409f6
proc redefinition search based on the type system instead of on sloppy AST matching
...
This will work the same for procs/templates/macros/etc, having arbitrary mix of implicit
and explicit generics (as long as the symbols are equivalent for the purposes of overload
resolution, they will be detected as redefinitions)
fixes tgeneric
2013-12-30 10:57:12 +02:00
Zahary Karadjov
afddae5aaf
Merge branch 'upstream' into devel
...
Conflicts:
compiler/ccgutils.nim
compiler/msgs.nim
compiler/sem.nim
compiler/semexprs.nim
compiler/seminst.nim
compiler/semmagic.nim
compiler/semstmts.nim
compiler/semtypes.nim
compiler/semtypinst.nim
compiler/sigmatch.nim
compiler/types.nim
compiler/vmgen.nim
lib/core/macros.nim
lib/system.nim
tests/reject/tenummix.nim
web/news.txt
2013-12-29 17:21:00 +02:00
Zahary Karadjov
72291875bf
integrate the logic of fixupProcType into ReplaceTypeVars
2013-12-29 16:08:33 +02:00
Araq
b731e6ef1c
case consistency: cs:partial bootstraps on windows
2013-12-29 03:19:10 +01:00
Araq
438703f59e
case consistency: next steps
2013-12-29 01:13:51 +01:00
Zahary Karadjov
f34ca1a7d7
fix illegal recursion checks
2013-12-28 14:17:36 +02:00
Zahary Karadjov
a59f13b00d
lift generic parameters from concrete composite type classes
2013-12-28 12:50:45 +02:00
Araq
92b8fac94a
case consistency part 4
2013-12-27 23:10:36 +01:00
Zahary Karadjov
a27eb51535
towards support for composite type classes such as seq[Number] and SquareMatrix[T]
2013-12-27 18:34:28 +02:00
Araq
a427648c48
case consistency part 2
2013-12-27 16:35:21 +01:00
Araq
2df9b442c6
case consistency part 1
2013-12-27 15:48:53 +01:00
Zahary Karadjov
edab4aaad0
better integration of tyStatic into typeRel
2013-12-25 22:29:44 +02:00
Zahary Karadjov
1d02f2ea53
wip type class reforms (the compiler bootstraps fine)
...
* replace tfAny and tfAll with tyAnd and tyOr
* integrate matchTypeClass into typeRel
* introduce tyBuiltInTypeClass to handle types such as tuple, object, proc, etc
2013-12-25 19:25:04 +02:00
Zahary Karadjov
027f30610e
static params: expr[T] is now static[T]
...
This introduces tyStatic and successfully bootstraps and handles
few simple test cases. Static params within macros are no longer
treated as PNimrodNodes - they are now equivalent to constants
of the designated type.
2013-12-19 01:06:38 +02:00
Zahary Karadjov
de3b7cd413
progress towards adding negative type classes
...
[unittest bugfixes]
the block form of check now allows comments
errors when inspecting the arguments of var-accepting procs
2013-12-09 00:09:03 +02:00
Mark Flamer
f8206cb357
better better fix for Issue #629 Recursive generic types not working
2013-10-30 16:09:00 -07:00
Mark Flamer
4330c986db
better fix for Issue #629 Recursive generic types not working
2013-10-29 20:48:40 -07:00
Mark Flamer
9df232911c
fix for Issue #629 Recursive generic types not working
2013-10-25 19:04:14 -07:00
Mark Flamer
b27aae4bf9
more whitespace removal
2013-10-21 21:36:53 -07:00
Mark Flamer
129e72de70
remove extra white space
2013-10-21 21:33:34 -07:00
Mark Flamer
01e43fbe83
fix for Issue #626 - Distinct and generics not working together
2013-10-21 11:43:41 -07:00
Zahary Karadjov
6082595e96
Merge branch 'type-classes' into upstream
2013-09-03 03:14:56 +03:00
Araq
7056ceda67
float64 is now an alias to 'float'; fixes #545
2013-08-30 12:24:54 +02:00
Zahary Karadjov
28d9398de7
implemented delegators and improved the error messages of unmatched type classes
2013-08-26 23:29:24 +03:00
Zahary Karadjov
ca3a4ce672
hacky fix for generic constraints matching
2013-08-19 01:48:25 +03:00
Zahary Karadjov
19eeb3556e
remerge "allow void as field type"
2013-08-19 01:29:01 +03:00
Zahary Karadjov
dfb5cb3c5d
remerge "Fixes #267 "
2013-08-19 01:26:37 +03:00
Araq
3e0899359b
new evaluation engine: next steps
2013-07-25 08:37:37 +02:00
Araq
b1d4dfa6b1
fixes #544
2013-07-24 22:32:09 +02:00