File tree Expand file tree Collapse file tree 2 files changed +16
-12
lines changed Expand file tree Collapse file tree 2 files changed +16
-12
lines changed Original file line number Diff line number Diff line change @@ -1622,18 +1622,19 @@ func DependsOn(node Node, p *Package) bool {
1622
1622
}
1623
1623
1624
1624
func comparePackages (a , b * Package ) int {
1625
+ // fmt.Fprintln(os.Stderr, "comparing "+b.Name.String()+" to "+a.Name.String())
1625
1626
switch {
1626
1627
case a == b :
1627
1628
return 0
1628
- case DependsOn (b , a ):
1629
- // println(b.Name.String() + " depends on " + a.Name.String())
1630
- return 1
1631
1629
case DependsOn (a , b ):
1632
- // println(a.Name.String() + " depends on " + b.Name.String())
1630
+ // fmt.Fprintln(os.Stderr, a.Name.String()+" depends on "+b.Name.String())
1631
+ return 1
1632
+ case DependsOn (b , a ):
1633
+ // fmt.Fprintln(os.Stderr, b.Name.String()+" depends on "+a.Name.String())
1633
1634
return - 1
1634
1635
}
1635
- // println( a.Name.String() + " does not depend on " + b.Name.String())
1636
- return strings .Compare (a .Name .String (), b .Name .String ())
1636
+ // fmt.Fprintln(os.Stderr, a.Name.String()+ " does not depend on "+ b.Name.String())
1637
+ return - 1 * strings .Compare (a .Name .String (), b .Name .String ())
1637
1638
}
1638
1639
1639
1640
// Stability represents the version or feature-gated stability of a given feature.
Original file line number Diff line number Diff line change @@ -57,22 +57,25 @@ func (r *Resolve) WIT(ctx Node, _ string) string {
57
57
// Sort packages topologically by dependency
58
58
packages := slices .Clone (r .Packages )
59
59
slices .SortFunc (packages , comparePackages )
60
+ slices .Reverse (packages )
60
61
61
62
var b strings.Builder
62
63
var hasContent bool
63
- for i , p := range packages {
64
+ i := 0
65
+ for _ , p := range packages {
64
66
var name string
65
67
if i != 0 {
66
68
// Write subsequent packages with explicit name, which renders the package WIT with nested braces.
67
69
name = p .Name .WIT (p , "" )
68
70
}
69
71
wit := p .WIT (ctx , name )
70
- if wit != "" {
72
+ if len ( packages ) == 1 || strings . Count ( wit , " \n " ) > 1 {
71
73
if hasContent {
72
74
b .WriteString ("\n " )
73
75
}
74
76
hasContent = true
75
77
b .WriteString (wit )
78
+ i ++
76
79
}
77
80
}
78
81
return b .String ()
@@ -1087,10 +1090,10 @@ func (p *Package) WIT(ctx Node, name string) string {
1087
1090
if multi {
1088
1091
b .WriteString ("}\n " )
1089
1092
}
1090
- // Return empty string in multi-package mode if package has no contents
1091
- if multi && i == 0 {
1092
- return ""
1093
- }
1093
+ // Return empty string if package has no contents
1094
+ // if i == 0 {
1095
+ // return ""
1096
+ // }
1094
1097
return b .String ()
1095
1098
}
1096
1099
You can’t perform that action at this time.
0 commit comments