diff --git a/codegen/config/binder_test.go b/codegen/config/binder_test.go index ba4b829203..9fa5eccadb 100644 --- a/codegen/config/binder_test.go +++ b/codegen/config/binder_test.go @@ -2,6 +2,7 @@ package config import ( "fmt" + "go/token" "go/types" "testing" @@ -266,6 +267,11 @@ func TestEnumBinding(t *testing.T) { require.Equal(t, cf.Schema.Types["Baz"].EnumValues[1], baz.EnumValues[1].Definition) } +func createTypeAlias(name string, t types.Type) *types.Alias { + var nopos token.Pos + return types.NewAlias(types.NewTypeName(nopos, nil, name, nil), t) +} + func TestIsNilable(t *testing.T) { type aTest struct { input types.Type @@ -285,6 +291,10 @@ func TestIsNilable(t *testing.T) { {types.NewMap(types.Typ[types.Int], types.Typ[types.Int]), true}, {types.NewSlice(types.Typ[types.Int]), true}, {types.NewInterfaceType(nil, nil), true}, + {createTypeAlias("interfaceAlias", types.NewInterfaceType(nil, nil)), true}, + {createTypeAlias("interfaceNestedAlias", createTypeAlias("interfaceAlias", types.NewInterfaceType(nil, nil))), true}, + {createTypeAlias("intAlias", types.Typ[types.Int]), false}, + {createTypeAlias("intNestedAlias", createTypeAlias("intAlias", types.Typ[types.Int])), false}, } for _, at := range theTests {