From eb2382831656f87f0ac03c15e7f40b9bade52d35 Mon Sep 17 00:00:00 2001 From: Erik Ernst Date: Tue, 19 Apr 2022 10:58:47 +0200 Subject: [PATCH 1/3] Adjust wording about extension/Object_static method conflicts --- specification/dartLangSpec.tex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/specification/dartLangSpec.tex b/specification/dartLangSpec.tex index 01ed71104d..dbf679e6a4 100644 --- a/specification/dartLangSpec.tex +++ b/specification/dartLangSpec.tex @@ -39,6 +39,8 @@ % - Adjust and clarify simple string interpolation (to allow `'$this'`, which % is already implemented and useful). % - Add several lexical rules about identifiers, clarifying different kinds. +% - Clarify the conflicts between extension members and `Object` instance +% members. % % 2.14 % - Add constraint on type of parameter which is covariant-by-declaration in @@ -5837,8 +5839,8 @@ \section{Extensions} \item $D$ declares a type parameter named \code{E}. \item $D$ declares a member whose basename is the name of a type parameter of $D$. -\item $D$ declares a member (static or not) with the same basename as a - member declared by the built-in class \code{Object}. +\item $D$ declares a member (static or not) with the same basename as an + instance member declared by the built-in class \code{Object}. \item $D$ declares a constructor. \item $D$ declares an instance variable. \item $D$ declares an abstract member. From 343ac7ca3e52c647760bedd7027bfed669a40544 Mon Sep 17 00:00:00 2001 From: Erik Ernst Date: Tue, 19 Apr 2022 14:39:11 +0200 Subject: [PATCH 2/3] Review response --- specification/dartLangSpec.tex | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/specification/dartLangSpec.tex b/specification/dartLangSpec.tex index dbf679e6a4..2640824bfc 100644 --- a/specification/dartLangSpec.tex +++ b/specification/dartLangSpec.tex @@ -5839,8 +5839,13 @@ \section{Extensions} \item $D$ declares a type parameter named \code{E}. \item $D$ declares a member whose basename is the name of a type parameter of $D$. -\item $D$ declares a member (static or not) with the same basename as an - instance member declared by the built-in class \code{Object}. +\item $D$ declares an instance member or a static member whose basename is + \code{hashCode}, \code{noSuchMethod}, \code{runtimeType}, or \code{toString}. + Or $D$ declares an operator named \lit{==}. + \commentary{% + That is, a member whose basename is also the name of + an instance member that every object has.% + } \item $D$ declares a constructor. \item $D$ declares an instance variable. \item $D$ declares an abstract member. From cbe23311480ba4a3dc0ed3ba37558a7dfb05a8ab Mon Sep 17 00:00:00 2001 From: Erik Ernst Date: Thu, 21 Apr 2022 16:40:03 +0200 Subject: [PATCH 3/3] Review response --- specification/dartLangSpec.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/dartLangSpec.tex b/specification/dartLangSpec.tex index 2640824bfc..f3366b40f3 100644 --- a/specification/dartLangSpec.tex +++ b/specification/dartLangSpec.tex @@ -5840,8 +5840,8 @@ \section{Extensions} \item $D$ declares a member whose basename is the name of a type parameter of $D$. \item $D$ declares an instance member or a static member whose basename is - \code{hashCode}, \code{noSuchMethod}, \code{runtimeType}, or \code{toString}. - Or $D$ declares an operator named \lit{==}. + \code{hashCode}, \code{noSuchMethod}, \code{runtimeType}, \code{toString}, + or \lit{==}. \commentary{% That is, a member whose basename is also the name of an instance member that every object has.%