Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 |
|\ | |||||
| * | Fixes #5167 and related problems (#5475) | zah | 2017-03-12 | 1 | -0/+2 |
| | | | | | | | | | | | | | | | | | | This commit returns to a bit less strict checking of the number of macro arguments, because some old immediate macros rely on a behavior where even the arity of the macro is not being checked. It may be better if such macros are just declared to use varargs[expr], but this remains for another day. | ||||
| * | don't allow casting to non-concrete types; fixes #5428 (#5502) | zah | 2017-03-12 | 1 | -5/+8 |
| | | |||||
* | | nimsuggest: more things work | Araq | 2017-03-09 | 1 | -1/+5 |
|/ | |||||
* | fixes #5467 | Araq | 2017-03-07 | 1 | -0/+4 |
| | |||||
* | fixes #5430 | Araq | 2017-02-26 | 1 | -13/+14 |
| | |||||
* | Merge branch 'devel' into faster-nimsuggest | Andreas Rumpf | 2017-02-24 | 1 | -1/+1 |
|\ | |||||
| * | fixes #5417 | Andreas Rumpf | 2017-02-24 | 1 | -1/+1 |
| | | |||||
* | | big compiler refactoring; avoid globals for multi method dispatcher generation | Andreas Rumpf | 2017-02-22 | 1 | -23/+22 |
|/ | |||||
* | fixes #5383 | Araq | 2017-02-16 | 1 | -1/+2 |
| | |||||
* | fixes #5354 | Araq | 2017-02-11 | 1 | -5/+5 |
| | |||||
* | nimsuggest works in macros | Andreas Rumpf | 2017-02-07 | 1 | -0/+2 |
| | |||||
* | fixes #5148 | Araq | 2016-12-29 | 1 | -1/+1 |
| | |||||
* | Used typed/untyped instead of stmt/expr in semQuoteAst. Fixes issue 5120 (#5126) | Chris Heller | 2016-12-22 | 1 | -2/+2 |
| | | | * Use typed/untyped instead of stmt/expr in semQuoteAst. Fixes #5120 | ||||
* | Merge branch 'devel' into sighashes | Araq | 2016-12-17 | 1 | -2/+2 |
|\ | |||||
| * | Gramma change: casted or Casted to cast or Cast respectively | jlp765 | 2016-12-17 | 1 | -2/+2 |
| | | | | | | | | past tense of cast is cast not casted :-) | ||||
* | | more fixes | Araq | 2016-12-03 | 1 | -0/+1 |
| | | |||||
* | | Merge branch 'devel' into sighashes | Araq | 2016-12-01 | 1 | -1/+2 |
|\| | |||||
| * | fixes #5079 | Araq | 2016-11-30 | 1 | -1/+2 |
| | | |||||
* | | Merge branch 'devel' into sighashes | Araq | 2016-11-28 | 1 | -1/+1 |
|\| | |||||
| * | recursive modules are only detected to improve error messages | Andreas Rumpf | 2016-11-24 | 1 | -1/+1 |
| | | |||||
* | | removed tyArrayConstr completely from the compiler; introduced tyAlias ↵ | Araq | 2016-11-14 | 1 | -21/+23 |
|/ | | | | instead in preparation for further bugfixes | ||||
* | refactoring complete: explicit ident cache | Araq | 2016-10-31 | 1 | -4/+4 |
| | |||||
* | big refactoring: step 1 | Araq | 2016-10-31 | 1 | -5/+5 |
| | |||||
* | fixes #4875 | Andreas Rumpf | 2016-10-20 | 1 | -18/+18 |
| | |||||
* | fixes #4845 | Araq | 2016-10-08 | 1 | -1/+3 |
| | |||||
* | fixes #4626 | Andreas Rumpf | 2016-09-13 | 1 | -42/+4 |
| |