From 9ea6693e1b62ec7829bf82e383fbe8b8bd7f50ae Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 12 Jan 2018 18:36:11 +0100 Subject: pkg/compiler: allow string/array as template type --- pkg/compiler/types.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'pkg') 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 -- cgit mrf-deployment