From e474873f84e1644430a53476ea2fdd1bd2084ef9 Mon Sep 17 00:00:00 2001 From: Alec Thomas Date: Tue, 6 Nov 2018 11:15:35 +1100 Subject: [PATCH] Don't show ... in help for named slice types. --- mapper_test.go | 15 +++++++++++++++ model.go | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/mapper_test.go b/mapper_test.go index 6d393ad..296a133 100644 --- a/mapper_test.go +++ b/mapper_test.go @@ -1,6 +1,7 @@ package kong_test import ( + "bytes" "fmt" "io/ioutil" "net/url" @@ -166,3 +167,17 @@ func TestFileContentFlag(t *testing.T) { require.NoError(t, err) require.Equal(t, []byte("hello world"), []byte(cli.File)) } + +func TestNamedSliceTypesDontHaveEllipsis(t *testing.T) { + var cli struct { + File kong.FileContentFlag + } + b := bytes.NewBuffer(nil) + parser := mustNew(t, &cli, kong.Writers(b, b), kong.Exit(func(int) { panic("exit") })) + // Ensure that --help + require.Panics(t, func() { + _, err := parser.Parse([]string{"--help"}) + require.NoError(t, err) + }) + require.NotContains(t, b.String(), `--file=FILE-CONTENT-FLAG,...`) +} diff --git a/model.go b/model.go index 3b42e75..fa6fa0c 100644 --- a/model.go +++ b/model.go @@ -251,7 +251,7 @@ func (v *Value) IsCumulative() bool { // IsSlice returns true if the value is a slice. func (v *Value) IsSlice() bool { - return v.Target.Kind() == reflect.Slice + return v.Target.Type().Name() == "" && v.Target.Kind() == reflect.Slice } // IsMap returns true if the value is a map.