| Index: mojom/mojom_parser/mojom/user_defined_types.go
|
| diff --git a/mojom/mojom_parser/mojom/user_defined_types.go b/mojom/mojom_parser/mojom/user_defined_types.go
|
| index c0a5c1bf09c62552a09c0953ddc8820c6d1f1cc4..3dd9c5caec73862c537e8331146455457d23dbb4 100644
|
| --- a/mojom/mojom_parser/mojom/user_defined_types.go
|
| +++ b/mojom/mojom_parser/mojom/user_defined_types.go
|
| @@ -9,6 +9,7 @@ import (
|
| "fmt"
|
| "math"
|
| "mojom/mojom_parser/lexer"
|
| + "sort"
|
| "strings"
|
| )
|
|
|
| @@ -145,6 +146,7 @@ func (b *UserDefinedTypeBase) FindReachableTypes() []string {
|
| }
|
| i++
|
| }
|
| + sort.Strings(typeKeys)
|
| return typeKeys
|
| }
|
|
|
| @@ -152,6 +154,9 @@ func (b *UserDefinedTypeBase) FindReachableTypes() []string {
|
| // It performs a depth-first search through the type graph while populating
|
| // |reachableSet| with the UserDefinedTypes encountered during the search.
|
| func findReachableTypes(udt UserDefinedType, reachableSet UserDefinedTypeSet) {
|
| + if udt == nil {
|
| + panic("udt is nil")
|
| + }
|
| if reachableSet.Contains(udt) {
|
| return
|
| }
|
| @@ -186,7 +191,9 @@ func findReachableTypes(udt UserDefinedType, reachableSet UserDefinedTypeSet) {
|
| // There is an edge in the type graph from this interface type to
|
| // the type of a request or response parameter.
|
| findReachableTypes(object.Parameters, reachableSet)
|
| - findReachableTypes(object.ResponseParameters, reachableSet)
|
| + if object.ResponseParameters != nil {
|
| + findReachableTypes(object.ResponseParameters, reachableSet)
|
| + }
|
| }
|
| }
|
| }
|
|
|