mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
76 lines
1.4 KiB
Go
76 lines
1.4 KiB
Go
|
|
// compile
|
||
|
|
|
||
|
|
// Copyright 2025 The Go Authors. All rights reserved.
|
||
|
|
// Use of this source code is governed by a BSD-style
|
||
|
|
// license that can be found in the LICENSE file.
|
||
|
|
|
||
|
|
package reorder
|
||
|
|
|
||
|
|
type Element struct {
|
||
|
|
A string
|
||
|
|
B string
|
||
|
|
C string
|
||
|
|
D string
|
||
|
|
E string
|
||
|
|
Text []string
|
||
|
|
List []string
|
||
|
|
Child Elements
|
||
|
|
F string
|
||
|
|
G bool
|
||
|
|
H bool
|
||
|
|
I string
|
||
|
|
}
|
||
|
|
|
||
|
|
type Elements []Element
|
||
|
|
|
||
|
|
func DoesNotCompile(ve Elements) Elements {
|
||
|
|
aa := Elements{}
|
||
|
|
bb := Elements{}
|
||
|
|
cc := Elements{}
|
||
|
|
dd := Elements{}
|
||
|
|
ee := Elements{}
|
||
|
|
ff := Elements{}
|
||
|
|
gg := Elements{}
|
||
|
|
hh := Elements{}
|
||
|
|
ii := Elements{}
|
||
|
|
|
||
|
|
if len(ve) != 1 {
|
||
|
|
return ve
|
||
|
|
}
|
||
|
|
for _, e := range ve[0].Child {
|
||
|
|
if len(e.Text) == 1 && (e.Text[0] == "xx") {
|
||
|
|
ee = append(ee, e)
|
||
|
|
} else if len(e.Text) == 1 && e.Text[0] == "yy" {
|
||
|
|
for _, c := range e.Child {
|
||
|
|
if len(c.Text) == 1 && c.Text[0] == "zz" {
|
||
|
|
ii = append(ii, c)
|
||
|
|
} else {
|
||
|
|
hh = append(hh, c)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
ii = append(ii, hh...)
|
||
|
|
e.Child = ii
|
||
|
|
gg = append(gg, e)
|
||
|
|
} else if len(e.Text) == 1 && e.Text[0] == "tt" {
|
||
|
|
for _, entry := range e.Child {
|
||
|
|
for _, c := range entry.Child {
|
||
|
|
if len(c.Text) == 1 && c.Text[0] == "ee" {
|
||
|
|
cc = append(cc, c)
|
||
|
|
} else {
|
||
|
|
dd = append(dd, c)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
cc = append(cc, dd...)
|
||
|
|
entry.Child = cc
|
||
|
|
bb = append(bb, entry)
|
||
|
|
cc, dd = Elements{}, Elements{}
|
||
|
|
}
|
||
|
|
e.Child = bb
|
||
|
|
aa = append(aa, e)
|
||
|
|
} else {
|
||
|
|
ff = append(ff, e)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return ve
|
||
|
|
}
|