create ClassExtends ClassImplements InterfaceExtends nodes
This commit is contained in:
@@ -1553,12 +1553,12 @@ func (p *Printer) printStmtClass(n node.Node) {
|
||||
|
||||
if nn.Extends != nil {
|
||||
io.WriteString(p.w, " extends ")
|
||||
p.Print(nn.Extends)
|
||||
p.Print(nn.Extends.ClassName)
|
||||
}
|
||||
|
||||
if nn.Implements != nil {
|
||||
io.WriteString(p.w, " implements ")
|
||||
p.joinPrint(", ", nn.Implements)
|
||||
p.joinPrint(", ", nn.Implements.InterfaceNames)
|
||||
}
|
||||
|
||||
io.WriteString(p.w, "\n")
|
||||
@@ -1910,7 +1910,7 @@ func (p *Printer) printStmtInterface(n node.Node) {
|
||||
|
||||
if nn.Extends != nil {
|
||||
io.WriteString(p.w, " extends ")
|
||||
p.joinPrint(", ", nn.Extends)
|
||||
p.joinPrint(", ", nn.Extends.InterfaceNames)
|
||||
}
|
||||
|
||||
io.WriteString(p.w, "\n")
|
||||
|
||||
@@ -35,9 +35,11 @@ func TestPrintFile(t *testing.T) {
|
||||
&name.NamePart{Value: "Bar"},
|
||||
},
|
||||
},
|
||||
Extends: &name.Name{
|
||||
Parts: []node.Node{
|
||||
&name.NamePart{Value: "Baz"},
|
||||
Extends: &stmt.ClassExtends{
|
||||
ClassName: &name.Name{
|
||||
Parts: []node.Node{
|
||||
&name.NamePart{Value: "Baz"},
|
||||
},
|
||||
},
|
||||
},
|
||||
Stmts: []node.Node{
|
||||
@@ -2482,10 +2484,14 @@ func TestPrintStmtClass(t *testing.T) {
|
||||
&stmt.Class{
|
||||
Modifiers: []node.Node{&node.Identifier{Value: "abstract"}},
|
||||
ClassName: &node.Identifier{Value: "Foo"},
|
||||
Extends: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}},
|
||||
Implements: []node.Node{
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}},
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Quuz"}}},
|
||||
Extends: &stmt.ClassExtends{
|
||||
ClassName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}},
|
||||
},
|
||||
Implements: &stmt.ClassImplements{
|
||||
InterfaceNames: []node.Node{
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}},
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Quuz"}}},
|
||||
},
|
||||
},
|
||||
Stmts: []node.Node{
|
||||
&stmt.ClassConstList{
|
||||
@@ -2533,10 +2539,14 @@ func TestPrintStmtAnonymousClass(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
Extends: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}},
|
||||
Implements: []node.Node{
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}},
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Quuz"}}},
|
||||
Extends: &stmt.ClassExtends{
|
||||
ClassName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}},
|
||||
},
|
||||
Implements: &stmt.ClassImplements{
|
||||
InterfaceNames: []node.Node{
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}},
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Quuz"}}},
|
||||
},
|
||||
},
|
||||
Stmts: []node.Node{
|
||||
&stmt.ClassConstList{
|
||||
@@ -3382,9 +3392,11 @@ func TestPrintInterface(t *testing.T) {
|
||||
Stmts: []node.Node{
|
||||
&stmt.Interface{
|
||||
InterfaceName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}},
|
||||
Extends: []node.Node{
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}},
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}},
|
||||
Extends: &stmt.InterfaceExtends{
|
||||
InterfaceNames: []node.Node{
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}},
|
||||
&name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}},
|
||||
},
|
||||
},
|
||||
Stmts: []node.Node{
|
||||
&stmt.ClassMethod{
|
||||
|
||||
Reference in New Issue
Block a user