Commit Graph

176 Commits

Author SHA1 Message Date
Adam Strzelecki
167acf4530 typeToString: Fix shared/not nil on complex types
Previously `not nil` flag was not shown on `cstring or nil` or `PType not nil`,
where `type PType = ref Type`, eg. when showing compiler diagnostics.
2015-09-06 20:17:06 +02:00
Araq
cabbcd411d implements varargs[untyped]; refs #2545; to be documented 2015-07-02 16:18:11 +02:00
Araq
6d05ae26e6 fixes regression caused by code cleanups 2015-04-29 22:24:50 +02:00
Araq
26eae7d00e fixes #2470, fixes #1354 2015-04-28 20:21:53 +02:00
Araq
248dc42aa5 fixes #2520 2015-04-21 08:17:40 +02:00
Araq
5d63ecb3a4 implemented a[^1] notation 2015-03-26 02:12:38 +01:00
Araq
e7d7097919 fixes #1787 2015-03-22 10:47:07 +01:00
Araq
a541be8935 prepare for upcoming parsing change of unary operators 2015-03-22 09:31:15 +01:00
Araq
0d804c2052 fixes #2266 2015-03-22 01:38:14 +01:00
Andreas Rumpf
df0473d754 Merge pull request #2239 from Maxdamantus/devel
interpret `tuple` as a class and `tuple[]` as the empty tuple, enable syntax for anonymous tuples
2015-03-07 17:35:14 +01:00
Araq
4d8cd34c9e fixes #794 2015-03-07 15:43:35 +01:00
Max Zerzouri
dba25d2622 enable syntax for anonymous tuples.
Turns out to be slightly problematic as `(int, int)` could be logically
thought of as an expression evaluating to a tuple value containing
two typedesc[int]s.

To disambiguate, the zero-tuple's type must still be written as
`tuple[]`, and what would be tuple value expressions containing only
typedescs are interpreted as types.

() # value of type `tuple[]`
(int, int) # tuple type
(int, int, ()) # value of type `(typedesc[int], typedesc[int], tuple[])`
2015-03-06 12:23:31 +13:00
Araq
3adcad1b5d fixes #2250 2015-03-05 11:17:14 +01:00
Varriount
3a8455fd8f Allow ranges with unsigned integer ordinals to be used as parameter types for procedures. 2015-02-21 02:45:06 -05:00
Araq
540f66cb09 fixes #2167 2015-02-20 20:01:23 +01:00
Araq
2bdd0bbaa9 make huge.nim urhonimo example compile 2015-02-18 15:14:10 +01:00
Federico Ceratto
657dca5c3b Fix typos 2015-02-15 16:20:32 +00:00
Federico Ceratto
c95f6f117a Fix typos 2015-02-15 16:06:06 +00:00
Araq
ecd0dea091 tables work in 'const' sections; echo supports 'nil' strings; minor cleanups 2015-02-09 00:08:55 +01:00
Araq
5ae8689b63 better error message for 'invalid type' 2015-01-23 00:36:56 +01:00
Araq
abb738146a revert to old behaviour: tuple field names are not ignored anymore; fixes #1920 2015-01-18 02:33:44 +01:00
Araq
33c587d06b patterns for 'importcpp' (still undocumented) 2015-01-14 13:57:59 +01:00
Zahary Karadjov
1b54c55b7b prettier type name printing for generic types featuring static parameters 2014-12-31 03:50:50 +02:00
Araq
c0cc62c6b1 tuple field names are ignored 2014-12-23 17:54:22 +01:00
Araq
0e439ce367 implements #78 2014-10-26 22:48:54 +01:00
Araq
7a48942719 nicer error messages (untested) 2014-10-26 19:54:43 +01:00
Araq
595cc93762 recursive tuple types are now invalid (breaking change) 2014-10-02 16:54:05 +02:00
Araq
279e897eab bugfix: 'T = ref T' is an illegal recursive type 2014-10-02 16:15:16 +02:00
Araq
e9dec2feed better lock level handling 2014-10-02 02:33:14 +02:00
Araq
7916b1f9aa implemented 'guard' annotation 2014-09-21 18:39:00 +02:00
Araq
02c076f9b4 more robust for nim check 2014-09-17 23:13:38 +02:00
Zahary Karadjov
7d5e387a48 mostly fixes #1339
The compiler hangs were caused by the interaction of tyError and the instantiation caches.
For procs, the cache wasn't able to find previously compiled proc featuring tyError in the signature.
For types, the unresolved type parameters leading to tyError were not replaced everywhere leading
to endless replaceTypeVarsT recursion for cyclic types.

The fix is still not perfect, because the handling of tyError in other places in the compiler doesn't seem
to be complete and the first test case now results in internal error (still, much better than a hang blocking
your IDE).
2014-09-05 01:02:46 +03:00
Araq
5946747970 updated the compiler to use the new symbol names 2014-08-28 23:48:42 +02:00
Araq
2781fea9e2 Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
Araq
2f43fdb837 renamefest 2014-08-23 01:43:49 +02:00
Simon Hafner
3f0c3ab6cf added bug number to comment 2014-08-20 21:16:06 +02:00
Araq
ebe313e627 fixes #1334 2014-08-19 22:35:16 +02:00
Araq
1deb9820f5 fixes #1420 2014-08-19 20:28:51 +02:00
Araq
32a5d4baf0 fixes #1442 2014-08-13 02:53:00 +02:00
Clay Sweetser
912ad820ee Fixed #1090 2014-06-15 20:01:48 -04:00
Clay Sweetser
ca1c516295 Fixing issue #1090 2014-06-15 14:56:39 -04:00
Araq
be6474af63 removed flawed thread analysis pass 2014-04-20 14:00:04 +02:00
Araq
c80d563afb actors compile again 2014-04-20 12:10:23 +02:00
Araq
4196757de7 implemented region pointers 2014-04-09 00:33:51 +02:00
Araq
62a10df765 fixes yet another option type 2014-04-03 07:54:58 +02:00
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