Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(453)

Side by Side Diff: tests/compiler/dart2js/type_combination_test.dart

Issue 1126063002: Recognize unmodifiable lists (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/compiler/dart2js/mock_libraries.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import "package:async_helper/async_helper.dart"; 5 import "package:async_helper/async_helper.dart";
6 import "package:expect/expect.dart"; 6 import "package:expect/expect.dart";
7 import "compiler_helper.dart"; 7 import "compiler_helper.dart";
8 import "package:compiler/src/types/types.dart"; 8 import "package:compiler/src/types/types.dart";
9 import "type_mask_test_helper.dart"; 9 import "type_mask_test_helper.dart";
10 import 'package:compiler/src/js_backend/js_backend.dart'; 10 import 'package:compiler/src/js_backend/js_backend.dart';
(...skipping 16 matching lines...) Expand all
27 TypeMask nonPrimitive2; 27 TypeMask nonPrimitive2;
28 TypeMask potentialArray; 28 TypeMask potentialArray;
29 TypeMask potentialString; 29 TypeMask potentialString;
30 TypeMask jsInterceptor; 30 TypeMask jsInterceptor;
31 31
32 TypeMask jsIndexable; 32 TypeMask jsIndexable;
33 TypeMask jsReadableArray; 33 TypeMask jsReadableArray;
34 TypeMask jsMutableArray; 34 TypeMask jsMutableArray;
35 TypeMask jsFixedArray; 35 TypeMask jsFixedArray;
36 TypeMask jsExtendableArray; 36 TypeMask jsExtendableArray;
37 TypeMask jsUnmodifiableArray;
37 TypeMask jsString; 38 TypeMask jsString;
38 TypeMask jsStringOrNull; 39 TypeMask jsStringOrNull;
39 TypeMask jsArrayOrNull; 40 TypeMask jsArrayOrNull;
40 TypeMask jsMutableArrayOrNull; 41 TypeMask jsMutableArrayOrNull;
41 TypeMask jsFixedArrayOrNull; 42 TypeMask jsFixedArrayOrNull;
42 TypeMask jsExtendableArrayOrNull; 43 TypeMask jsExtendableArrayOrNull;
44 TypeMask jsUnmodifiableArrayOrNull;
43 TypeMask jsIndexableOrNull; 45 TypeMask jsIndexableOrNull;
44 TypeMask jsInterceptorOrNull; 46 TypeMask jsInterceptorOrNull;
45 47
46 48
47 class Pair { 49 class Pair {
48 final first; 50 final first;
49 final second; 51 final second;
50 Pair(this.first, this.second); 52 Pair(this.first, this.second);
51 int get hashCode => first.hashCode * 47 + second.hashCode; 53 int get hashCode => first.hashCode * 47 + second.hashCode;
52 bool operator==(Pair other) => 54 bool operator==(Pair other) =>
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 rule(emptyType, dynamicType, dynamicType); 108 rule(emptyType, dynamicType, dynamicType);
107 rule(emptyType, jsBoolean, jsBoolean); 109 rule(emptyType, jsBoolean, jsBoolean);
108 rule(emptyType, jsNumber, jsNumber); 110 rule(emptyType, jsNumber, jsNumber);
109 rule(emptyType, jsInteger, jsInteger); 111 rule(emptyType, jsInteger, jsInteger);
110 rule(emptyType, jsDouble, jsDouble); 112 rule(emptyType, jsDouble, jsDouble);
111 rule(emptyType, jsIndexable, jsIndexable); 113 rule(emptyType, jsIndexable, jsIndexable);
112 rule(emptyType, jsString, jsString); 114 rule(emptyType, jsString, jsString);
113 rule(emptyType, jsReadableArray, jsReadableArray); 115 rule(emptyType, jsReadableArray, jsReadableArray);
114 rule(emptyType, jsMutableArray, jsMutableArray); 116 rule(emptyType, jsMutableArray, jsMutableArray);
115 rule(emptyType, jsExtendableArray, jsExtendableArray); 117 rule(emptyType, jsExtendableArray, jsExtendableArray);
118 rule(emptyType, jsUnmodifiableArray, jsUnmodifiableArray);
116 rule(emptyType, nonPrimitive1, nonPrimitive1); 119 rule(emptyType, nonPrimitive1, nonPrimitive1);
117 rule(emptyType, nonPrimitive2, nonPrimitive2); 120 rule(emptyType, nonPrimitive2, nonPrimitive2);
118 rule(emptyType, potentialArray, potentialArray); 121 rule(emptyType, potentialArray, potentialArray);
119 rule(emptyType, potentialString, potentialString); 122 rule(emptyType, potentialString, potentialString);
120 rule(emptyType, jsBooleanOrNull, jsBooleanOrNull); 123 rule(emptyType, jsBooleanOrNull, jsBooleanOrNull);
121 rule(emptyType, jsNumberOrNull, jsNumberOrNull); 124 rule(emptyType, jsNumberOrNull, jsNumberOrNull);
122 rule(emptyType, jsIntegerOrNull, jsIntegerOrNull); 125 rule(emptyType, jsIntegerOrNull, jsIntegerOrNull);
123 rule(emptyType, jsDoubleOrNull, jsDoubleOrNull); 126 rule(emptyType, jsDoubleOrNull, jsDoubleOrNull);
124 rule(emptyType, jsStringOrNull, jsStringOrNull); 127 rule(emptyType, jsStringOrNull, jsStringOrNull);
125 rule(emptyType, nullType, nullType); 128 rule(emptyType, nullType, nullType);
126 rule(emptyType, jsFixedArray, jsFixedArray); 129 rule(emptyType, jsFixedArray, jsFixedArray);
127 130
128 rule(dynamicType, dynamicType, dynamicType); 131 rule(dynamicType, dynamicType, dynamicType);
129 rule(dynamicType, jsBoolean, dynamicType); 132 rule(dynamicType, jsBoolean, dynamicType);
130 rule(dynamicType, jsNumber, dynamicType); 133 rule(dynamicType, jsNumber, dynamicType);
131 rule(dynamicType, jsInteger, dynamicType); 134 rule(dynamicType, jsInteger, dynamicType);
132 rule(dynamicType, jsDouble, dynamicType); 135 rule(dynamicType, jsDouble, dynamicType);
133 rule(dynamicType, jsIndexable, dynamicType); 136 rule(dynamicType, jsIndexable, dynamicType);
134 rule(dynamicType, jsString, dynamicType); 137 rule(dynamicType, jsString, dynamicType);
135 rule(dynamicType, jsReadableArray, dynamicType); 138 rule(dynamicType, jsReadableArray, dynamicType);
136 rule(dynamicType, jsMutableArray, dynamicType); 139 rule(dynamicType, jsMutableArray, dynamicType);
137 rule(dynamicType, jsExtendableArray, dynamicType); 140 rule(dynamicType, jsExtendableArray, dynamicType);
141 rule(dynamicType, jsUnmodifiableArray, dynamicType);
138 rule(dynamicType, nonPrimitive1, dynamicType); 142 rule(dynamicType, nonPrimitive1, dynamicType);
139 rule(dynamicType, nonPrimitive2, dynamicType); 143 rule(dynamicType, nonPrimitive2, dynamicType);
140 rule(dynamicType, potentialArray, dynamicType); 144 rule(dynamicType, potentialArray, dynamicType);
141 rule(dynamicType, potentialString, dynamicType); 145 rule(dynamicType, potentialString, dynamicType);
142 rule(dynamicType, jsBooleanOrNull, dynamicType); 146 rule(dynamicType, jsBooleanOrNull, dynamicType);
143 rule(dynamicType, jsNumberOrNull, dynamicType); 147 rule(dynamicType, jsNumberOrNull, dynamicType);
144 rule(dynamicType, jsIntegerOrNull, dynamicType); 148 rule(dynamicType, jsIntegerOrNull, dynamicType);
145 rule(dynamicType, jsDoubleOrNull, dynamicType); 149 rule(dynamicType, jsDoubleOrNull, dynamicType);
146 rule(dynamicType, jsStringOrNull, dynamicType); 150 rule(dynamicType, jsStringOrNull, dynamicType);
147 rule(dynamicType, nullType, dynamicType); 151 rule(dynamicType, nullType, dynamicType);
148 rule(dynamicType, jsFixedArray, dynamicType); 152 rule(dynamicType, jsFixedArray, dynamicType);
149 153
150 rule(jsBoolean, jsBoolean, jsBoolean); 154 rule(jsBoolean, jsBoolean, jsBoolean);
151 rule(jsBoolean, jsNumber, jsInterceptor); 155 rule(jsBoolean, jsNumber, jsInterceptor);
152 rule(jsBoolean, jsInteger, jsInterceptor); 156 rule(jsBoolean, jsInteger, jsInterceptor);
153 rule(jsBoolean, jsDouble, jsInterceptor); 157 rule(jsBoolean, jsDouble, jsInterceptor);
154 rule(jsBoolean, jsIndexable, objectType); 158 rule(jsBoolean, jsIndexable, objectType);
155 rule(jsBoolean, jsString, jsInterceptor); 159 rule(jsBoolean, jsString, jsInterceptor);
156 rule(jsBoolean, jsReadableArray, jsInterceptor); 160 rule(jsBoolean, jsReadableArray, jsInterceptor);
157 rule(jsBoolean, jsMutableArray, jsInterceptor); 161 rule(jsBoolean, jsMutableArray, jsInterceptor);
158 rule(jsBoolean, jsExtendableArray, jsInterceptor); 162 rule(jsBoolean, jsExtendableArray, jsInterceptor);
163 rule(jsBoolean, jsUnmodifiableArray, jsInterceptor);
159 rule(jsBoolean, nonPrimitive1, objectType); 164 rule(jsBoolean, nonPrimitive1, objectType);
160 rule(jsBoolean, nonPrimitive2, objectType); 165 rule(jsBoolean, nonPrimitive2, objectType);
161 rule(jsBoolean, potentialArray, dynamicType); 166 rule(jsBoolean, potentialArray, dynamicType);
162 rule(jsBoolean, potentialString, dynamicType); 167 rule(jsBoolean, potentialString, dynamicType);
163 rule(jsBoolean, jsBooleanOrNull, jsBooleanOrNull); 168 rule(jsBoolean, jsBooleanOrNull, jsBooleanOrNull);
164 rule(jsBoolean, jsNumberOrNull, jsInterceptorOrNull); 169 rule(jsBoolean, jsNumberOrNull, jsInterceptorOrNull);
165 rule(jsBoolean, jsIntegerOrNull, jsInterceptorOrNull); 170 rule(jsBoolean, jsIntegerOrNull, jsInterceptorOrNull);
166 rule(jsBoolean, jsDoubleOrNull, jsInterceptorOrNull); 171 rule(jsBoolean, jsDoubleOrNull, jsInterceptorOrNull);
167 rule(jsBoolean, jsStringOrNull, jsInterceptorOrNull); 172 rule(jsBoolean, jsStringOrNull, jsInterceptorOrNull);
168 rule(jsBoolean, nullType, jsBooleanOrNull); 173 rule(jsBoolean, nullType, jsBooleanOrNull);
169 rule(jsBoolean, jsFixedArray, jsInterceptor); 174 rule(jsBoolean, jsFixedArray, jsInterceptor);
170 175
171 rule(jsNumber, jsNumber, jsNumber); 176 rule(jsNumber, jsNumber, jsNumber);
172 rule(jsNumber, jsInteger, jsNumber); 177 rule(jsNumber, jsInteger, jsNumber);
173 rule(jsNumber, jsDouble, jsNumber); 178 rule(jsNumber, jsDouble, jsNumber);
174 rule(jsNumber, jsIndexable, objectType); 179 rule(jsNumber, jsIndexable, objectType);
175 rule(jsNumber, jsString, jsInterceptor); 180 rule(jsNumber, jsString, jsInterceptor);
176 rule(jsNumber, jsReadableArray, jsInterceptor); 181 rule(jsNumber, jsReadableArray, jsInterceptor);
177 rule(jsNumber, jsMutableArray, jsInterceptor); 182 rule(jsNumber, jsMutableArray, jsInterceptor);
178 rule(jsNumber, jsExtendableArray, jsInterceptor); 183 rule(jsNumber, jsExtendableArray, jsInterceptor);
184 rule(jsNumber, jsUnmodifiableArray, jsInterceptor);
179 rule(jsNumber, nonPrimitive1, objectType); 185 rule(jsNumber, nonPrimitive1, objectType);
180 rule(jsNumber, nonPrimitive2, objectType); 186 rule(jsNumber, nonPrimitive2, objectType);
181 rule(jsNumber, potentialArray, dynamicType); 187 rule(jsNumber, potentialArray, dynamicType);
182 rule(jsNumber, potentialString, dynamicType); 188 rule(jsNumber, potentialString, dynamicType);
183 rule(jsNumber, jsBooleanOrNull, jsInterceptorOrNull); 189 rule(jsNumber, jsBooleanOrNull, jsInterceptorOrNull);
184 rule(jsNumber, jsNumberOrNull, jsNumberOrNull); 190 rule(jsNumber, jsNumberOrNull, jsNumberOrNull);
185 rule(jsNumber, jsIntegerOrNull, jsNumberOrNull); 191 rule(jsNumber, jsIntegerOrNull, jsNumberOrNull);
186 rule(jsNumber, jsDoubleOrNull, jsNumberOrNull); 192 rule(jsNumber, jsDoubleOrNull, jsNumberOrNull);
187 rule(jsNumber, jsStringOrNull, jsInterceptorOrNull); 193 rule(jsNumber, jsStringOrNull, jsInterceptorOrNull);
188 rule(jsNumber, nullType, jsNumberOrNull); 194 rule(jsNumber, nullType, jsNumberOrNull);
189 rule(jsNumber, jsFixedArray, jsInterceptor); 195 rule(jsNumber, jsFixedArray, jsInterceptor);
190 196
191 rule(jsInteger, jsInteger, jsInteger); 197 rule(jsInteger, jsInteger, jsInteger);
192 rule(jsInteger, jsDouble, jsNumber); 198 rule(jsInteger, jsDouble, jsNumber);
193 rule(jsInteger, jsIndexable, objectType); 199 rule(jsInteger, jsIndexable, objectType);
194 rule(jsInteger, jsString, jsInterceptor); 200 rule(jsInteger, jsString, jsInterceptor);
195 rule(jsInteger, jsReadableArray, jsInterceptor); 201 rule(jsInteger, jsReadableArray, jsInterceptor);
196 rule(jsInteger, jsMutableArray, jsInterceptor); 202 rule(jsInteger, jsMutableArray, jsInterceptor);
197 rule(jsInteger, jsExtendableArray, jsInterceptor); 203 rule(jsInteger, jsExtendableArray, jsInterceptor);
204 rule(jsInteger, jsUnmodifiableArray, jsInterceptor);
198 rule(jsInteger, nonPrimitive1, objectType); 205 rule(jsInteger, nonPrimitive1, objectType);
199 rule(jsInteger, nonPrimitive2, objectType); 206 rule(jsInteger, nonPrimitive2, objectType);
200 rule(jsInteger, potentialArray, dynamicType); 207 rule(jsInteger, potentialArray, dynamicType);
201 rule(jsInteger, potentialString, dynamicType); 208 rule(jsInteger, potentialString, dynamicType);
202 rule(jsInteger, jsBooleanOrNull, jsInterceptorOrNull); 209 rule(jsInteger, jsBooleanOrNull, jsInterceptorOrNull);
203 rule(jsInteger, jsNumberOrNull, jsNumberOrNull); 210 rule(jsInteger, jsNumberOrNull, jsNumberOrNull);
204 rule(jsInteger, jsIntegerOrNull, jsIntegerOrNull); 211 rule(jsInteger, jsIntegerOrNull, jsIntegerOrNull);
205 rule(jsInteger, jsDoubleOrNull, jsNumberOrNull); 212 rule(jsInteger, jsDoubleOrNull, jsNumberOrNull);
206 rule(jsInteger, jsStringOrNull, jsInterceptorOrNull); 213 rule(jsInteger, jsStringOrNull, jsInterceptorOrNull);
207 rule(jsInteger, nullType, jsIntegerOrNull); 214 rule(jsInteger, nullType, jsIntegerOrNull);
208 rule(jsInteger, jsFixedArray, jsInterceptor); 215 rule(jsInteger, jsFixedArray, jsInterceptor);
209 216
210 rule(jsDouble, jsDouble, jsDouble); 217 rule(jsDouble, jsDouble, jsDouble);
211 rule(jsDouble, jsIndexable, objectType); 218 rule(jsDouble, jsIndexable, objectType);
212 rule(jsDouble, jsString, jsInterceptor); 219 rule(jsDouble, jsString, jsInterceptor);
213 rule(jsDouble, jsReadableArray, jsInterceptor); 220 rule(jsDouble, jsReadableArray, jsInterceptor);
214 rule(jsDouble, jsMutableArray, jsInterceptor); 221 rule(jsDouble, jsMutableArray, jsInterceptor);
215 rule(jsDouble, jsExtendableArray, jsInterceptor); 222 rule(jsDouble, jsExtendableArray, jsInterceptor);
223 rule(jsDouble, jsUnmodifiableArray, jsInterceptor);
216 rule(jsDouble, nonPrimitive1, objectType); 224 rule(jsDouble, nonPrimitive1, objectType);
217 rule(jsDouble, nonPrimitive2, objectType); 225 rule(jsDouble, nonPrimitive2, objectType);
218 rule(jsDouble, potentialArray, dynamicType); 226 rule(jsDouble, potentialArray, dynamicType);
219 rule(jsDouble, potentialString, dynamicType); 227 rule(jsDouble, potentialString, dynamicType);
220 rule(jsDouble, jsBooleanOrNull, jsInterceptorOrNull); 228 rule(jsDouble, jsBooleanOrNull, jsInterceptorOrNull);
221 rule(jsDouble, jsNumberOrNull, jsNumberOrNull); 229 rule(jsDouble, jsNumberOrNull, jsNumberOrNull);
222 rule(jsDouble, jsIntegerOrNull, jsNumberOrNull); 230 rule(jsDouble, jsIntegerOrNull, jsNumberOrNull);
223 rule(jsDouble, jsDoubleOrNull, jsDoubleOrNull); 231 rule(jsDouble, jsDoubleOrNull, jsDoubleOrNull);
224 rule(jsDouble, jsStringOrNull, jsInterceptorOrNull); 232 rule(jsDouble, jsStringOrNull, jsInterceptorOrNull);
225 rule(jsDouble, nullType, jsDoubleOrNull); 233 rule(jsDouble, nullType, jsDoubleOrNull);
226 rule(jsDouble, jsFixedArray, jsInterceptor); 234 rule(jsDouble, jsFixedArray, jsInterceptor);
227 235
228 rule(jsIndexable, jsIndexable, jsIndexable); 236 rule(jsIndexable, jsIndexable, jsIndexable);
229 rule(jsIndexable, jsString, jsIndexable); 237 rule(jsIndexable, jsString, jsIndexable);
230 rule(jsIndexable, jsReadableArray, jsIndexable); 238 rule(jsIndexable, jsReadableArray, jsIndexable);
231 rule(jsIndexable, jsMutableArray, jsIndexable); 239 rule(jsIndexable, jsMutableArray, jsIndexable);
232 rule(jsIndexable, jsExtendableArray, jsIndexable); 240 rule(jsIndexable, jsExtendableArray, jsIndexable);
241 rule(jsIndexable, jsUnmodifiableArray, jsIndexable);
233 rule(jsIndexable, nonPrimitive1, objectType); 242 rule(jsIndexable, nonPrimitive1, objectType);
234 rule(jsIndexable, nonPrimitive2, objectType); 243 rule(jsIndexable, nonPrimitive2, objectType);
235 rule(jsIndexable, potentialArray, dynamicType); 244 rule(jsIndexable, potentialArray, dynamicType);
236 rule(jsIndexable, potentialString, dynamicType); 245 rule(jsIndexable, potentialString, dynamicType);
237 rule(jsIndexable, jsBooleanOrNull, dynamicType); 246 rule(jsIndexable, jsBooleanOrNull, dynamicType);
238 rule(jsIndexable, jsNumberOrNull, dynamicType); 247 rule(jsIndexable, jsNumberOrNull, dynamicType);
239 rule(jsIndexable, jsIntegerOrNull, dynamicType); 248 rule(jsIndexable, jsIntegerOrNull, dynamicType);
240 rule(jsIndexable, jsDoubleOrNull, dynamicType); 249 rule(jsIndexable, jsDoubleOrNull, dynamicType);
241 rule(jsIndexable, jsStringOrNull, jsIndexableOrNull); 250 rule(jsIndexable, jsStringOrNull, jsIndexableOrNull);
242 rule(jsIndexable, nullType, jsIndexableOrNull); 251 rule(jsIndexable, nullType, jsIndexableOrNull);
243 rule(jsIndexable, jsFixedArray, jsIndexable); 252 rule(jsIndexable, jsFixedArray, jsIndexable);
244 253
245 rule(jsString, jsString, jsString); 254 rule(jsString, jsString, jsString);
246 rule(jsString, jsReadableArray, jsIndexable); 255 rule(jsString, jsReadableArray, jsIndexable);
247 rule(jsString, jsMutableArray, jsIndexable); 256 rule(jsString, jsMutableArray, jsIndexable);
248 rule(jsString, jsExtendableArray, jsIndexable); 257 rule(jsString, jsExtendableArray, jsIndexable);
258 rule(jsString, jsUnmodifiableArray, jsIndexable);
249 rule(jsString, nonPrimitive1, objectType); 259 rule(jsString, nonPrimitive1, objectType);
250 rule(jsString, nonPrimitive2, objectType); 260 rule(jsString, nonPrimitive2, objectType);
251 rule(jsString, potentialArray, dynamicType); 261 rule(jsString, potentialArray, dynamicType);
252 rule(jsString, potentialString, potentialString); 262 rule(jsString, potentialString, potentialString);
253 rule(jsString, jsBooleanOrNull, jsInterceptorOrNull); 263 rule(jsString, jsBooleanOrNull, jsInterceptorOrNull);
254 rule(jsString, jsNumberOrNull, jsInterceptorOrNull); 264 rule(jsString, jsNumberOrNull, jsInterceptorOrNull);
255 rule(jsString, jsIntegerOrNull, jsInterceptorOrNull); 265 rule(jsString, jsIntegerOrNull, jsInterceptorOrNull);
256 rule(jsString, jsDoubleOrNull, jsInterceptorOrNull); 266 rule(jsString, jsDoubleOrNull, jsInterceptorOrNull);
257 rule(jsString, jsStringOrNull, jsStringOrNull); 267 rule(jsString, jsStringOrNull, jsStringOrNull);
258 rule(jsString, nullType, jsStringOrNull); 268 rule(jsString, nullType, jsStringOrNull);
259 rule(jsString, jsFixedArray, jsIndexable); 269 rule(jsString, jsFixedArray, jsIndexable);
260 270
261 rule(jsReadableArray, jsReadableArray, jsReadableArray); 271 rule(jsReadableArray, jsReadableArray, jsReadableArray);
262 rule(jsReadableArray, jsMutableArray, jsReadableArray); 272 rule(jsReadableArray, jsMutableArray, jsReadableArray);
263 rule(jsReadableArray, jsExtendableArray, jsReadableArray); 273 rule(jsReadableArray, jsExtendableArray, jsReadableArray);
274 rule(jsReadableArray, jsUnmodifiableArray, jsReadableArray);
264 rule(jsReadableArray, nonPrimitive1, objectType); 275 rule(jsReadableArray, nonPrimitive1, objectType);
265 rule(jsReadableArray, nonPrimitive2, objectType); 276 rule(jsReadableArray, nonPrimitive2, objectType);
266 rule(jsReadableArray, potentialArray, potentialArray); 277 rule(jsReadableArray, potentialArray, potentialArray);
267 rule(jsReadableArray, potentialString, dynamicType); 278 rule(jsReadableArray, potentialString, dynamicType);
268 rule(jsReadableArray, jsBooleanOrNull, jsInterceptorOrNull); 279 rule(jsReadableArray, jsBooleanOrNull, jsInterceptorOrNull);
269 rule(jsReadableArray, jsNumberOrNull, jsInterceptorOrNull); 280 rule(jsReadableArray, jsNumberOrNull, jsInterceptorOrNull);
270 rule(jsReadableArray, jsIntegerOrNull, jsInterceptorOrNull); 281 rule(jsReadableArray, jsIntegerOrNull, jsInterceptorOrNull);
271 rule(jsReadableArray, jsDoubleOrNull, jsInterceptorOrNull); 282 rule(jsReadableArray, jsDoubleOrNull, jsInterceptorOrNull);
272 rule(jsReadableArray, jsStringOrNull, jsIndexableOrNull); 283 rule(jsReadableArray, jsStringOrNull, jsIndexableOrNull);
273 rule(jsReadableArray, nullType, jsArrayOrNull); 284 rule(jsReadableArray, nullType, jsArrayOrNull);
274 rule(jsReadableArray, jsFixedArray, jsReadableArray); 285 rule(jsReadableArray, jsFixedArray, jsReadableArray);
275 286
276 rule(jsMutableArray, jsMutableArray, jsMutableArray); 287 rule(jsMutableArray, jsMutableArray, jsMutableArray);
277 rule(jsMutableArray, jsExtendableArray, jsMutableArray); 288 rule(jsMutableArray, jsExtendableArray, jsMutableArray);
289 rule(jsMutableArray, jsUnmodifiableArray, jsReadableArray);
278 rule(jsMutableArray, nonPrimitive1, objectType); 290 rule(jsMutableArray, nonPrimitive1, objectType);
279 rule(jsMutableArray, nonPrimitive2, objectType); 291 rule(jsMutableArray, nonPrimitive2, objectType);
280 rule(jsMutableArray, potentialArray, potentialArray); 292 rule(jsMutableArray, potentialArray, potentialArray);
281 rule(jsMutableArray, potentialString, dynamicType); 293 rule(jsMutableArray, potentialString, dynamicType);
282 rule(jsMutableArray, jsBooleanOrNull, jsInterceptorOrNull); 294 rule(jsMutableArray, jsBooleanOrNull, jsInterceptorOrNull);
283 rule(jsMutableArray, jsNumberOrNull, jsInterceptorOrNull); 295 rule(jsMutableArray, jsNumberOrNull, jsInterceptorOrNull);
284 rule(jsMutableArray, jsIntegerOrNull, jsInterceptorOrNull); 296 rule(jsMutableArray, jsIntegerOrNull, jsInterceptorOrNull);
285 rule(jsMutableArray, jsDoubleOrNull, jsInterceptorOrNull); 297 rule(jsMutableArray, jsDoubleOrNull, jsInterceptorOrNull);
286 rule(jsMutableArray, jsStringOrNull, jsIndexableOrNull); 298 rule(jsMutableArray, jsStringOrNull, jsIndexableOrNull);
287 rule(jsMutableArray, nullType, jsMutableArrayOrNull); 299 rule(jsMutableArray, nullType, jsMutableArrayOrNull);
288 rule(jsMutableArray, jsFixedArray, jsMutableArray); 300 rule(jsMutableArray, jsFixedArray, jsMutableArray);
289 301
290 rule(jsExtendableArray, jsExtendableArray, jsExtendableArray); 302 rule(jsExtendableArray, jsExtendableArray, jsExtendableArray);
303 rule(jsExtendableArray, jsUnmodifiableArray, jsReadableArray);
291 rule(jsExtendableArray, nonPrimitive1, objectType); 304 rule(jsExtendableArray, nonPrimitive1, objectType);
292 rule(jsExtendableArray, nonPrimitive2, objectType); 305 rule(jsExtendableArray, nonPrimitive2, objectType);
293 rule(jsExtendableArray, potentialArray, potentialArray); 306 rule(jsExtendableArray, potentialArray, potentialArray);
294 rule(jsExtendableArray, potentialString, dynamicType); 307 rule(jsExtendableArray, potentialString, dynamicType);
295 rule(jsExtendableArray, jsBooleanOrNull, jsInterceptorOrNull); 308 rule(jsExtendableArray, jsBooleanOrNull, jsInterceptorOrNull);
296 rule(jsExtendableArray, jsNumberOrNull, jsInterceptorOrNull); 309 rule(jsExtendableArray, jsNumberOrNull, jsInterceptorOrNull);
297 rule(jsExtendableArray, jsIntegerOrNull, jsInterceptorOrNull); 310 rule(jsExtendableArray, jsIntegerOrNull, jsInterceptorOrNull);
298 rule(jsExtendableArray, jsDoubleOrNull, jsInterceptorOrNull); 311 rule(jsExtendableArray, jsDoubleOrNull, jsInterceptorOrNull);
299 rule(jsExtendableArray, jsStringOrNull, jsIndexableOrNull); 312 rule(jsExtendableArray, jsStringOrNull, jsIndexableOrNull);
300 rule(jsExtendableArray, nullType, jsExtendableArrayOrNull); 313 rule(jsExtendableArray, nullType, jsExtendableArrayOrNull);
301 rule(jsExtendableArray, jsFixedArray, jsMutableArray); 314 rule(jsExtendableArray, jsFixedArray, jsMutableArray);
302 315
316 rule(jsUnmodifiableArray, jsUnmodifiableArray, jsUnmodifiableArray);
317 rule(jsUnmodifiableArray, nonPrimitive1, objectType);
318 rule(jsUnmodifiableArray, nonPrimitive2, objectType);
319 rule(jsUnmodifiableArray, potentialArray, potentialArray);
320 rule(jsUnmodifiableArray, potentialString, dynamicType);
321 rule(jsUnmodifiableArray, jsBooleanOrNull, jsInterceptorOrNull);
322 rule(jsUnmodifiableArray, jsNumberOrNull, jsInterceptorOrNull);
323 rule(jsUnmodifiableArray, jsIntegerOrNull, jsInterceptorOrNull);
324 rule(jsUnmodifiableArray, jsDoubleOrNull, jsInterceptorOrNull);
325 rule(jsUnmodifiableArray, jsStringOrNull, jsIndexableOrNull);
326 rule(jsUnmodifiableArray, nullType, jsUnmodifiableArrayOrNull);
327 rule(jsUnmodifiableArray, jsFixedArray, jsReadableArray);
328
303 rule(nonPrimitive1, nonPrimitive1, nonPrimitive1); 329 rule(nonPrimitive1, nonPrimitive1, nonPrimitive1);
304 rule(nonPrimitive1, nonPrimitive2, objectType); 330 rule(nonPrimitive1, nonPrimitive2, objectType);
305 rule(nonPrimitive1, potentialArray, dynamicType); 331 rule(nonPrimitive1, potentialArray, dynamicType);
306 rule(nonPrimitive1, potentialString, dynamicType); 332 rule(nonPrimitive1, potentialString, dynamicType);
307 rule(nonPrimitive1, jsBooleanOrNull, dynamicType); 333 rule(nonPrimitive1, jsBooleanOrNull, dynamicType);
308 rule(nonPrimitive1, jsNumberOrNull, dynamicType); 334 rule(nonPrimitive1, jsNumberOrNull, dynamicType);
309 rule(nonPrimitive1, jsIntegerOrNull, dynamicType); 335 rule(nonPrimitive1, jsIntegerOrNull, dynamicType);
310 rule(nonPrimitive1, jsDoubleOrNull, dynamicType); 336 rule(nonPrimitive1, jsDoubleOrNull, dynamicType);
311 rule(nonPrimitive1, jsStringOrNull, dynamicType); 337 rule(nonPrimitive1, jsStringOrNull, dynamicType);
312 rule(nonPrimitive1, jsFixedArray, objectType); 338 rule(nonPrimitive1, jsFixedArray, objectType);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 rule(emptyType, dynamicType, emptyType); 419 rule(emptyType, dynamicType, emptyType);
394 rule(emptyType, jsBoolean, emptyType); 420 rule(emptyType, jsBoolean, emptyType);
395 rule(emptyType, jsNumber, emptyType); 421 rule(emptyType, jsNumber, emptyType);
396 rule(emptyType, jsInteger, emptyType); 422 rule(emptyType, jsInteger, emptyType);
397 rule(emptyType, jsDouble, emptyType); 423 rule(emptyType, jsDouble, emptyType);
398 rule(emptyType, jsIndexable, emptyType); 424 rule(emptyType, jsIndexable, emptyType);
399 rule(emptyType, jsString, emptyType); 425 rule(emptyType, jsString, emptyType);
400 rule(emptyType, jsReadableArray, emptyType); 426 rule(emptyType, jsReadableArray, emptyType);
401 rule(emptyType, jsMutableArray, emptyType); 427 rule(emptyType, jsMutableArray, emptyType);
402 rule(emptyType, jsExtendableArray, emptyType); 428 rule(emptyType, jsExtendableArray, emptyType);
429 rule(emptyType, jsUnmodifiableArray, emptyType);
403 rule(emptyType, nonPrimitive1, emptyType); 430 rule(emptyType, nonPrimitive1, emptyType);
404 rule(emptyType, nonPrimitive2, emptyType); 431 rule(emptyType, nonPrimitive2, emptyType);
405 rule(emptyType, potentialArray, emptyType); 432 rule(emptyType, potentialArray, emptyType);
406 rule(emptyType, potentialString, emptyType); 433 rule(emptyType, potentialString, emptyType);
407 rule(emptyType, jsBooleanOrNull, emptyType); 434 rule(emptyType, jsBooleanOrNull, emptyType);
408 rule(emptyType, jsNumberOrNull, emptyType); 435 rule(emptyType, jsNumberOrNull, emptyType);
409 rule(emptyType, jsIntegerOrNull, emptyType); 436 rule(emptyType, jsIntegerOrNull, emptyType);
410 rule(emptyType, jsDoubleOrNull, emptyType); 437 rule(emptyType, jsDoubleOrNull, emptyType);
411 rule(emptyType, jsStringOrNull, emptyType); 438 rule(emptyType, jsStringOrNull, emptyType);
412 rule(emptyType, nullType, emptyType); 439 rule(emptyType, nullType, emptyType);
413 rule(emptyType, jsFixedArray, emptyType); 440 rule(emptyType, jsFixedArray, emptyType);
414 441
415 rule(dynamicType, dynamicType, dynamicType); 442 rule(dynamicType, dynamicType, dynamicType);
416 rule(dynamicType, jsBoolean, jsBoolean); 443 rule(dynamicType, jsBoolean, jsBoolean);
417 rule(dynamicType, jsNumber, jsNumber); 444 rule(dynamicType, jsNumber, jsNumber);
418 rule(dynamicType, jsInteger, jsInteger); 445 rule(dynamicType, jsInteger, jsInteger);
419 rule(dynamicType, jsDouble, jsDouble); 446 rule(dynamicType, jsDouble, jsDouble);
420 rule(dynamicType, jsIndexable, jsIndexable); 447 rule(dynamicType, jsIndexable, jsIndexable);
421 rule(dynamicType, jsString, jsString); 448 rule(dynamicType, jsString, jsString);
422 rule(dynamicType, jsReadableArray, jsReadableArray); 449 rule(dynamicType, jsReadableArray, jsReadableArray);
423 rule(dynamicType, jsMutableArray, jsMutableArray); 450 rule(dynamicType, jsMutableArray, jsMutableArray);
424 rule(dynamicType, jsExtendableArray, jsExtendableArray); 451 rule(dynamicType, jsExtendableArray, jsExtendableArray);
452 rule(dynamicType, jsUnmodifiableArray, jsUnmodifiableArray);
425 rule(dynamicType, nonPrimitive1, nonPrimitive1); 453 rule(dynamicType, nonPrimitive1, nonPrimitive1);
426 rule(dynamicType, nonPrimitive2, nonPrimitive2); 454 rule(dynamicType, nonPrimitive2, nonPrimitive2);
427 rule(dynamicType, potentialArray, potentialArray); 455 rule(dynamicType, potentialArray, potentialArray);
428 rule(dynamicType, potentialString, potentialString); 456 rule(dynamicType, potentialString, potentialString);
429 rule(dynamicType, jsBooleanOrNull, jsBooleanOrNull); 457 rule(dynamicType, jsBooleanOrNull, jsBooleanOrNull);
430 rule(dynamicType, jsNumberOrNull, jsNumberOrNull); 458 rule(dynamicType, jsNumberOrNull, jsNumberOrNull);
431 rule(dynamicType, jsIntegerOrNull, jsIntegerOrNull); 459 rule(dynamicType, jsIntegerOrNull, jsIntegerOrNull);
432 rule(dynamicType, jsDoubleOrNull, jsDoubleOrNull); 460 rule(dynamicType, jsDoubleOrNull, jsDoubleOrNull);
433 rule(dynamicType, jsStringOrNull, jsStringOrNull); 461 rule(dynamicType, jsStringOrNull, jsStringOrNull);
434 rule(dynamicType, nullType, nullType); 462 rule(dynamicType, nullType, nullType);
435 rule(dynamicType, jsFixedArray, jsFixedArray); 463 rule(dynamicType, jsFixedArray, jsFixedArray);
436 464
437 rule(jsBoolean, jsBoolean, jsBoolean); 465 rule(jsBoolean, jsBoolean, jsBoolean);
438 rule(jsBoolean, jsNumber, emptyType); 466 rule(jsBoolean, jsNumber, emptyType);
439 rule(jsBoolean, jsInteger, emptyType); 467 rule(jsBoolean, jsInteger, emptyType);
440 rule(jsBoolean, jsDouble, emptyType); 468 rule(jsBoolean, jsDouble, emptyType);
441 rule(jsBoolean, jsIndexable, emptyType); 469 rule(jsBoolean, jsIndexable, emptyType);
442 rule(jsBoolean, jsString, emptyType); 470 rule(jsBoolean, jsString, emptyType);
443 rule(jsBoolean, jsReadableArray, emptyType); 471 rule(jsBoolean, jsReadableArray, emptyType);
444 rule(jsBoolean, jsMutableArray, emptyType); 472 rule(jsBoolean, jsMutableArray, emptyType);
445 rule(jsBoolean, jsExtendableArray, emptyType); 473 rule(jsBoolean, jsExtendableArray, emptyType);
474 rule(jsBoolean, jsUnmodifiableArray, emptyType);
446 rule(jsBoolean, nonPrimitive1, emptyType); 475 rule(jsBoolean, nonPrimitive1, emptyType);
447 rule(jsBoolean, nonPrimitive2, emptyType); 476 rule(jsBoolean, nonPrimitive2, emptyType);
448 rule(jsBoolean, potentialArray, emptyType); 477 rule(jsBoolean, potentialArray, emptyType);
449 rule(jsBoolean, potentialString, emptyType); 478 rule(jsBoolean, potentialString, emptyType);
450 rule(jsBoolean, jsBooleanOrNull, jsBoolean); 479 rule(jsBoolean, jsBooleanOrNull, jsBoolean);
451 rule(jsBoolean, jsNumberOrNull, emptyType); 480 rule(jsBoolean, jsNumberOrNull, emptyType);
452 rule(jsBoolean, jsIntegerOrNull, emptyType); 481 rule(jsBoolean, jsIntegerOrNull, emptyType);
453 rule(jsBoolean, jsDoubleOrNull, emptyType); 482 rule(jsBoolean, jsDoubleOrNull, emptyType);
454 rule(jsBoolean, jsStringOrNull, emptyType); 483 rule(jsBoolean, jsStringOrNull, emptyType);
455 rule(jsBoolean, nullType, emptyType); 484 rule(jsBoolean, nullType, emptyType);
456 rule(jsBoolean, jsFixedArray, emptyType); 485 rule(jsBoolean, jsFixedArray, emptyType);
457 486
458 rule(jsNumber, jsNumber, jsNumber); 487 rule(jsNumber, jsNumber, jsNumber);
459 rule(jsNumber, jsInteger, jsInteger); 488 rule(jsNumber, jsInteger, jsInteger);
460 rule(jsNumber, jsDouble, jsDouble); 489 rule(jsNumber, jsDouble, jsDouble);
461 rule(jsNumber, jsIndexable, emptyType); 490 rule(jsNumber, jsIndexable, emptyType);
462 rule(jsNumber, jsString, emptyType); 491 rule(jsNumber, jsString, emptyType);
463 rule(jsNumber, jsReadableArray, emptyType); 492 rule(jsNumber, jsReadableArray, emptyType);
464 rule(jsNumber, jsMutableArray, emptyType); 493 rule(jsNumber, jsMutableArray, emptyType);
465 rule(jsNumber, jsExtendableArray, emptyType); 494 rule(jsNumber, jsExtendableArray, emptyType);
495 rule(jsNumber, jsUnmodifiableArray, emptyType);
466 rule(jsNumber, nonPrimitive1, emptyType); 496 rule(jsNumber, nonPrimitive1, emptyType);
467 rule(jsNumber, nonPrimitive2, emptyType); 497 rule(jsNumber, nonPrimitive2, emptyType);
468 rule(jsNumber, potentialArray, emptyType); 498 rule(jsNumber, potentialArray, emptyType);
469 rule(jsNumber, potentialString, emptyType); 499 rule(jsNumber, potentialString, emptyType);
470 rule(jsNumber, jsBooleanOrNull, emptyType); 500 rule(jsNumber, jsBooleanOrNull, emptyType);
471 rule(jsNumber, jsNumberOrNull, jsNumber); 501 rule(jsNumber, jsNumberOrNull, jsNumber);
472 rule(jsNumber, jsIntegerOrNull, jsInteger); 502 rule(jsNumber, jsIntegerOrNull, jsInteger);
473 rule(jsNumber, jsDoubleOrNull, jsDouble); 503 rule(jsNumber, jsDoubleOrNull, jsDouble);
474 rule(jsNumber, jsStringOrNull, emptyType); 504 rule(jsNumber, jsStringOrNull, emptyType);
475 rule(jsNumber, nullType, emptyType); 505 rule(jsNumber, nullType, emptyType);
476 rule(jsNumber, jsFixedArray, emptyType); 506 rule(jsNumber, jsFixedArray, emptyType);
477 507
478 rule(jsInteger, jsInteger, jsInteger); 508 rule(jsInteger, jsInteger, jsInteger);
479 rule(jsInteger, jsDouble, emptyType); 509 rule(jsInteger, jsDouble, emptyType);
480 rule(jsInteger, jsIndexable, emptyType); 510 rule(jsInteger, jsIndexable, emptyType);
481 rule(jsInteger, jsString, emptyType); 511 rule(jsInteger, jsString, emptyType);
482 rule(jsInteger, jsReadableArray, emptyType); 512 rule(jsInteger, jsReadableArray, emptyType);
483 rule(jsInteger, jsMutableArray, emptyType); 513 rule(jsInteger, jsMutableArray, emptyType);
484 rule(jsInteger, jsExtendableArray, emptyType); 514 rule(jsInteger, jsExtendableArray, emptyType);
515 rule(jsInteger, jsUnmodifiableArray, emptyType);
485 rule(jsInteger, nonPrimitive1, emptyType); 516 rule(jsInteger, nonPrimitive1, emptyType);
486 rule(jsInteger, nonPrimitive2, emptyType); 517 rule(jsInteger, nonPrimitive2, emptyType);
487 rule(jsInteger, potentialArray, emptyType); 518 rule(jsInteger, potentialArray, emptyType);
488 rule(jsInteger, potentialString, emptyType); 519 rule(jsInteger, potentialString, emptyType);
489 rule(jsInteger, jsBooleanOrNull, emptyType); 520 rule(jsInteger, jsBooleanOrNull, emptyType);
490 rule(jsInteger, jsNumberOrNull, jsInteger); 521 rule(jsInteger, jsNumberOrNull, jsInteger);
491 rule(jsInteger, jsIntegerOrNull, jsInteger); 522 rule(jsInteger, jsIntegerOrNull, jsInteger);
492 rule(jsInteger, jsDoubleOrNull, emptyType); 523 rule(jsInteger, jsDoubleOrNull, emptyType);
493 rule(jsInteger, jsStringOrNull, emptyType); 524 rule(jsInteger, jsStringOrNull, emptyType);
494 rule(jsInteger, nullType, emptyType); 525 rule(jsInteger, nullType, emptyType);
495 rule(jsInteger, jsFixedArray, emptyType); 526 rule(jsInteger, jsFixedArray, emptyType);
496 527
497 rule(jsDouble, jsDouble, jsDouble); 528 rule(jsDouble, jsDouble, jsDouble);
498 rule(jsDouble, jsIndexable, emptyType); 529 rule(jsDouble, jsIndexable, emptyType);
499 rule(jsDouble, jsString, emptyType); 530 rule(jsDouble, jsString, emptyType);
500 rule(jsDouble, jsReadableArray, emptyType); 531 rule(jsDouble, jsReadableArray, emptyType);
501 rule(jsDouble, jsMutableArray, emptyType); 532 rule(jsDouble, jsMutableArray, emptyType);
502 rule(jsDouble, jsExtendableArray, emptyType); 533 rule(jsDouble, jsExtendableArray, emptyType);
534 rule(jsDouble, jsUnmodifiableArray, emptyType);
503 rule(jsDouble, nonPrimitive1, emptyType); 535 rule(jsDouble, nonPrimitive1, emptyType);
504 rule(jsDouble, nonPrimitive2, emptyType); 536 rule(jsDouble, nonPrimitive2, emptyType);
505 rule(jsDouble, potentialArray, emptyType); 537 rule(jsDouble, potentialArray, emptyType);
506 rule(jsDouble, potentialString, emptyType); 538 rule(jsDouble, potentialString, emptyType);
507 rule(jsDouble, jsBooleanOrNull, emptyType); 539 rule(jsDouble, jsBooleanOrNull, emptyType);
508 rule(jsDouble, jsNumberOrNull, jsDouble); 540 rule(jsDouble, jsNumberOrNull, jsDouble);
509 rule(jsDouble, jsIntegerOrNull, emptyType); 541 rule(jsDouble, jsIntegerOrNull, emptyType);
510 rule(jsDouble, jsDoubleOrNull, jsDouble); 542 rule(jsDouble, jsDoubleOrNull, jsDouble);
511 rule(jsDouble, jsStringOrNull, emptyType); 543 rule(jsDouble, jsStringOrNull, emptyType);
512 rule(jsDouble, nullType, emptyType); 544 rule(jsDouble, nullType, emptyType);
513 rule(jsDouble, jsFixedArray, emptyType); 545 rule(jsDouble, jsFixedArray, emptyType);
514 546
515 rule(jsIndexable, jsIndexable, jsIndexable); 547 rule(jsIndexable, jsIndexable, jsIndexable);
516 rule(jsIndexable, jsString, jsString); 548 rule(jsIndexable, jsString, jsString);
517 rule(jsIndexable, jsReadableArray, jsReadableArray); 549 rule(jsIndexable, jsReadableArray, jsReadableArray);
518 rule(jsIndexable, jsMutableArray, jsMutableArray); 550 rule(jsIndexable, jsMutableArray, jsMutableArray);
519 rule(jsIndexable, jsExtendableArray, jsExtendableArray); 551 rule(jsIndexable, jsExtendableArray, jsExtendableArray);
552 rule(jsIndexable, jsUnmodifiableArray, jsUnmodifiableArray);
520 rule(jsIndexable, nonPrimitive1, emptyType); 553 rule(jsIndexable, nonPrimitive1, emptyType);
521 rule(jsIndexable, nonPrimitive2, emptyType); 554 rule(jsIndexable, nonPrimitive2, emptyType);
522 rule(jsIndexable, potentialArray, new TypeMask.nonNullSubtype( 555 rule(jsIndexable, potentialArray, new TypeMask.nonNullSubtype(
523 backend.jsArrayClass, compiler.world)); 556 backend.jsArrayClass, compiler.world));
524 rule(jsIndexable, potentialString, new TypeMask.nonNullSubtype( 557 rule(jsIndexable, potentialString, new TypeMask.nonNullSubtype(
525 backend.jsStringClass, compiler.world)); 558 backend.jsStringClass, compiler.world));
526 rule(jsIndexable, jsBooleanOrNull, emptyType); 559 rule(jsIndexable, jsBooleanOrNull, emptyType);
527 rule(jsIndexable, jsNumberOrNull, emptyType); 560 rule(jsIndexable, jsNumberOrNull, emptyType);
528 rule(jsIndexable, jsIntegerOrNull, emptyType); 561 rule(jsIndexable, jsIntegerOrNull, emptyType);
529 rule(jsIndexable, jsDoubleOrNull, emptyType); 562 rule(jsIndexable, jsDoubleOrNull, emptyType);
530 rule(jsIndexable, jsStringOrNull, jsString); 563 rule(jsIndexable, jsStringOrNull, jsString);
531 rule(jsIndexable, nullType, emptyType); 564 rule(jsIndexable, nullType, emptyType);
532 rule(jsIndexable, jsFixedArray, jsFixedArray); 565 rule(jsIndexable, jsFixedArray, jsFixedArray);
533 566
534 rule(jsString, jsString, jsString); 567 rule(jsString, jsString, jsString);
535 rule(jsString, jsReadableArray, emptyType); 568 rule(jsString, jsReadableArray, emptyType);
536 rule(jsString, jsMutableArray, emptyType); 569 rule(jsString, jsMutableArray, emptyType);
537 rule(jsString, jsExtendableArray, emptyType); 570 rule(jsString, jsExtendableArray, emptyType);
571 rule(jsString, jsUnmodifiableArray, emptyType);
538 rule(jsString, nonPrimitive1, emptyType); 572 rule(jsString, nonPrimitive1, emptyType);
539 rule(jsString, nonPrimitive2, emptyType); 573 rule(jsString, nonPrimitive2, emptyType);
540 rule(jsString, potentialArray, emptyType); 574 rule(jsString, potentialArray, emptyType);
541 rule(jsString, potentialString, jsString); 575 rule(jsString, potentialString, jsString);
542 rule(jsString, jsBooleanOrNull, emptyType); 576 rule(jsString, jsBooleanOrNull, emptyType);
543 rule(jsString, jsNumberOrNull, emptyType); 577 rule(jsString, jsNumberOrNull, emptyType);
544 rule(jsString, jsIntegerOrNull, emptyType); 578 rule(jsString, jsIntegerOrNull, emptyType);
545 rule(jsString, jsDoubleOrNull, emptyType); 579 rule(jsString, jsDoubleOrNull, emptyType);
546 rule(jsString, jsStringOrNull, jsString); 580 rule(jsString, jsStringOrNull, jsString);
547 rule(jsString, nullType, emptyType); 581 rule(jsString, nullType, emptyType);
548 rule(jsString, jsFixedArray, emptyType); 582 rule(jsString, jsFixedArray, emptyType);
549 583
550 rule(jsReadableArray, jsReadableArray, jsReadableArray); 584 rule(jsReadableArray, jsReadableArray, jsReadableArray);
551 rule(jsReadableArray, jsMutableArray, jsMutableArray); 585 rule(jsReadableArray, jsMutableArray, jsMutableArray);
552 rule(jsReadableArray, jsExtendableArray, jsExtendableArray); 586 rule(jsReadableArray, jsExtendableArray, jsExtendableArray);
587 rule(jsReadableArray, jsUnmodifiableArray, jsUnmodifiableArray);
553 rule(jsReadableArray, nonPrimitive1, emptyType); 588 rule(jsReadableArray, nonPrimitive1, emptyType);
554 rule(jsReadableArray, nonPrimitive2, emptyType); 589 rule(jsReadableArray, nonPrimitive2, emptyType);
555 rule(jsReadableArray, potentialArray, jsReadableArray); 590 rule(jsReadableArray, potentialArray, jsReadableArray);
556 rule(jsReadableArray, potentialString, emptyType); 591 rule(jsReadableArray, potentialString, emptyType);
557 rule(jsReadableArray, jsBooleanOrNull, emptyType); 592 rule(jsReadableArray, jsBooleanOrNull, emptyType);
558 rule(jsReadableArray, jsNumberOrNull, emptyType); 593 rule(jsReadableArray, jsNumberOrNull, emptyType);
559 rule(jsReadableArray, jsIntegerOrNull, emptyType); 594 rule(jsReadableArray, jsIntegerOrNull, emptyType);
560 rule(jsReadableArray, jsDoubleOrNull, emptyType); 595 rule(jsReadableArray, jsDoubleOrNull, emptyType);
561 rule(jsReadableArray, jsStringOrNull, emptyType); 596 rule(jsReadableArray, jsStringOrNull, emptyType);
562 rule(jsReadableArray, nullType, emptyType); 597 rule(jsReadableArray, nullType, emptyType);
563 rule(jsReadableArray, jsFixedArray, jsFixedArray); 598 rule(jsReadableArray, jsFixedArray, jsFixedArray);
564 599
565 rule(jsMutableArray, jsMutableArray, jsMutableArray); 600 rule(jsMutableArray, jsMutableArray, jsMutableArray);
566 rule(jsMutableArray, jsExtendableArray, jsExtendableArray); 601 rule(jsMutableArray, jsExtendableArray, jsExtendableArray);
602 rule(jsMutableArray, jsUnmodifiableArray, emptyType);
567 rule(jsMutableArray, nonPrimitive1, emptyType); 603 rule(jsMutableArray, nonPrimitive1, emptyType);
568 rule(jsMutableArray, nonPrimitive2, emptyType); 604 rule(jsMutableArray, nonPrimitive2, emptyType);
569 rule(jsMutableArray, potentialArray, jsMutableArray); 605 rule(jsMutableArray, potentialArray, jsMutableArray);
570 rule(jsMutableArray, potentialString, emptyType); 606 rule(jsMutableArray, potentialString, emptyType);
571 rule(jsMutableArray, jsBooleanOrNull, emptyType); 607 rule(jsMutableArray, jsBooleanOrNull, emptyType);
572 rule(jsMutableArray, jsNumberOrNull, emptyType); 608 rule(jsMutableArray, jsNumberOrNull, emptyType);
573 rule(jsMutableArray, jsIntegerOrNull, emptyType); 609 rule(jsMutableArray, jsIntegerOrNull, emptyType);
574 rule(jsMutableArray, jsDoubleOrNull, emptyType); 610 rule(jsMutableArray, jsDoubleOrNull, emptyType);
575 rule(jsMutableArray, jsStringOrNull, emptyType); 611 rule(jsMutableArray, jsStringOrNull, emptyType);
576 rule(jsMutableArray, nullType, emptyType); 612 rule(jsMutableArray, nullType, emptyType);
577 rule(jsMutableArray, jsFixedArray, jsFixedArray); 613 rule(jsMutableArray, jsFixedArray, jsFixedArray);
578 614
579 rule(jsExtendableArray, jsExtendableArray, jsExtendableArray); 615 rule(jsExtendableArray, jsExtendableArray, jsExtendableArray);
616 rule(jsExtendableArray, jsUnmodifiableArray, emptyType);
580 rule(jsExtendableArray, nonPrimitive1, emptyType); 617 rule(jsExtendableArray, nonPrimitive1, emptyType);
581 rule(jsExtendableArray, nonPrimitive2, emptyType); 618 rule(jsExtendableArray, nonPrimitive2, emptyType);
582 rule(jsExtendableArray, potentialArray, jsExtendableArray); 619 rule(jsExtendableArray, potentialArray, jsExtendableArray);
583 rule(jsExtendableArray, potentialString, emptyType); 620 rule(jsExtendableArray, potentialString, emptyType);
584 rule(jsExtendableArray, jsBooleanOrNull, emptyType); 621 rule(jsExtendableArray, jsBooleanOrNull, emptyType);
585 rule(jsExtendableArray, jsNumberOrNull, emptyType); 622 rule(jsExtendableArray, jsNumberOrNull, emptyType);
586 rule(jsExtendableArray, jsIntegerOrNull, emptyType); 623 rule(jsExtendableArray, jsIntegerOrNull, emptyType);
587 rule(jsExtendableArray, jsDoubleOrNull, emptyType); 624 rule(jsExtendableArray, jsDoubleOrNull, emptyType);
588 rule(jsExtendableArray, jsStringOrNull, emptyType); 625 rule(jsExtendableArray, jsStringOrNull, emptyType);
589 rule(jsExtendableArray, nullType, emptyType); 626 rule(jsExtendableArray, nullType, emptyType);
590 rule(jsExtendableArray, jsFixedArray, emptyType); 627 rule(jsExtendableArray, jsFixedArray, emptyType);
591 628
629 rule(jsUnmodifiableArray, jsUnmodifiableArray, jsUnmodifiableArray);
630 rule(jsUnmodifiableArray, nonPrimitive1, emptyType);
631 rule(jsUnmodifiableArray, nonPrimitive2, emptyType);
632 rule(jsUnmodifiableArray, potentialArray, jsUnmodifiableArray);
633 rule(jsUnmodifiableArray, potentialString, emptyType);
634 rule(jsUnmodifiableArray, jsBooleanOrNull, emptyType);
635 rule(jsUnmodifiableArray, jsNumberOrNull, emptyType);
636 rule(jsUnmodifiableArray, jsIntegerOrNull, emptyType);
637 rule(jsUnmodifiableArray, jsDoubleOrNull, emptyType);
638 rule(jsUnmodifiableArray, jsStringOrNull, emptyType);
639 rule(jsUnmodifiableArray, nullType, emptyType);
640 rule(jsUnmodifiableArray, jsFixedArray, emptyType);
641
592 rule(nonPrimitive1, nonPrimitive1, nonPrimitive1); 642 rule(nonPrimitive1, nonPrimitive1, nonPrimitive1);
593 rule(nonPrimitive1, nonPrimitive2, emptyType); 643 rule(nonPrimitive1, nonPrimitive2, emptyType);
594 rule(nonPrimitive1, potentialArray, emptyType); 644 rule(nonPrimitive1, potentialArray, emptyType);
595 rule(nonPrimitive1, potentialString, emptyType); 645 rule(nonPrimitive1, potentialString, emptyType);
596 rule(nonPrimitive1, jsBooleanOrNull, emptyType); 646 rule(nonPrimitive1, jsBooleanOrNull, emptyType);
597 rule(nonPrimitive1, jsNumberOrNull, emptyType); 647 rule(nonPrimitive1, jsNumberOrNull, emptyType);
598 rule(nonPrimitive1, jsIntegerOrNull, emptyType); 648 rule(nonPrimitive1, jsIntegerOrNull, emptyType);
599 rule(nonPrimitive1, jsDoubleOrNull, emptyType); 649 rule(nonPrimitive1, jsDoubleOrNull, emptyType);
600 rule(nonPrimitive1, jsStringOrNull, emptyType); 650 rule(nonPrimitive1, jsStringOrNull, emptyType);
601 rule(nonPrimitive1, nullType, emptyType); 651 rule(nonPrimitive1, nullType, emptyType);
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 jsMutableArrayOrNull = new TypeMask.subclass(backend.jsMutableArrayClass, 760 jsMutableArrayOrNull = new TypeMask.subclass(backend.jsMutableArrayClass,
711 world); 761 world);
712 jsMutableArray = new TypeMask.nonNullSubclass(backend.jsMutableArrayClass, 762 jsMutableArray = new TypeMask.nonNullSubclass(backend.jsMutableArrayClass,
713 world); 763 world);
714 jsFixedArrayOrNull = new TypeMask.exact(backend.jsFixedArrayClass, world); 764 jsFixedArrayOrNull = new TypeMask.exact(backend.jsFixedArrayClass, world);
715 jsFixedArray = new TypeMask.nonNullExact(backend.jsFixedArrayClass, world); 765 jsFixedArray = new TypeMask.nonNullExact(backend.jsFixedArrayClass, world);
716 jsExtendableArrayOrNull = new TypeMask.exact(backend.jsExtendableArrayClass, 766 jsExtendableArrayOrNull = new TypeMask.exact(backend.jsExtendableArrayClass,
717 world); 767 world);
718 jsExtendableArray = new TypeMask.nonNullExact( 768 jsExtendableArray = new TypeMask.nonNullExact(
719 backend.jsExtendableArrayClass, world); 769 backend.jsExtendableArrayClass, world);
770 jsUnmodifiableArrayOrNull =
771 new TypeMask.exact(backend.jsUnmodifiableArrayClass, world);
772 jsUnmodifiableArray =
773 new TypeMask.nonNullExact(backend.jsUnmodifiableArrayClass, world);
720 jsIndexableOrNull = new TypeMask.subtype(backend.jsIndexableClass, world); 774 jsIndexableOrNull = new TypeMask.subtype(backend.jsIndexableClass, world);
721 jsIndexable = new TypeMask.nonNullSubtype(backend.jsIndexableClass, world); 775 jsIndexable = new TypeMask.nonNullSubtype(backend.jsIndexableClass, world);
722 jsInterceptorOrNull = new TypeMask.subclass(backend.jsInterceptorClass, 776 jsInterceptorOrNull = new TypeMask.subclass(backend.jsInterceptorClass,
723 world); 777 world);
724 jsStringOrNull = new TypeMask.exact(backend.jsStringClass, world); 778 jsStringOrNull = new TypeMask.exact(backend.jsStringClass, world);
725 jsString = new TypeMask.nonNullExact(backend.jsStringClass, world); 779 jsString = new TypeMask.nonNullExact(backend.jsStringClass, world);
726 jsBoolean = new TypeMask.nonNullExact(backend.jsBoolClass, world); 780 jsBoolean = new TypeMask.nonNullExact(backend.jsBoolClass, world);
727 jsNumber = new TypeMask.nonNullSubclass(backend.jsNumberClass, world); 781 jsNumber = new TypeMask.nonNullSubclass(backend.jsNumberClass, world);
728 jsInteger = new TypeMask.nonNullExact(backend.jsIntClass, world); 782 jsInteger = new TypeMask.nonNullExact(backend.jsIntClass, world);
729 jsDouble = new TypeMask.nonNullExact(backend.jsDoubleClass, world); 783 jsDouble = new TypeMask.nonNullExact(backend.jsDoubleClass, world);
730 jsBooleanOrNull = new TypeMask.exact(backend.jsBoolClass, world); 784 jsBooleanOrNull = new TypeMask.exact(backend.jsBoolClass, world);
731 jsNumberOrNull = new TypeMask.subclass(backend.jsNumberClass, world); 785 jsNumberOrNull = new TypeMask.subclass(backend.jsNumberClass, world);
732 jsIntegerOrNull = new TypeMask.exact(backend.jsIntClass, world); 786 jsIntegerOrNull = new TypeMask.exact(backend.jsIntClass, world);
733 jsDoubleOrNull = new TypeMask.exact(backend.jsDoubleClass, world); 787 jsDoubleOrNull = new TypeMask.exact(backend.jsDoubleClass, world);
734 nullType = const TypeMask.empty(); 788 nullType = const TypeMask.empty();
735 objectType = new TypeMask.nonNullSubclass( 789 objectType = new TypeMask.nonNullSubclass(
736 compiler.objectClass, world); 790 compiler.objectClass, world);
737 emptyType = const TypeMask.nonNullEmpty(); 791 emptyType = const TypeMask.nonNullEmpty();
738 dynamicType = new TypeMask.subclass( 792 dynamicType = new TypeMask.subclass(
739 compiler.objectClass, world); 793 compiler.objectClass, world);
740 794
741 testUnion(compiler); 795 testUnion(compiler);
742 testIntersection(compiler); 796 testIntersection(compiler);
743 testRegressions(compiler); 797 testRegressions(compiler);
744 })); 798 }));
745 } 799 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/mock_libraries.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698