Skip to content

Cannot define nested types in extensions and cannot extend nested types #26

@AlmightyBeaver

Description

@AlmightyBeaver

Hi, I tried to create a diagram from some code where extensions are used. The created PlantUML code does not work.
Here is a minimal example:

class ClassA { }

extension ClassA {
    public final class ClassB: ObservableObject {
        var string: String = ""
        init() { }
        func test1() { }
    }
}


extension ClassA.ClassB {
    func test2() { }
}

In my original code the class ClassA { } is also in a different file, but it seems that doesn't matter.

The code above is converted to the following PlantUML code:

@startuml
' STYLE START

skinparam shadowing false
' STYLE END


class "ClassA" as ClassA << (C, DarkSeaGreen) >> {  
}
class "ClassA" as ClassA0 << (X, Orchid) extension >> {  
}
class "ClassA.ClassB" as ClassA.ClassB << (X, Orchid) extension >> { 
  ~test2() 
}

ClassA <.. ClassA0 : ext
@enduml

Planttext will show the error Bad hierarchy for class ClassA.ClassB for the code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions