From aade51b37c8a71a6b6e862f6f6dda1be12c7d639 Mon Sep 17 00:00:00 2001 From: Benjie Gillam Date: Thu, 9 Nov 2023 11:58:47 +0000 Subject: [PATCH 1/2] Implementations may not deprecate a field that the interface hasn't deprecated --- spec/Section 3 -- Type System.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/Section 3 -- Type System.md b/spec/Section 3 -- Type System.md index d32b08566..f5d886653 100644 --- a/spec/Section 3 -- Type System.md +++ b/spec/Section 3 -- Type System.md @@ -947,6 +947,8 @@ IsValidImplementation(type, implementedType): 2. Let {implementedFieldType} be the return type of {implementedField}. 3. {IsValidImplementationFieldType(fieldType, implementedFieldType)} must be {true}. + 6. If the `@deprecated` directive is not applied to {implementedField}, then + the `@deprecated` directive must not be applied to {field}. IsValidImplementationFieldType(fieldType, implementedFieldType): From 9a5f88b80e22d7dd1342ead49dc75d11585e6194 Mon Sep 17 00:00:00 2001 From: Benjie Date: Fri, 6 Dec 2024 10:21:08 +0000 Subject: [PATCH 2/2] Avoid negative, don't refer to directive Co-authored-by: Lee Byron --- spec/Section 3 -- Type System.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spec/Section 3 -- Type System.md b/spec/Section 3 -- Type System.md index f5d886653..d7cbc8a45 100644 --- a/spec/Section 3 -- Type System.md +++ b/spec/Section 3 -- Type System.md @@ -947,8 +947,7 @@ IsValidImplementation(type, implementedType): 2. Let {implementedFieldType} be the return type of {implementedField}. 3. {IsValidImplementationFieldType(fieldType, implementedFieldType)} must be {true}. - 6. If the `@deprecated` directive is not applied to {implementedField}, then - the `@deprecated` directive must not be applied to {field}. + 6. If {field} is deprecated then {implementedField} must also be deprecated. IsValidImplementationFieldType(fieldType, implementedFieldType):