summary refs log tree commit diff stats
path: root/compiler/sigmatch.nim
Commit message (Collapse)AuthorAgeFilesLines
* fixes #6073Andreas Rumpf2017-11-181-1/+1
|
* Fix compiler crash (#6773) (#6774)cooldome2017-11-181-1/+1
|
* concepts: fixes the stack overflow that happens for #6691Andreas Rumpf2017-11-051-1/+2
|
* make range type checking more restrictive, see tn8vsint16 test case; minor ↵Andreas Rumpf2017-11-011-1/+10
| | | | breaking change
* made nimresolve part of the compilerAndreas Rumpf2017-10-291-1/+1
|
* deprecated unary '<'Andreas Rumpf2017-10-291-8/+8
|
* fixes #6526Araq2017-10-271-10/+14
|
* destructors: supportsCopyMem finally works for recursive typesAraq2017-10-261-1/+2
|
* preparations for another bugfixAndreas Rumpf2017-10-191-1/+12
|
* breaking change: arrays of char do not convert to cstring; ptr to array of ↵Andreas Rumpf2017-10-101-6/+7
| | | | char does
* some work to make 'opt' a first class typeAndreas Rumpf2017-09-241-1/+1
|
* first implementation of the 'func' keywordAndreas Rumpf2017-09-231-4/+4
|
* fix #5918Zahary Karadjov2017-08-191-1/+3
|
* Fix #5084Zahary Karadjov2017-06-201-3/+6
|
* Fix #4737Zahary Karadjov2017-06-201-3/+6
|
* Fix #5127Zahary Karadjov2017-06-201-5/+6
|
* fix #1017; fix #3309Zahary Karadjov2017-06-201-0/+6
|
* fix #2730; fix #4880Zahary Karadjov2017-06-201-0/+7
|
* fix #5017; fix #5893Zahary Karadjov2017-06-201-1/+3
|
* fix #5864Zahary Karadjov2017-06-201-0/+2
|
* add a useful helper for debugging typeRel problemsZahary Karadjov2017-06-201-4/+26
|
* introduce a pre-processing pass for the concept bodiesZahary Karadjov2017-06-201-36/+22
| | | | | | | fixes #4982 fixes #3805 close #3414
* fix #5890Zahary Karadjov2017-06-201-1/+2
|
* cleanup of in/out covariance handlingAndreas Rumpf2017-05-171-6/+6
|
* enforce the covariance rules for user-defined generic typesZahary Karadjov2017-05-131-4/+4
|
* covariance for arrays and sequencesZahary Karadjov2017-05-121-12/+40
|
* doh, forgot to add all files in the previous commitZahary Karadjov2017-05-121-12/+58
|
* a simple way to simulate covariance in generic typesZahary Karadjov2017-04-281-1/+6
|
* fix a regrsesion in signature matching of derived ptr typesZahary Karadjov2017-04-181-3/+5
|
* Restore the compilation of linalg by tweaking the complex disambiguation rulesZahary Karadjov2017-04-161-10/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is a potentially breaking change, but the problem was that linalg was relying on a previous bug in the compiler, which was fixed in the concepts branch. With the old disambiguation rules, generic procs like: proc \`==\`[T](lhs, rhs: T) and proc \`==\`(lhs, rhs: Matrix32|Matrix64) .. were considered equal, even though it's obvious that the second one should be preferred. We never noticed this, because there was a bug in sigmatch incorrectly counting one of the params of the second proc as a non-generic match, thus giving it an edge. This commit gives some preference to tyOr and tyAnd during the complex disambiguation, which may affect overload resolution in other cases. I see this only as a temporary solution. With my upcoming work on concept refinement, I plan to provide an experimental implementation of alaternative C++-like rules for determining which proc is more specific. We can then discuss our strategy for dealing with such a breaking change.
* fix regression in tmatrixconceptZahary Karadjov2017-04-161-0/+4
|
* fix a compilation error in linalgZahary Karadjov2017-04-161-25/+23
|
* fix #5689Zahary Karadjov2017-04-151-8/+10
|
* fix #5683Zahary Karadjov2017-04-141-6/+9
|
* lift parameter-less do block to lambdasZahary Karadjov2017-04-101-1/+12
|
* fix the do notation when used with procsZahary Karadjov2017-04-091-0/+3
|
* fix #5643; fix #5644Zahary Karadjov2017-04-081-2/+3
|
* Restore the Nim's 0.14 proper handling of generic aliasesZahary Karadjov2017-04-081-20/+67
| | | | | | | | | | | 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
* attempt to fix #5632 typedesc typeRel regression (#5634)andri lim2017-03-311-1/+1
|
* requested code review changesZahary Karadjov2017-03-291-12/+12
|
* restore compilation and make all concepts tests greenZahary Karadjov2017-03-241-4/+4
|
* Working test cases for the sophisticated matrix library example from the manualZahary Karadjov2017-03-241-19/+27
| | | | | Fixed the dot operator when used within return types (see tgenericdotrettype) Fixed the matching of generic concepts aliases used with the implicit generics style
* further improvements to the error messages produced by conceptsZahary Karadjov2017-03-241-2/+7
|
* proper error reporting for concepts and the introduction of the {.explain.} ↵Zahary Karadjov2017-03-241-13/+45
| | | | pragma
* implement the special treatment of explicit type params in conceptsZahary Karadjov2017-03-241-1/+3
|
* infer static parameters even when more complicated arithmetic is involvedZahary Karadjov2017-03-241-29/+114
|
* support derived values in non-generic user type classesZahary Karadjov2017-03-241-14/+6
|
* support for inferring static[T] concept paramsZahary Karadjov2017-03-241-21/+25
|
* introduce tyInferred for the unbound concept type paramsZahary Karadjov2017-03-241-71/+80
| | | | | | | | | | | | | | | | | | * 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.
* support the full range of type modifiers when declaring concept vars and ↵Zahary Karadjov2017-03-241-10/+21
| | | | testing proc signatures