signatures.go raw
1 package knowledge
2
3 import (
4 "go/token"
5 "go/types"
6 )
7
8 var Signatures = map[string]*types.Signature{
9 "(io.Seeker).Seek": types.NewSignatureType(nil, nil, nil,
10 types.NewTuple(
11 types.NewParam(token.NoPos, nil, "", types.Typ[types.Int64]),
12 types.NewParam(token.NoPos, nil, "", types.Typ[types.Int]),
13 ),
14 types.NewTuple(
15 types.NewParam(token.NoPos, nil, "", types.Typ[types.Int64]),
16 types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()),
17 ),
18 false,
19 ),
20
21 "(io.Writer).Write": types.NewSignatureType(nil, nil, nil,
22 types.NewTuple(
23 types.NewParam(token.NoPos, nil, "", types.NewSlice(types.Typ[types.Byte])),
24 ),
25 types.NewTuple(
26 types.NewParam(token.NoPos, nil, "", types.Typ[types.Int]),
27 types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()),
28 ),
29 false,
30 ),
31
32 "(io.StringWriter).WriteString": types.NewSignatureType(nil, nil, nil,
33 types.NewTuple(
34 types.NewParam(token.NoPos, nil, "", types.Typ[types.String]),
35 ),
36 types.NewTuple(
37 types.NewParam(token.NoPos, nil, "", types.Typ[types.Int]),
38 types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()),
39 ),
40 false,
41 ),
42
43 "(encoding.TextMarshaler).MarshalText": types.NewSignatureType(nil, nil, nil,
44 types.NewTuple(),
45 types.NewTuple(
46 types.NewParam(token.NoPos, nil, "", types.NewSlice(types.Typ[types.Byte])),
47 types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()),
48 ),
49 false,
50 ),
51
52 "(encoding/json.Marshaler).MarshalJSON": types.NewSignatureType(nil, nil, nil,
53 types.NewTuple(),
54 types.NewTuple(
55 types.NewParam(token.NoPos, nil, "", types.NewSlice(types.Typ[types.Byte])),
56 types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()),
57 ),
58 false,
59 ),
60
61 "(fmt.Stringer).String": types.NewSignatureType(nil, nil, nil,
62 types.NewTuple(),
63 types.NewTuple(
64 types.NewParam(token.NoPos, nil, "", types.Typ[types.String]),
65 ),
66 false,
67 ),
68 }
69
70 var Interfaces = map[string]*types.Interface{
71 "fmt.Stringer": types.NewInterfaceType(
72 []*types.Func{
73 types.NewFunc(token.NoPos, nil, "String", Signatures["(fmt.Stringer).String"]),
74 },
75 nil,
76 ).Complete(),
77
78 "error": types.Universe.Lookup("error").Type().Underlying().(*types.Interface),
79
80 "io.Writer": types.NewInterfaceType(
81 []*types.Func{
82 types.NewFunc(token.NoPos, nil, "Write", Signatures["(io.Writer).Write"]),
83 },
84 nil,
85 ).Complete(),
86
87 "io.StringWriter": types.NewInterfaceType(
88 []*types.Func{
89 types.NewFunc(token.NoPos, nil, "WriteString", Signatures["(io.StringWriter).WriteString"]),
90 },
91 nil,
92 ).Complete(),
93
94 "encoding.TextMarshaler": types.NewInterfaceType(
95 []*types.Func{
96 types.NewFunc(token.NoPos, nil, "MarshalText", Signatures["(encoding.TextMarshaler).MarshalText"]),
97 },
98 nil,
99 ).Complete(),
100
101 "encoding/json.Marshaler": types.NewInterfaceType(
102 []*types.Func{
103 types.NewFunc(token.NoPos, nil, "MarshalJSON", Signatures["(encoding/json.Marshaler).MarshalJSON"]),
104 },
105 nil,
106 ).Complete(),
107 }
108