You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -2846,6 +2857,13 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
2846
2857
defSynthetic:Flags= dotc.core.Flags.Synthetic
2847
2858
defTrait:Flags= dotc.core.Flags.Trait
2848
2859
defTransparent:Flags= dotc.core.Flags.Transparent
2860
+
2861
+
// Keep: aligned with Quotes's `newMethod` doc
2862
+
private[QuotesImpl] defvalidMethodFlags:Flags=Private|Protected|Override|Deferred|Final|Method|Implicit|Given|Local|AbsOverride// Flags that could be allowed: Synthetic | ExtensionMethod | Exported | Erased | Infix | Invisible
2863
+
// Keep: aligned with Quotes's `newVal` doc
2864
+
private[QuotesImpl] defvalidValFlags:Flags=Private|Protected|Override|Deferred|Final|Param|Implicit|Lazy|Mutable|Local|ParamAccessor|Module|Package|Case|CaseAccessor|Given|Enum|AbsOverride// Flags that could be added: Synthetic | Erased | Invisible
2865
+
// Keep: aligned with Quotes's `newBind` doc
2866
+
private[QuotesImpl] defvalidBindFlags:Flags=Case// Flags that could be allowed: Implicit | Given | Erased
2849
2867
endFlags
2850
2868
2851
2869
givenFlagsMethods:FlagsMethodswith
@@ -2966,7 +2984,7 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
2966
2984
/** Checks that all definitions in this tree have the expected owner.
2967
2985
* Nested definitions are ignored and assumed to be correct by construction.
* @paramtpe The type of the method (MethodType, PolyType, ByNameType)
3788
-
* @paramflags extra flags to with which the symbol should be constructed
3788
+
* @paramflags extra flags to with which the symbol should be constructed. `Method` flag will be added. Can be `Private | Protected | Override | Deferred | Final | Method | Implicit | Given | Local`
3789
3789
* @paramprivateWithin the symbol within which this new method symbol should be private. May be noSymbol.
3790
3790
*/
3791
+
// Keep: `flags` doc aligned with QuotesImpl's `validMethodFlags`
* @paramflags extra flags to with which the symbol should be constructed
3805
+
* @paramflags extra flags to with which the symbol should be constructed. Can be `Private | Protected | Override | Deferred | Final | Param | Implicit | Lazy | Mutable | Local | ParamAccessor | Module | Package | Case | CaseAccessor | Given | Enum`
3805
3806
* @paramprivateWithin the symbol within which this new method symbol should be private. May be noSymbol.
3806
3807
* @note As a macro can only splice code into the point at which it is expanded, all generated symbols must be
3807
3808
* direct or indirect children of the reflection context's owner.
3808
3809
*/
3810
+
// Keep: `flags` doc aligned with QuotesImpl's `validValFlags`
/** Is this symbol is labeled with of abstract & override
4379
+
/** Is this an abstract override method?
4377
4380
*
4378
-
* The override modifier has an additional significance when combined with the abstract modifier.
4379
-
* That modifier combination is only allowed for value members of traits.
4380
-
*
4381
-
* We call a member MM of a template incomplete if it is either abstract (i.e. defined by a declaration), or it is labeled abstract and override and every member overridden by MM is again incomplete.
4382
-
*
4383
-
* Note that the abstract override modifier combination does not influence the concept whether a member is concrete or abstract.
4384
-
* A member is abstract if only a declaration is given for it; it is concrete if a full definition is given.
4381
+
* This corresponds to a definition declared as "abstract override def" in the source.
4382
+
* See https://stackoverflow.com/questions/23645172/why-is-abstract-override-required-not-override-alone-in-subtrait for examples.
0 commit comments