Commit Graph

10491 Commits

Author SHA1 Message Date
Zahary Karadjov
d6d548c32f carefully reviewed and merged the changes from the devel branch 2017-03-24 17:03:55 +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
Zahary Karadjov
52b241fd57 new type traits: GenericHead and StripGenericParams 2017-03-24 16:59:47 +02:00
Zahary Karadjov
fe48dd1cbe further improvements to the error messages produced by concepts 2017-03-24 16:59:47 +02:00
Zahary Karadjov
9e9b289fc5 when displaying proc signatures, don't render the implicit generic params 2017-03-24 16:59:47 +02:00
Zahary Karadjov
74a80988d9 proper error reporting for concepts and the introduction of the {.explain.} pragma 2017-03-24 16:59:47 +02:00
Zahary Karadjov
644d645ea7 implement the special treatment of explicit type params in concepts 2017-03-24 16:58:15 +02:00
Zahary Karadjov
0f2c4be129 infer static parameters even when more complicated arithmetic is involved 2017-03-24 16:58:15 +02:00
Zahary Karadjov
0b0a3e5f20 support derived values in non-generic user type classes 2017-03-24 16:58:15 +02:00
Zahary Karadjov
77a4512ae8 some revisions to the Concepts and VTable types specs 2017-03-24 16:58:15 +02:00
Zahary Karadjov
a90c4c4d7e kill the reportConceptFailures options as it will be replaced by the .explain. pragma 2017-03-24 16:58:15 +02:00
Zahary Karadjov
19918ad96f future manual additions for the full concept spec I'm aiming to implement 2017-03-24 16:58:15 +02:00
Zahary Karadjov
76c663f692 support for inferring static[T] concept params 2017-03-24 16:58:15 +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
Zahary Karadjov
815724db71 support the full range of type modifiers when declaring concept vars and testing proc signatures 2017-03-24 16:58:15 +02:00
Zahary Karadjov
0a9a878bd3 support for matching generic types' procs in generic concepts 2017-03-24 16:58:15 +02:00
Zahary Karadjov
33f4e69759 support for accessing types and consts defined in concepts with the dot operator 2017-03-24 16:58:15 +02:00
Zahary Karadjov
eab1d0cc02 support for accessing the inferred concept type params with the dot operator 2017-03-24 16:58:15 +02:00
Zahary Karadjov
66e0f0e19c concept type params inference working in basic examples 2017-03-24 16:58:15 +02:00
Andreas Rumpf
0d8a503e45 fixes #5597; wrong eager template instantiation in generic context (#5601) 2017-03-24 07:35:12 +01:00
Dmitriy Fomichev
268a1f7cfd Deques compilation error fix (#5591) 2017-03-24 00:09:51 +01:00
Arne Döring
d4b4cad4ea Added few documentation lines for the unsafeAddr operator. (#5362) 2017-03-23 23:49:07 +01:00
Anatoly Galiulin
434a7c8426 Fix posix version of moveFile between different filesystems (#5580) 2017-03-23 23:40:03 +01:00
andri lim
568c954062 fixes #5241, fixes #5411 inherit from specialized generic typeRel problem (#5573) 2017-03-23 23:39:29 +01:00
Dominik Picheta
0cad2896ae Implement asyncfile.readToStream. 2017-03-23 21:34:53 +01:00
Dominik Picheta
f2ca6021dc Implement requestAnimationFrame and cancelAnimationFrame in dom module. 2017-03-23 21:34:32 +01:00
Dominik Picheta
d221e6a35c Improve os.getFileSize documentation to specify the unit. 2017-03-23 21:34:03 +01:00
def
ab31b776ef Fix typo 2017-03-23 21:29:10 +01:00
Araq
93f0f1c6e4 fixes #5598 2017-03-23 16:43:21 +01:00
Eugene Kabanov
254fbcc548 Fixes #4719. (#5585) 2017-03-23 16:13:38 +01:00
Emery Hemingway
d508303fad fix empty link file list during external compilation (#5577) 2017-03-23 13:27:16 +01:00
zah
be174fc3c7 Fix generic forward declarations; fixes #4104; fixes #4908 (#5566) 2017-03-23 12:40:57 +01:00
andri lim
70237e1fdd fix taliasinequality test case (#5587) 2017-03-22 08:40:15 +01:00
Ruslan Mustakov
310b73b556 Reduce the scope of stackTrace var (#5583)
Fixes #5571.
2017-03-22 01:06:05 +01:00
jlp765
c8954b2b34 tut1.rst: Slices indices explanation (#5569) 2017-03-22 01:04:37 +01:00
Araq
c9b86ebce8 koch: cleanup its help output, remove cruft 2017-03-21 13:17:23 +01:00
Araq
3962c6339f nimsuggest: die with a project dir/file that doesn't exist 2017-03-21 13:09:57 +01:00
Araq
e01d2244e4 make semObjConstr robust for nimsuggest 2017-03-21 13:02:38 +01:00
Araq
d862d22723 koch: vcc is also built with 'koch tools' 2017-03-21 12:04:14 +01:00
Eugene Kabanov
8310d252c2 Update testament to include all tests from tests/threads category. (#5576) 2017-03-20 20:20:26 +01:00
Andreas Rumpf
2d0ee2c8ab mark symbols in getAst context as used 2017-03-20 11:44:58 +01:00
Andreas Rumpf
ca673ab1af add test case for getAst regression 2017-03-20 10:56:15 +01:00
Andreas Rumpf
a6b0af539b revert getAst handling to not use overloading resolution 2017-03-20 10:56:15 +01:00
Andreas Rumpf
01b2728ec8 fixes a potential endless loop 2017-03-20 10:56:15 +01:00
Andreas Rumpf
3fafd546d5 nimsuggest: prefixes of abbreviations don't count 2017-03-20 10:56:15 +01:00
jcosborn
3bffb3ba35 fix getTypeImpl for tyEnum (#5568)
* fixed getTypeImpl for tyEnum
* fixed getType for enum and updated release notes about change
2017-03-19 20:34:27 +01:00
zah
1d6018726e fix #5296 (#5565) 2017-03-19 20:33:21 +01:00
Eugene Kabanov
e20af5cec6 Fix #4972. (#5567) 2017-03-19 07:16:13 +01:00
Araq
156bd29c68 update news.rst about the breaking changes 2017-03-18 21:13:27 +01:00
Ryan Gonzalez
244bf68fb0 Fix #5550 (#5553) 2017-03-18 21:05:12 +01:00