summary refs log tree commit diff stats
path: root/compiler
Commit message (Collapse)AuthorAgeFilesLines
* Error Message if CC invocation fails (#5663)Fredrik Høisæther Rasch2017-04-081-11/+26
|
* move the object construction logic to a separate fileZahary Karadjov2017-04-063-278/+294
|
* object construction: test cases and manual additionsZahary Karadjov2017-04-061-10/+8
|
* cleaned up the code and implemented proper error messagesZahary Karadjov2017-04-063-80/+206
|
* fix #4556Zahary Karadjov2017-04-062-56/+165
| | | | | | | | | | | | | | | | | | | | | 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.
* fix another compiler regressionAndreas Rumpf2017-04-051-0/+4
|
* make tests green againAndreas Rumpf2017-04-041-1/+1
|
* Merge branch 'devel' into araqAndreas Rumpf2017-04-041-4/+2
|\
| * fixes #5638Araq2017-04-041-3/+1
| |
| * revert PR #5638 because it breaks codeAraq2017-04-041-2/+2
| |
* | attempt to make tests green againAndreas Rumpf2017-04-041-1/+2
| |
* | assignments support ': stmtList' like let/var doAndreas Rumpf2017-04-041-1/+7
| |
* | remove the need for the .procvar annotationAndreas Rumpf2017-04-032-21/+32
| |
* | de-deprecate silly warning about non-exhaustive string case statmentsAndreas Rumpf2017-04-031-7/+3
|/
* remove en-dash from the languageAndreas Rumpf2017-04-022-21/+6
|
* language addition: colon-block for expressions in let/var contextAndreas Rumpf2017-04-021-10/+16
|
* Fixed issue #5638 (#5639)Anatoly Galiulin2017-04-011-0/+1
|
* support for the Genode OS framework (#5560)Emery Hemingway2017-03-313-5/+31
|
* Implementing `repr` for JS (#5578)Silvio2017-03-311-9/+43
|
* attempt to fix #5632 typedesc typeRel regression (#5634)andri lim2017-03-311-1/+1
|
* attempt to fix #5621 #5615 generic ref object typeRel (#5633)andri lim2017-03-311-1/+1
|
* make pragma expression parsing use the same parser mechanism as elsewhereAndreas Rumpf2017-03-311-3/+2
|
* Merge remote-tracking branch 'origin/concepts-rebased' into araqAndreas Rumpf2017-03-3127-288/+798
|\
| * make all tests green againZahary Karadjov2017-03-311-1/+1
| | | | | | | | | | | | properly disabling the extra diagnostics in semCompiles proved to be too much work. I have some plans for further improving the error messages in the future and I'll revisit this later.
| * requested code review changesZahary Karadjov2017-03-294-30/+43
| |
| * Fix the compilation of the emmy packageZahary Karadjov2017-03-281-0/+2
| |
| * fix tgenericshardcasesZahary Karadjov2017-03-242-8/+14
| |
| * use lower-case proc namesZahary Karadjov2017-03-241-4/+4
| |
| * restore compilation and make all concepts tests greenZahary Karadjov2017-03-243-7/+8
| |
| * carefully reviewed and merged the changes from the devel branchZahary Karadjov2017-03-241-61/+75
| |
| * Working test cases for the sophisticated matrix library example from the manualZahary Karadjov2017-03-246-40/+67
| | | | | | | | | | Fixed the dot operator when used within return types (see tgenericdotrettype) Fixed the matching of generic concepts aliases used with the implicit generics style
| * new type traits: `GenericHead` and `StripGenericParams`Zahary Karadjov2017-03-242-3/+45
| |
| * further improvements to the error messages produced by conceptsZahary Karadjov2017-03-246-22/+25
| |
| * when displaying proc signatures, don't render the implicit generic paramsZahary Karadjov2017-03-241-8/+19
| |
| * proper error reporting for concepts and the introduction of the {.explain.} ↵Zahary Karadjov2017-03-2411-140/+207
| | | | | | | | pragma
| * implement the special treatment of explicit type params in conceptsZahary Karadjov2017-03-244-2/+7
| |
| * infer static parameters even when more complicated arithmetic is involvedZahary Karadjov2017-03-249-46/+137
| |
| * support derived values in non-generic user type classesZahary Karadjov2017-03-246-45/+52
| |
| * kill the reportConceptFailures options as it will be replaced by the ↵Zahary Karadjov2017-03-244-12/+3
| | | | | | | | .explain. pragma
| * support for inferring static[T] concept paramsZahary Karadjov2017-03-246-28/+62
| |
| * introduce tyInferred for the unbound concept type paramsZahary Karadjov2017-03-249-96/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-245-17/+57
| | | | | | | | testing proc signatures
| * support for matching generic types' procs in generic conceptsZahary Karadjov2017-03-243-10/+42
| |
| * support for accessing types and consts defined in concepts with the dot operatorZahary Karadjov2017-03-242-13/+49
| |
| * support for accessing the inferred concept type params with the dot operatorZahary Karadjov2017-03-245-6/+22
| |
| * concept type params inference working in basic examplesZahary Karadjov2017-03-244-2/+44
| |
* | added a codegen noteAndreas Rumpf2017-03-291-0/+1
| |
* | fixes #5618Andreas Rumpf2017-03-281-1/+4
| |
* | compiler: better error messages (#5613)Andreas Rumpf2017-03-263-23/+31
| |
* | fixes #5599 (#5610)Andreas Rumpf2017-03-261-2/+8
|/