File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -331,7 +331,7 @@ class_extends <- function(child, parent) {
331331 } else if (is_S4_class(child ) || is_S4_class(parent )) {
332332 is_S4_class(child ) &&
333333 is_S4_class(parent ) &&
334- S4_extends_unconditionally (child , parent )
334+ S4_extends_simple (child , parent )
335335 } else if (is_class(parent ) && parent @ name == " S7_object" ) {
336336 is_class(child )
337337 } else {
@@ -395,14 +395,14 @@ union_contains_any <- function(x) {
395395 is_union(x ) && any(vlapply(x $ classes , is_class_any ))
396396}
397397
398- S4_extends_unconditionally <- function (child , parent ) {
398+ S4_extends_simple <- function (child , parent ) {
399399 extension <- methods :: extends(
400400 child @ className ,
401401 parent @ className ,
402402 fullInfo = TRUE
403403 )
404404 isTRUE(extension ) ||
405- (isS4(extension ) && ! methods :: is (extension , " conditionalExtension " ))
405+ (isS4(extension ) && isTRUE( methods :: slot (extension , " simple " ) ))
406406}
407407
408408# Suppress @className false positive
Original file line number Diff line number Diff line change @@ -122,41 +122,6 @@ describe("inheritance", {
122122 " must narrow"
123123 )
124124 })
125- it(" child properties can't narrow with conditional S4 extensions" , {
126- on.exit(S4_remove_classes(c(
127- " S4PropertyConditionalChild" ,
128- " S4PropertyConditionalParent"
129- )))
130- S4PropertyConditionalParent <- methods :: setClass(
131- " S4PropertyConditionalParent" ,
132- slots = c(x = " numeric" )
133- )
134- S4PropertyConditionalChild <- methods :: setClass(
135- " S4PropertyConditionalChild" ,
136- slots = c(x = " numeric" )
137- )
138- suppressWarnings(methods :: setIs(
139- " S4PropertyConditionalChild" ,
140- " S4PropertyConditionalParent" ,
141- test = function (object ) length(object @ x ) > 0
142- ))
143-
144- Parent <- new_class(
145- " Parent" ,
146- properties = list (x = S4PropertyConditionalParent ),
147- package = NULL
148- )
149-
150- expect_error(
151- new_class(
152- " Child" ,
153- Parent ,
154- properties = list (x = S4PropertyConditionalChild ),
155- package = NULL
156- ),
157- " must narrow"
158- )
159- })
160125 it(" child properties can narrow parent unions that include any" , {
161126 Parent <- new_class(
162127 " Parent" ,
You can’t perform that action at this time.
0 commit comments