@@ -15,6 +15,10 @@ information about the process, including in their change logs.
15
15
[ 1 ] : https://github.com/dart-lang/language/blob/master/working/1426-extension-types/feature-specification-views.md
16
16
[ 2 ] : https://github.com/dart-lang/language/blob/master/working/extension_structs/overview.md
17
17
18
+ 2024.05.21
19
+ - Clarify that preclusion is caused by instance members and not by static
20
+ members.
21
+
18
22
2024.01.17
19
23
- Specify that a type is 'incompatible with await', and use that to specify
20
24
a compile-time error at ` await e; ` .
@@ -528,15 +532,16 @@ extension type members.*
528
532
We need to introduce a concept that is similar to existing concepts
529
533
for regular classes, namely that an extension type _ has_ a certain member.
530
534
531
- First, we say that an extension type member declaration _ DM_ _ precludes_ an
532
- extension type member declaration _ DM2_ if they have the same name, or the
533
- basename of _ DM_ is the same as the basename of _ DM2_ , and one of _ DM_ and
534
- _ DM2_ is a setter declaration, and the other is a method declaration.
535
+ First, we say that an extension type instance member declaration _ DM_
536
+ _ precludes_ an extension type instance member declaration _ DM2_ if they
537
+ have the same name, or the basename of _ DM_ is the same as the basename of
538
+ _ DM2_ , and one of _ DM_ and _ DM2_ is a setter declaration, and the other is
539
+ a method declaration.
535
540
536
- Moreover, we say that an extension type member declaration _ DM_ _ precludes _
537
- a non-extension type member signature ` m ` if they have the same name, or
538
- the basename of _ DM_ is the same as the basename of ` m ` , and _ DM_ is a
539
- setter declaration and ` m ` is a method signature, or _ DM_ is a method
541
+ Moreover, we say that an extension type instance member declaration _ DM_
542
+ _ precludes _ a non-extension type member signature ` m ` if they have the same
543
+ name, or the basename of _ DM_ is the same as the basename of ` m ` , and _ DM_
544
+ is a setter declaration and ` m ` is a method signature, or _ DM_ is a method
540
545
declaration and ` m ` is a setter signature.
541
546
542
547
* We use this concept with superinterfaces of DM. DM may have multiple
@@ -551,11 +556,11 @@ given name.*
551
556
We say that an extension type declaration _ DV_ _ has_ an extension type
552
557
member named ` n ` in the cases where:
553
558
554
- - _ DV_ declares a member named ` n ` .
559
+ - _ DV_ declares an instance member named ` n ` .
555
560
- _ DV_ has no such declaration, but _ DV_ has a direct extension type
556
- superinterface ` V ` that has an extension type member named ` n ` due to a
557
- member declaration _ DM2_ , and _ DV_ does not declare a member that
558
- precludes _ DM2_ .
561
+ superinterface ` V ` that has an extension type instance member named ` n `
562
+ due to a member declaration _ DM2_ , and _ DV_ does not declare an instance
563
+ member that precludes _ DM2_ .
559
564
560
565
* Note that it is well-defined which member declaration causes an extension
561
566
type to have a given extension type member because a compile-time error
@@ -577,10 +582,10 @@ a member named `n`, and one of the following criteria is satisfied:
577
582
578
583
- _ DV_ has a direct extension type superinterface ` V ` that has a
579
584
non-extension type member with signature ` m ` and name ` n ` , and _ DV_ does
580
- not declare a member that precludes ` m ` .
585
+ not declare an instance member that precludes ` m ` .
581
586
- _ DV_ has a direct non-extension type superinterface whose interface
582
- contains a member signature ` m ` named ` n ` , and _ DV_ does not declare a
583
- member that precludes ` m ` .
587
+ contains a member signature ` m ` named ` n ` , and _ DV_ does not declare an
588
+ instance member that precludes ` m ` .
584
589
585
590
The member signature of such a member is the combined member signature of
586
591
all non-extension type members named ` n ` that _ DV_ has, again using a
0 commit comments