Skip to content

Commit 8c4aa8a

Browse files
authored
Clarify extension member resolution (#4116)
Clarify extension member resolution: The applicability of a given extension for an invocation of an extension instance member `m` would require that the static type of the syntactic receiver does not have 'a member whose basename is the basename of `m`'. This PR makes it explicit that this is 'an instance member whose basename is the basename of `m`', and it isn't relevant if the declaration that induced said type has a static member with such a name.
1 parent 3503e49 commit 8c4aa8a

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

specification/dartLangSpec.tex

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@
4141
% version of the language which will actually be specified by the next stable
4242
% release of this document.
4343
%
44+
% Sep 2024
45+
% - Clarify the extension applicability rule to explicitly state that it
46+
% is concerned with an instance member with the same basename, not a
47+
% static member.
48+
%
4449
% Jun 2024
4550
% - Add missing references to section 'Type dynamic' at the points where the
4651
% static analysis of Object member invocations is specified.
@@ -6661,7 +6666,7 @@ \subsubsection{Applicability of an Extension}
66616666
because they do not have a type.%
66626667
}
66636668
\item
6664-
The type $S$ does not have a member with the basename $m$,
6669+
The type $S$ does not have an instance member with the basename $m$,
66656670
and $S$ is neither \DYNAMIC{} nor \code{Never}.
66666671

66676672
\commentary{%

0 commit comments

Comments
 (0)