@@ -855,8 +855,9 @@ It is a compile-time error if:
855
855
replace a declared super constructor._ ** (TODO: Why not? We allow
856
856
"replacing implementation", and this is * something* like that.)**
857
857
858
- * The resulting constructor is not valid (has a redirecting initializer and
859
- other initializers, multiple ` super ` initializers, etc).
858
+ * The resulting constructor is not valid * (it has a redirection as well as
859
+ some initializer list elements, or it has multiple ` super ` initializers,
860
+ etc)* .
860
861
861
862
* A non-redirecting constructor augments a constructor which is not
862
863
potentially non-redirecting.
@@ -923,20 +924,21 @@ present), and it may invoke the augmented body by calling
923
924
924
925
#### Redirecting generative constructors
925
926
926
- A redirecting generative constructor marked ` augment ` adds its redirecting
927
- initializer to the augmented constructors initializer list .
927
+ A redirecting generative constructor marked ` augment ` adds its redirection
928
+ to the augmented constructor .
928
929
929
930
This converts it into a redirecting generative constructor, removing the
930
931
potentially non-redirecting property of the constructor.
931
932
932
933
It is a compile-time error if:
933
934
934
- * The augmented constructor has any initializers or a body.
935
+ * The augmented constructor has an initializer list or a body, or it has a
936
+ redirection.
935
937
936
938
#### Redirecting factory constructors
937
939
938
940
A redirecting factory constructor marked ` augment ` adds its factory redirection
939
- to the augmented constructor.
941
+ * (e.g., ` = C<int>.name ` ) * to the augmented constructor.
940
942
941
943
The result of applying the augmenting constructor is a redirecting factory
942
944
constructor with the same target constructor designation as the augmenting
@@ -945,7 +947,7 @@ constructor.
945
947
946
948
It is a compile-time error if:
947
949
948
- * The augmented constructor has a body.
950
+ * The augmented factory constructor has a body, or it is redirecting .
949
951
950
952
#### Extension types
951
953
@@ -1201,8 +1203,6 @@ declaration ::= 'external'? factoryConstructorSignature
1201
1203
| constructorSignature (redirection | initializers)?
1202
1204
```
1203
1205
1204
- ** TODO: Define the grammar for the various ` augmented ` expressions.**
1205
-
1206
1206
It is a compile-time error if:
1207
1207
1208
1208
* A declaration marked ` augment ` is also marked ` external ` . ** (TODO: Probably
0 commit comments