Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | fixes #6073 | Andreas Rumpf | 2017-11-18 | 1 | -1/+1 |
| | |||||
* | Fix compiler crash (#6773) (#6774) | cooldome | 2017-11-18 | 1 | -1/+1 |
| | |||||
* | concepts: fixes the stack overflow that happens for #6691 | Andreas Rumpf | 2017-11-05 | 1 | -1/+2 |
| | |||||
* | make range type checking more restrictive, see tn8vsint16 test case; minor ↵ | Andreas Rumpf | 2017-11-01 | 1 | -1/+10 |
| | | | | breaking change | ||||
* | made nimresolve part of the compiler | Andreas Rumpf | 2017-10-29 | 1 | -1/+1 |
| | |||||
* | deprecated unary '<' | Andreas Rumpf | 2017-10-29 | 1 | -8/+8 |
| | |||||
* | fixes #6526 | Araq | 2017-10-27 | 1 | -10/+14 |
| | |||||
* | destructors: supportsCopyMem finally works for recursive types | Araq | 2017-10-26 | 1 | -1/+2 |
| | |||||
* | preparations for another bugfix | Andreas Rumpf | 2017-10-19 | 1 | -1/+12 |
| | |||||
* | breaking change: arrays of char do not convert to cstring; ptr to array of ↵ | Andreas Rumpf | 2017-10-10 | 1 | -6/+7 |
| | | | | char does | ||||
* | some work to make 'opt' a first class type | Andreas Rumpf | 2017-09-24 | 1 | -1/+1 |
| | |||||
* | first implementation of the 'func' keyword | Andreas Rumpf | 2017-09-23 | 1 | -4/+4 |
| | |||||
* | fix #5918 | Zahary Karadjov | 2017-08-19 | 1 | -1/+3 |
| | |||||
* | Fix #5084 | Zahary Karadjov | 2017-06-20 | 1 | -3/+6 |
| | |||||
* | Fix #4737 | Zahary Karadjov | 2017-06-20 | 1 | -3/+6 |
| | |||||
* | Fix #5127 | Zahary Karadjov | 2017-06-20 | 1 | -5/+6 |
| | |||||
* | fix #1017; fix #3309 | Zahary Karadjov | 2017-06-20 | 1 | -0/+6 |
| | |||||
* | fix #2730; fix #4880 | Zahary Karadjov | 2017-06-20 | 1 | -0/+7 |
| | |||||
* | fix #5017; fix #5893 | Zahary Karadjov | 2017-06-20 | 1 | -1/+3 |
| | |||||
* | fix #5864 | Zahary Karadjov | 2017-06-20 | 1 | -0/+2 |
| | |||||
* | add a useful helper for debugging typeRel problems | Zahary Karadjov | 2017-06-20 | 1 | -4/+26 |
| | |||||
* | introduce a pre-processing pass for the concept bodies | Zahary Karadjov | 2017-06-20 | 1 | -36/+22 |
| | | | | | | | fixes #4982 fixes #3805 close #3414 | ||||
* | fix #5890 | Zahary Karadjov | 2017-06-20 | 1 | -1/+2 |
| | |||||
* | cleanup of in/out covariance handling | Andreas Rumpf | 2017-05-17 | 1 | -6/+6 |
| | |||||
* | enforce the covariance rules for user-defined generic types | Zahary Karadjov | 2017-05-13 | 1 | -4/+4 |
| | |||||
* | covariance for arrays and sequences | Zahary Karadjov | 2017-05-12 | 1 | -12/+40 |
| | |||||
* | doh, forgot to add all files in the previous commit | Zahary Karadjov | 2017-05-12 | 1 | -12/+58 |
| | |||||
* | a simple way to simulate covariance in generic types | Zahary Karadjov | 2017-04-28 | 1 | -1/+6 |
| | |||||
* | fix a regrsesion in signature matching of derived ptr types | Zahary Karadjov | 2017-04-18 | 1 | -3/+5 |
| | |||||
* | Restore the compilation of linalg by tweaking the complex disambiguation rules | Zahary Karadjov | 2017-04-16 | 1 | -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 tmatrixconcept | Zahary Karadjov | 2017-04-16 | 1 | -0/+4 |
| | |||||
* | fix a compilation error in linalg | Zahary Karadjov | 2017-04-16 | 1 | -25/+23 |
| | |||||
* | fix #5689 | Zahary Karadjov | 2017-04-15 | 1 | -8/+10 |
| | |||||
* | fix #5683 | Zahary Karadjov | 2017-04-14 | 1 | -6/+9 |
| | |||||
* | lift parameter-less do block to lambdas | Zahary Karadjov | 2017-04-10 | 1 | -1/+12 |
| | |||||
* | fix the do notation when used with procs | Zahary Karadjov | 2017-04-09 | 1 | -0/+3 |
| | |||||
* | fix #5643; fix #5644 | Zahary Karadjov | 2017-04-08 | 1 | -2/+3 |
| | |||||
* | Restore the Nim's 0.14 proper handling of generic aliases | Zahary Karadjov | 2017-04-08 | 1 | -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 lim | 2017-03-31 | 1 | -1/+1 |
| | |||||
* | requested code review changes | Zahary Karadjov | 2017-03-29 | 1 | -12/+12 |
| | |||||
* | restore compilation and make all concepts tests green | Zahary Karadjov | 2017-03-24 | 1 | -4/+4 |
| | |||||
* | Working test cases for the sophisticated matrix library example from the manual | Zahary Karadjov | 2017-03-24 | 1 | -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 concepts | Zahary Karadjov | 2017-03-24 | 1 | -2/+7 |
| | |||||
* | proper error reporting for concepts and the introduction of the {.explain.} ↵ | Zahary Karadjov | 2017-03-24 | 1 | -13/+45 |
| | | | | pragma | ||||
* | implement the special treatment of explicit type params in concepts | Zahary Karadjov | 2017-03-24 | 1 | -1/+3 |
| | |||||
* | infer static parameters even when more complicated arithmetic is involved | Zahary Karadjov | 2017-03-24 | 1 | -29/+114 |
| | |||||
* | support derived values in non-generic user type classes | Zahary Karadjov | 2017-03-24 | 1 | -14/+6 |
| | |||||
* | support for inferring static[T] concept params | Zahary Karadjov | 2017-03-24 | 1 | -21/+25 |
| | |||||
* | introduce tyInferred for the unbound concept type params | Zahary Karadjov | 2017-03-24 | 1 | -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 Karadjov | 2017-03-24 | 1 | -10/+21 |
| | | | | testing proc signatures |