-
Notifications
You must be signed in to change notification settings - Fork 6
/
parameters.go
47 lines (42 loc) · 960 Bytes
/
parameters.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package types
import (
"github.com/gowebapi/webidlparser/ast"
)
type Parameter struct {
ref *Ref
Type TypeRef
Optional bool
Variadic bool
Name string
}
func (p *Parameter) copy() *Parameter {
r := *p.ref
dst := &Parameter{
ref: &r,
Type: p.Type,
Optional: p.Optional,
Variadic: p.Variadic,
Name: p.Name,
}
return dst
}
func (t *extractTypes) convertParams(list []*ast.Parameter) []*Parameter {
params := []*Parameter{}
for _, pi := range list {
po := t.convertParam(pi)
params = append(params, po)
}
return params
}
func (t *extractTypes) convertParam(in *ast.Parameter) *Parameter {
ref := createRef(in, t)
t.warningTrue(len(in.Annotations) == 0, ref, "parameter: unsupported annotation")
name := getIdlName(in.Name)
return &Parameter{
ref: ref,
Name: fixLangName(toCamelCase(name, false)),
Type: convertType(in.Type, t),
Optional: in.Optional,
Variadic: in.Variadic,
}
}