@@ -53,86 +53,87 @@ type typeParam struct {
53
53
tidx int
54
54
}
55
55
56
- // initBuiltinOps initializes operators of the builtin package.
57
- func initBuiltinOps (builtin * types.Package , conf * Config ) {
58
- ops := [... ]struct {
59
- name string
60
- tparams []typeTParam
61
- params []typeParam
62
- result int
63
- }{
64
- {"Add" , []typeTParam {{"T" , addable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
65
- // func Gop_Add[T addable](a, b T) T
56
+ var _builtinOps = [... ]struct {
57
+ name string
58
+ tparams []typeTParam
59
+ params []typeParam
60
+ result int
61
+ }{
62
+ {"Add" , []typeTParam {{"T" , addable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
63
+ // func Gop_Add[T addable](a, b T) T
66
64
67
- {"Sub" , []typeTParam {{"T" , number }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
68
- // func Gop_Sub[T number](a, b T) T
65
+ {"Sub" , []typeTParam {{"T" , number }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
66
+ // func Gop_Sub[T number](a, b T) T
69
67
70
- {"Mul" , []typeTParam {{"T" , number }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
71
- // func Gop_Mul[T number](a, b T) T
68
+ {"Mul" , []typeTParam {{"T" , number }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
69
+ // func Gop_Mul[T number](a, b T) T
72
70
73
- {"Quo" , []typeTParam {{"T" , number }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
74
- // func Gop_Quo(a, b untyped_bigint) untyped_bigrat
75
- // func Gop_Quo[T number](a, b T) T
71
+ {"Quo" , []typeTParam {{"T" , number }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
72
+ // func Gop_Quo(a, b untyped_bigint) untyped_bigrat
73
+ // func Gop_Quo[T number](a, b T) T
76
74
77
- {"Rem" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
78
- // func Gop_Rem[T integer](a, b T) T
75
+ {"Rem" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
76
+ // func Gop_Rem[T integer](a, b T) T
79
77
80
- {"Or" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
81
- // func Gop_Or[T integer](a, b T) T
78
+ {"Or" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
79
+ // func Gop_Or[T integer](a, b T) T
82
80
83
- {"Xor" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
84
- // func Gop_Xor[T integer](a, b T) T
81
+ {"Xor" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
82
+ // func Gop_Xor[T integer](a, b T) T
85
83
86
- {"And" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
87
- // func Gop_And[T integer](a, b T) T
84
+ {"And" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
85
+ // func Gop_And[T integer](a, b T) T
88
86
89
- {"AndNot" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
90
- // func Gop_AndNot[T integer](a, b T) T
87
+ {"AndNot" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
88
+ // func Gop_AndNot[T integer](a, b T) T
91
89
92
- {"Lsh" , []typeTParam {{"T" , integer }, {"N" , ninteger }}, []typeParam {{"a" , 0 }, {"n" , 1 }}, 0 },
93
- // func Gop_Lsh[T integer, N ninteger](a T, n N) T
90
+ {"Lsh" , []typeTParam {{"T" , integer }, {"N" , ninteger }}, []typeParam {{"a" , 0 }, {"n" , 1 }}, 0 },
91
+ // func Gop_Lsh[T integer, N ninteger](a T, n N) T
94
92
95
- {"Rsh" , []typeTParam {{"T" , integer }, {"N" , ninteger }}, []typeParam {{"a" , 0 }, {"n" , 1 }}, 0 },
96
- // func Gop_Rsh[T integer, N ninteger](a T, n N) T
93
+ {"Rsh" , []typeTParam {{"T" , integer }, {"N" , ninteger }}, []typeParam {{"a" , 0 }, {"n" , 1 }}, 0 },
94
+ // func Gop_Rsh[T integer, N ninteger](a T, n N) T
97
95
98
- {"LT" , []typeTParam {{"T" , orderable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
99
- // func Gop_LT[T orderable](a, b T) untyped_bool
96
+ {"LT" , []typeTParam {{"T" , orderable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
97
+ // func Gop_LT[T orderable](a, b T) untyped_bool
100
98
101
- {"LE" , []typeTParam {{"T" , orderable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
102
- // func Gop_LE[T orderable](a, b T) untyped_bool
99
+ {"LE" , []typeTParam {{"T" , orderable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
100
+ // func Gop_LE[T orderable](a, b T) untyped_bool
103
101
104
- {"GT" , []typeTParam {{"T" , orderable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
105
- // func Gop_GT[T orderable](a, b T) untyped_bool
102
+ {"GT" , []typeTParam {{"T" , orderable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
103
+ // func Gop_GT[T orderable](a, b T) untyped_bool
106
104
107
- {"GE" , []typeTParam {{"T" , orderable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
108
- // func Gop_GE[T orderable](a, b T) untyped_bool
105
+ {"GE" , []typeTParam {{"T" , orderable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
106
+ // func Gop_GE[T orderable](a, b T) untyped_bool
109
107
110
- {"EQ" , []typeTParam {{"T" , comparable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
111
- // func Gop_EQ[T comparable](a, b T) untyped_bool
108
+ {"EQ" , []typeTParam {{"T" , comparable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
109
+ // func Gop_EQ[T comparable](a, b T) untyped_bool
112
110
113
- {"NE" , []typeTParam {{"T" , comparable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
114
- // func Gop_NE[T comparable](a, b T) untyped_bool
111
+ {"NE" , []typeTParam {{"T" , comparable }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, - 1 },
112
+ // func Gop_NE[T comparable](a, b T) untyped_bool
115
113
116
- {"LAnd" , []typeTParam {{"T" , cbool }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
117
- // func Gop_LAnd[T bool](a, b T) T
114
+ {"LAnd" , []typeTParam {{"T" , cbool }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
115
+ // func Gop_LAnd[T bool](a, b T) T
118
116
119
- {"LOr" , []typeTParam {{"T" , cbool }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
120
- // func Gop_LOr[T bool](a, b T) T
117
+ {"LOr" , []typeTParam {{"T" , cbool }}, []typeParam {{"a" , 0 }, {"b" , 0 }}, 0 },
118
+ // func Gop_LOr[T bool](a, b T) T
121
119
122
- {"Neg" , []typeTParam {{"T" , number }}, []typeParam {{"a" , 0 }}, 0 },
123
- // func Gop_Neg[T number](a T) T
120
+ {"Neg" , []typeTParam {{"T" , number }}, []typeParam {{"a" , 0 }}, 0 },
121
+ // func Gop_Neg[T number](a T) T
124
122
125
- {"Dup" , []typeTParam {{"T" , number }}, []typeParam {{"a" , 0 }}, 0 },
126
- // func Gop_Dup[T number](a T) T
123
+ {"Dup" , []typeTParam {{"T" , number }}, []typeParam {{"a" , 0 }}, 0 },
124
+ // func Gop_Dup[T number](a T) T
127
125
128
- {"Not" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }}, 0 },
129
- // func Gop_Not[T integer](a T) T
126
+ {"Not" , []typeTParam {{"T" , integer }}, []typeParam {{"a" , 0 }}, 0 },
127
+ // func Gop_Not[T integer](a T) T
130
128
131
- {"LNot" , []typeTParam {{"T" , cbool }}, []typeParam {{"a" , 0 }}, 0 },
132
- // func Gop_LNot[T bool](a T) T
133
- }
129
+ {"LNot" , []typeTParam {{"T" , cbool }}, []typeParam {{"a" , 0 }}, 0 },
130
+ // func Gop_LNot[T bool](a T) T
131
+ }
132
+
133
+ // initBuiltinOps initializes operators of the builtin package.
134
+ func initBuiltinOps (builtin * types.Package , conf * Config ) {
134
135
gbl := builtin .Scope ()
135
- for _ , op := range ops {
136
+ for _ , op := range _builtinOps {
136
137
tparams := newTParams (op .tparams )
137
138
n := len (op .params )
138
139
params := make ([]* types.Var , n )
@@ -184,48 +185,49 @@ func newTParams(params []typeTParam) []*TemplateParamType {
184
185
return tparams
185
186
}
186
187
187
- // initBuiltinAssignOps initializes assign operators of the builtin package.
188
- func initBuiltinAssignOps (builtin * types.Package ) {
189
- ops := [... ]struct {
190
- name string
191
- t Contract
192
- ninteger bool
193
- }{
194
- {"AddAssign" , addable , false },
195
- // func Gop_AddAssign[T addable](a *T, b T)
188
+ var _assignOps = [... ]struct {
189
+ name string
190
+ t Contract
191
+ ninteger bool
192
+ }{
193
+ {"AddAssign" , addable , false },
194
+ // func Gop_AddAssign[T addable](a *T, b T)
196
195
197
- {"SubAssign" , number , false },
198
- // func Gop_SubAssign[T number](a *T, b T)
196
+ {"SubAssign" , number , false },
197
+ // func Gop_SubAssign[T number](a *T, b T)
199
198
200
- {"MulAssign" , number , false },
201
- // func Gop_MulAssign[T number](a *T, b T)
199
+ {"MulAssign" , number , false },
200
+ // func Gop_MulAssign[T number](a *T, b T)
202
201
203
- {"QuoAssign" , number , false },
204
- // func Gop_QuoAssign[T number](a *T, b T)
202
+ {"QuoAssign" , number , false },
203
+ // func Gop_QuoAssign[T number](a *T, b T)
205
204
206
- {"RemAssign" , integer , false },
207
- // func Gop_RemAssign[T integer](a *T, b T)
205
+ {"RemAssign" , integer , false },
206
+ // func Gop_RemAssign[T integer](a *T, b T)
208
207
209
- {"OrAssign" , integer , false },
210
- // func Gop_OrAssign[T integer](a *T, b T)
208
+ {"OrAssign" , integer , false },
209
+ // func Gop_OrAssign[T integer](a *T, b T)
211
210
212
- {"XorAssign" , integer , false },
213
- // func Gop_XorAssign[T integer](a *T, b T)
211
+ {"XorAssign" , integer , false },
212
+ // func Gop_XorAssign[T integer](a *T, b T)
214
213
215
- {"AndAssign" , integer , false },
216
- // func Gop_Assign[T integer](a *T, b T)
214
+ {"AndAssign" , integer , false },
215
+ // func Gop_Assign[T integer](a *T, b T)
217
216
218
- {"AndNotAssign" , integer , false },
219
- // func Gop_AndNotAssign[T integer](a *T, b T)
217
+ {"AndNotAssign" , integer , false },
218
+ // func Gop_AndNotAssign[T integer](a *T, b T)
220
219
221
- {"LshAssign" , integer , true },
222
- // func Gop_LshAssign[T integer, N ninteger](a *T, n N)
220
+ {"LshAssign" , integer , true },
221
+ // func Gop_LshAssign[T integer, N ninteger](a *T, n N)
223
222
224
- {"RshAssign" , integer , true },
225
- // func Gop_RshAssign[T integer, N ninteger](a *T, n N)
226
- }
223
+ {"RshAssign" , integer , true },
224
+ // func Gop_RshAssign[T integer, N ninteger](a *T, n N)
225
+ }
226
+
227
+ // initBuiltinAssignOps initializes assign operators of the builtin package.
228
+ func initBuiltinAssignOps (builtin * types.Package ) {
227
229
gbl := builtin .Scope ()
228
- for _ , op := range ops {
230
+ for _ , op := range _assignOps {
229
231
tparams := newOpTParams (op .t , op .ninteger )
230
232
params := make ([]* types.Var , 2 )
231
233
params [0 ] = types .NewParam (token .NoPos , builtin , "a" , NewPointer (tparams [0 ]))
0 commit comments