Skip to content

[SR-416] Automatic initializer inheritance doesn't work for generic types. #43033

Closed
@swift-ci

Description

@swift-ci
Previous ID SR-416
Radar rdar://problem/17960407
Original Reporter AntiMoron (JIRA User)
Type Bug
Status Resolved
Resolution Done
Additional Detail from JIRA
Votes 8
Component/s Compiler
Labels Bug
Assignee @slavapestov
Priority Medium

md5: 653f63eac7d43989c4cea17dfc9d61f0

is duplicated by:

  • SR-1375 Availability of default values in initializer or generics in class definition may prevent swift from inheritance of initializer.
  • SR-924 Subclass of generic class has no initializers

Issue Description:

For such code:

public class A<T : Any> { 
    public init(n : Int) { 
        print("A")
    } 
} 
public class B : A<Int> {
}
let x = B(n: 123)

The two rules from documation have no effect.

Rule 1 “If your subclass doesn’t define any designated initializers, it automatically inherits all of its superclass designated initializers.”
Rule 2 “If your subclass provides an implementation of all of its superclass designated initializers—either by inheriting them as per rule 1, or by providing a custom implementation as part of its definition—then it automatically inherits all of the superclass convenience initializers.”

For more details see http://stackoverflow.com/questions/34525368/initializers-from-generic-types-wont-be-inherited-in-swift

Metadata

Metadata

Assignees

Labels

bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.compilerThe Swift compiler itself

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions