Commit graph

40 commits

Author SHA1 Message Date
Andreas Rumpf
40ec7be45c refactoring: remove idents.legacy global variable and pass the IdentCache around explicitly 2018-05-27 22:09:15 +02:00
Andreas Rumpf
a4e2b0c153 platform.nim doesn't use globals anymore; prepare msgs.nim for not using globals 2018-05-18 15:18:00 +02:00
Araq
2a7fc84c86 remove ast.emptyNode global; cleanup configuration.nim 2018-05-16 03:06:07 +02:00
Andreas Rumpf
dd35111ff2 semstmts compiles again 2018-05-12 19:45:19 +02:00
Andreas Rumpf
ee366f1746 .experimental can now be used to enable specific features 2018-04-24 09:34:29 +02:00
Andreas Rumpf
e4081a7201 preparations for language extensions: 'sink' and 'lent' types 2018-01-07 23:09:26 +01:00
Andreas Rumpf
e695f9d94e make Nim compile with older nim versions 2017-12-28 19:48:21 +01:00
Araq
fa92c519aa more progress on destructors; removed old destructor based code as it proved confusing 2017-12-01 01:52:00 +01:00
Andreas Rumpf
70ea45cdba deprecated unary '<' 2017-10-29 08:37:13 +01:00
Araq
3aa7c2232e destructors: supportsCopyMem finally works for recursive types 2017-10-26 00:55:23 +02:00
Araq
4f2b79a380 topttree destructor finally works 2017-10-26 00:55:23 +02:00
Araq
b407f083ba destructors: work in progress 2017-10-26 00:55:23 +02:00
Andreas Rumpf
1a0032eb68 added broken tbintree test 2017-10-19 21:03:20 +02:00
Andreas Rumpf
4f633dde64 make nested custom seqs work 2017-10-19 13:29:11 +02:00
Andreas Rumpf
9911d375b3 make destructors more robust against unchecked arrays 2017-10-19 13:29:11 +02:00
Andreas Rumpf
35c8b5e3bc destructors: irresponsibly simple tcustomseq test works 2017-10-17 22:04:40 +02:00
Andreas Rumpf
58d5f96790 destructors: lift type bound ops to objects and arrays etc 2017-10-17 14:48:16 +02:00
Araq
45d74f4081 destructors: preparations for upcoming changes 2017-10-17 12:46:49 +02:00
Andreas Rumpf
8780d25e03 minor refactorings for better destructors 2017-10-14 20:37:49 +02:00
Andreas Rumpf
f7f3a25be8 first steps of making 'opt' a first class type for Nim 2017-09-25 13:19:36 +02:00
Andreas Rumpf
e879da5791 some work to make 'opt' a first class type 2017-09-24 11:21:52 +02:00
Zahary Karadjov
8cd5f1f8f5 introduce tyInferred for the unbound concept type params
* Why is tyInferred needed?

The bindings in TCandidate are capable of inferring types within a single
call expression. In concepts, we need to infer types in the same way, but
across the whole body of the concept.

Previously, once a concept type param was inferred, it was destructively
mutated using t.assignType, but this proved to be problematic in the presence
of overloads, because the bindings established while a non-matching overload
is tested must be reverted/forgotten. tyInferred offers a non-destructive way to
keep track of the inference progress.

While introducing new types usually requires a lot of code paths in the compiler
to updated, currently tyInferred is only a short-lived type within the concept body
pass and it's unlikely to introduce breakage elsewhere in the compiler.
2017-03-24 16:58:15 +02:00
Andreas Rumpf
b7a1cad4a4 make tests green again 2017-02-24 13:05:58 +01:00
Andreas Rumpf
46efaf294b big compiler refactoring; avoid globals for multi method dispatcher generation 2017-02-22 16:27:52 +01:00
Araq
e6c5622aa7 removed tyArrayConstr completely from the compiler; introduced tyAlias instead in preparation for further bugfixes 2016-11-14 23:18:30 +01:00
Jacek Sieka
f5c3eb6a25 clean up tyMutable remnants 2016-10-24 23:30:10 +08:00
Jacek Sieka
b3de34548d clean up tyConst remnants 2016-10-24 23:19:46 +08:00
Jacek Sieka
f488ed973d clean up tyBigNum remnants 2016-10-24 23:11:38 +08:00
Jacek Sieka
6f7b891bdc remove remnants of tyIter 2016-10-24 21:10:48 +08:00
Andreas Rumpf
3a13706d7d fixes #4673 2016-09-01 13:02:53 +02:00
Andreas Rumpf
b47d9b7b91 fixes #4371 2016-07-08 10:34:12 +02:00
Araq
05e39cf6ad overloading of '=' works 2015-04-06 23:21:52 +02:00
Araq
78f371c03a first implementation of overloading of '='; missing: rewriting let/var sections 2015-04-06 23:21:51 +02:00
Araq
e8b4217c3b minor todo update 2015-03-23 13:10:20 +01:00
Araq
3bcafb1c3a concept example from the manual now works again 2015-03-23 13:10:19 +01:00
Federico Ceratto
c95f6f117a Fix typos 2015-02-15 16:06:06 +00:00
Araq
fe30ec83e2 nimsuggest improvements 2015-01-30 03:04:45 +01:00
Guillaume Gelin
3119fe087d Happy new year! 2015-01-06 15:26:33 +01:00
Araq
c5dbcb548f improvements for nimfix 2014-09-10 09:48:18 +02:00
Araq
5946747970 updated the compiler to use the new symbol names 2014-08-28 23:48:42 +02:00