Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | allow macros to produce nnkGotoState and nkState | Andreas Rumpf | 2017-10-09 | 1 | -0/+4 |
| | |||||
* | breaking change: getAst strips away pointless nnkStmtList nodes; node ↵ | Andreas Rumpf | 2017-09-26 | 1 | -3/+4 |
| | | | | rendering of nnkStmtList without wrong indentation | ||||
* | some work to make 'opt' a first class type | Andreas Rumpf | 2017-09-24 | 1 | -7/+3 |
| | |||||
* | write tracking for funcs implemented | Andreas Rumpf | 2017-09-23 | 1 | -1/+2 |
| | |||||
* | first implementation of the 'func' keyword | Andreas Rumpf | 2017-09-23 | 1 | -8/+8 |
| | |||||
* | .pure enums are much more convenient to use now | Andreas Rumpf | 2017-09-17 | 1 | -2/+4 |
| | |||||
* | make tests green again | Andreas Rumpf | 2017-08-31 | 1 | -2/+4 |
| | |||||
* | low/high/of are now overloadable operations | Andreas Rumpf | 2017-08-30 | 1 | -38/+3 |
| | |||||
* | fixes mitems iterator on vm. (issue with tuple value) | Parashurama | 2017-08-19 | 1 | -0/+3 |
| | | | | | | this discard any implicit conversion on iterator return value. the previous behaviour was to return a reference to a converted copy and thus not modifying the original value. | ||||
* | treat var modifiers inside the concept body correctly: #1033 | Zahary Karadjov | 2017-08-19 | 1 | -1/+6 |
| | |||||
* | fixes #6127 | Andreas Rumpf | 2017-07-22 | 1 | -5/+3 |
| | |||||
* | bugfix: keep the information of a raw float literal in the AST | Andreas Rumpf | 2017-07-06 | 1 | -3/+3 |
| | |||||
* | do not crash for #5895 | Andreas Rumpf | 2017-07-06 | 1 | -1/+1 |
| | |||||
* | Fix #5983 | Zahary Karadjov | 2017-06-20 | 1 | -1/+4 |
| | |||||
* | Fix #5888 | Zahary Karadjov | 2017-06-20 | 1 | -1/+1 |
| | |||||
* | introduce a pre-processing pass for the concept bodies | Zahary Karadjov | 2017-06-20 | 1 | -2/+2 |
| | | | | | | | fixes #4982 fixes #3805 close #3414 | ||||
* | restrict casting for closure. (#5948); fixes #5742 | Parashurama | 2017-06-07 | 1 | -1/+6 |
| | | | | | | | | | * restrict casting for closure. This commit forbid casting a closure to anything other than another closure. use rawEnv/rawProc to access underlaying pointers. * better error message for closure cast * fixes #5742 | ||||
* | first steps to allow easy functors via macros | Andreas Rumpf | 2017-06-04 | 1 | -17/+3 |
| | |||||
* | Merge branch 'zahary' into araq2 | Andreas Rumpf | 2017-05-17 | 1 | -26/+5 |
|\ | |||||
| * | fix affecting templates with explicit generic params | Zahary Karadjov | 2017-05-13 | 1 | -26/+5 |
| | | |||||
* | | Merge branch 'zahary' into araq2 | Andreas Rumpf | 2017-05-16 | 1 | -15/+20 |
|\| | |||||
| * | wip | Zahary Karadjov | 2017-04-11 | 1 | -4/+5 |
| | | |||||
| * | adapt quote to the new parsing rules | Zahary Karadjov | 2017-04-10 | 1 | -8/+11 |
| | | |||||
| * | fix the do notation when used with procs | Zahary Karadjov | 2017-04-09 | 1 | -2/+1 |
| | | |||||
| * | Restore the Nim's 0.14 proper handling of generic aliases | Zahary Karadjov | 2017-04-08 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | 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 | ||||
| * | fix #5642 | Zahary Karadjov | 2017-04-07 | 1 | -0/+2 |
| | | |||||
* | | Fix for #5695 make subscript operator overloadable for tuples (#5749) | cooldome | 2017-04-24 | 1 | -3/+3 |
|/ | |||||
* | move the object construction logic to a separate file | Zahary Karadjov | 2017-04-06 | 1 | -277/+1 |
| | |||||
* | object construction: test cases and manual additions | Zahary Karadjov | 2017-04-06 | 1 | -10/+8 |
| | |||||
* | cleaned up the code and implemented proper error messages | Zahary Karadjov | 2017-04-06 | 1 | -77/+178 |
| | |||||
* | fix #4556 | Zahary Karadjov | 2017-04-06 | 1 | -55/+164 |
| | | | | | | | | | | | | | | | | | | | | | This implements a number of new safety checks and error messages when object constructors are used: In case objects: * the compiler will prevent you from initializing fields in conflicting branches * When a field from a particular branch is initialized, the compiler will demand that the discriminator field is also supplied with a maching compile-time value In all objects: * When the "requiresInit" pragma is applied to a type, all fields of the type must be initialized when object construction is used. The code will be simplified in a follow up commit. | ||||
* | Merge remote-tracking branch 'origin/concepts-rebased' into araq | Andreas Rumpf | 2017-03-31 | 1 | -34/+82 |
|\ | |||||
| * | Working test cases for the sophisticated matrix library example from the manual | Zahary Karadjov | 2017-03-24 | 1 | -8/+20 |
| | | | | | | | | | | 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 | -5/+6 |
| | | |||||
| * | proper error reporting for concepts and the introduction of the {.explain.} ↵ | Zahary Karadjov | 2017-03-24 | 1 | -5/+17 |
| | | | | | | | | pragma | ||||
| * | infer static parameters even when more complicated arithmetic is involved | Zahary Karadjov | 2017-03-24 | 1 | -0/+1 |
| | | |||||
| * | support derived values in non-generic user type classes | Zahary Karadjov | 2017-03-24 | 1 | -19/+20 |
| | | |||||
| * | kill the reportConceptFailures options as it will be replaced by the ↵ | Zahary Karadjov | 2017-03-24 | 1 | -4/+1 |
| | | | | | | | | .explain. pragma | ||||
| * | introduce tyInferred for the unbound concept type params | Zahary Karadjov | 2017-03-24 | 1 | -1/+0 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 for matching generic types' procs in generic concepts | Zahary Karadjov | 2017-03-24 | 1 | -3/+1 |
| | | |||||
| * | support for accessing types and consts defined in concepts with the dot operator | Zahary Karadjov | 2017-03-24 | 1 | -1/+26 |
| | | |||||
| * | support for accessing the inferred concept type params with the dot operator | Zahary Karadjov | 2017-03-24 | 1 | -2/+2 |
| | | |||||
| * | concept type params inference working in basic examples | Zahary Karadjov | 2017-03-24 | 1 | -1/+3 |
| | | |||||
* | | compiler: better error messages (#5613) | Andreas Rumpf | 2017-03-26 | 1 | -7/+7 |
|/ | |||||
* | Fix generic forward declarations; fixes #4104; fixes #4908 (#5566) | zah | 2017-03-23 | 1 | -1/+0 |
| | |||||
* | make semObjConstr robust for nimsuggest | Araq | 2017-03-21 | 1 | -3/+3 |
| | |||||
* | mark symbols in getAst context as used | Andreas Rumpf | 2017-03-20 | 1 | -1/+5 |
| | |||||
* | revert getAst handling to not use overloading resolution | Andreas Rumpf | 2017-03-20 | 1 | -1/+18 |
| | |||||
* | overloading resolution for getAst; breaking change | Araq | 2017-03-18 | 1 | -8/+14 |
| | |||||
* | Merge branch 'devel' into faster-nimsuggest | Andreas Rumpf | 2017-03-14 | 1 | -5/+10 |
|\ |