diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-01-12 18:36:11 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-01-13 12:52:09 +0100 |
| commit | 9ea6693e1b62ec7829bf82e383fbe8b8bd7f50ae (patch) | |
| tree | a7d0703a9a7a7ba8ec5b269e69678a5a2792a831 /pkg | |
| parent | a94baff95ecc03cf34ff2fbf5d514bb924f54855 (diff) | |
pkg/compiler: allow string/array as template type
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/compiler/types.go | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/pkg/compiler/types.go b/pkg/compiler/types.go index 0c25fcab6..d6d45461a 100644 --- a/pkg/compiler/types.go +++ b/pkg/compiler/types.go @@ -121,10 +121,11 @@ var typeVoid = &typeDesc{ } var typeArray = &typeDesc{ - Names: []string{"array"}, - CantBeOpt: true, - OptArgs: 1, - Args: []namedArg{{"type", typeArgType}, {"size", typeArgRange}}, + Names: []string{"array"}, + CanBeTypedef: true, + CantBeOpt: true, + OptArgs: 1, + Args: []namedArg{{"type", typeArgType}, {"size", typeArgRange}}, CheckConsts: func(comp *compiler, t *ast.Type, args []*ast.Type, base prog.IntTypeCommon) { if len(args) > 1 && args[1].Value == 0 && args[1].Value2 == 0 { comp.error(args[1].Pos, "arrays of size 0 are not supported") @@ -440,9 +441,10 @@ var typeBuffer = &typeDesc{ } var typeString = &typeDesc{ - Names: []string{"string"}, - OptArgs: 2, - Args: []namedArg{{"literal or flags", typeArgStringFlags}, {"size", typeArgInt}}, + Names: []string{"string"}, + CanBeTypedef: true, + OptArgs: 2, + Args: []namedArg{{"literal or flags", typeArgStringFlags}, {"size", typeArgInt}}, CheckConsts: func(comp *compiler, t *ast.Type, args []*ast.Type, base prog.IntTypeCommon) { if len(args) > 1 { size := args[1].Value |
