OLD | NEW |
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:expect/expect.dart"; | 5 import "package:expect/expect.dart"; |
6 import '../../../sdk/lib/_internal/compiler/implementation/mirrors/mirrors.dart'
; | 6 import '../../../sdk/lib/_internal/compiler/implementation/mirrors/mirrors.dart'
; |
7 import '../../../sdk/lib/_internal/compiler/implementation/mirrors/mirrors_util.
dart'; | 7 import '../../../sdk/lib/_internal/compiler/implementation/mirrors/mirrors_util.
dart'; |
8 import '../../../sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirro
r.dart'; | 8 import '../../../sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirro
r.dart'; |
9 import '../../../sdk/lib/_internal/compiler/implementation/filenames.dart' | 9 import '../../../sdk/lib/_internal/compiler/implementation/filenames.dart' |
10 show currentDirectory, nativeToUriPath; | 10 show currentDirectory, nativeToUriPath; |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 "// Singleline comment 2.", metadata.text); | 259 "// Singleline comment 2.", metadata.text); |
260 Expect.stringEquals( | 260 Expect.stringEquals( |
261 "Singleline comment 2.", metadata.trimmedText); | 261 "Singleline comment 2.", metadata.trimmedText); |
262 | 262 |
263 // @Metadata(null) | 263 // @Metadata(null) |
264 metadata = metadataList[metadataListIndex++]; | 264 metadata = metadataList[metadataListIndex++]; |
265 Expect.isTrue(metadata is InstanceMirror); | 265 Expect.isTrue(metadata is InstanceMirror); |
266 Expect.isFalse(metadata.hasReflectee); | 266 Expect.isFalse(metadata.hasReflectee); |
267 Expect.throws(() => metadata.reflectee, (_) => true); | 267 Expect.throws(() => metadata.reflectee, (_) => true); |
268 Expect.equals(metadataType.originalDeclaration, metadata.type); | 268 Expect.equals(metadataType.originalDeclaration, metadata.type); |
269 metadata.getField('data').then((InstanceMirror data) { | 269 InstanceMirror data = metadata.getField('data'); |
270 Expect.isNotNull(data); | 270 Expect.isNotNull(data); |
271 Expect.isTrue(data.hasReflectee); | 271 Expect.isTrue(data.hasReflectee); |
272 Expect.isNull(data.reflectee); | 272 Expect.isNull(data.reflectee); |
273 }); | |
274 | 273 |
275 // @Metadata(true) | 274 // @Metadata(true) |
276 metadata = metadataList[metadataListIndex++]; | 275 metadata = metadataList[metadataListIndex++]; |
277 Expect.isTrue(metadata is InstanceMirror); | 276 Expect.isTrue(metadata is InstanceMirror); |
278 Expect.isFalse(metadata.hasReflectee); | 277 Expect.isFalse(metadata.hasReflectee); |
279 Expect.throws(() => metadata.reflectee, (_) => true); | 278 Expect.throws(() => metadata.reflectee, (_) => true); |
280 Expect.equals(metadataType.originalDeclaration, metadata.type); | 279 Expect.equals(metadataType.originalDeclaration, metadata.type); |
281 metadata.getField('data').then((InstanceMirror data) { | 280 data = metadata.getField('data'); |
282 Expect.isNotNull(data); | 281 Expect.isNotNull(data); |
283 Expect.isTrue(data.hasReflectee); | 282 Expect.isTrue(data.hasReflectee); |
284 Expect.isTrue(data.reflectee); | 283 Expect.isTrue(data.reflectee); |
285 }); | |
286 | 284 |
287 // @Metadata(false) | 285 // @Metadata(false) |
288 metadata = metadataList[metadataListIndex++]; | 286 metadata = metadataList[metadataListIndex++]; |
289 Expect.isTrue(metadata is InstanceMirror); | 287 Expect.isTrue(metadata is InstanceMirror); |
290 Expect.isFalse(metadata.hasReflectee); | 288 Expect.isFalse(metadata.hasReflectee); |
291 Expect.throws(() => metadata.reflectee, (_) => true); | 289 Expect.throws(() => metadata.reflectee, (_) => true); |
292 Expect.equals(metadataType.originalDeclaration, metadata.type); | 290 Expect.equals(metadataType.originalDeclaration, metadata.type); |
293 metadata.getField('data').then((InstanceMirror data) { | 291 data = metadata.getField('data'); |
294 Expect.isNotNull(data); | 292 Expect.isNotNull(data); |
295 Expect.isTrue(data.hasReflectee); | 293 Expect.isTrue(data.hasReflectee); |
296 Expect.isFalse(data.reflectee); | 294 Expect.isFalse(data.reflectee); |
297 }); | |
298 | 295 |
299 // @Metadata(0) | 296 // @Metadata(0) |
300 metadata = metadataList[metadataListIndex++]; | 297 metadata = metadataList[metadataListIndex++]; |
301 Expect.isTrue(metadata is InstanceMirror); | 298 Expect.isTrue(metadata is InstanceMirror); |
302 Expect.isFalse(metadata.hasReflectee); | 299 Expect.isFalse(metadata.hasReflectee); |
303 Expect.throws(() => metadata.reflectee, (_) => true); | 300 Expect.throws(() => metadata.reflectee, (_) => true); |
304 Expect.equals(metadataType.originalDeclaration, metadata.type); | 301 Expect.equals(metadataType.originalDeclaration, metadata.type); |
305 metadata.getField('data').then((InstanceMirror data) { | 302 data = metadata.getField('data'); |
306 Expect.isNotNull(data); | 303 Expect.isNotNull(data); |
307 Expect.isTrue(data.hasReflectee); | 304 Expect.isTrue(data.hasReflectee); |
308 Expect.equals(0, data.reflectee); | 305 Expect.equals(0, data.reflectee); |
309 }); | |
310 | 306 |
311 // @Metadata(1.5) | 307 // @Metadata(1.5) |
312 metadata = metadataList[metadataListIndex++]; | 308 metadata = metadataList[metadataListIndex++]; |
313 Expect.isTrue(metadata is InstanceMirror); | 309 Expect.isTrue(metadata is InstanceMirror); |
314 Expect.isFalse(metadata.hasReflectee); | 310 Expect.isFalse(metadata.hasReflectee); |
315 Expect.throws(() => metadata.reflectee, (_) => true); | 311 Expect.throws(() => metadata.reflectee, (_) => true); |
316 Expect.equals(metadataType.originalDeclaration, metadata.type); | 312 Expect.equals(metadataType.originalDeclaration, metadata.type); |
317 metadata.getField('data').then((InstanceMirror data) { | 313 data = metadata.getField('data'); |
318 Expect.isNotNull(data); | 314 Expect.isNotNull(data); |
319 Expect.isTrue(data.hasReflectee); | 315 Expect.isTrue(data.hasReflectee); |
320 Expect.equals(1.5, data.reflectee); | 316 Expect.equals(1.5, data.reflectee); |
321 }); | |
322 | 317 |
323 // @Metadata("Foo") | 318 // @Metadata("Foo") |
324 metadata = metadataList[metadataListIndex++]; | 319 metadata = metadataList[metadataListIndex++]; |
325 Expect.isTrue(metadata is InstanceMirror); | 320 Expect.isTrue(metadata is InstanceMirror); |
326 Expect.isFalse(metadata.hasReflectee); | 321 Expect.isFalse(metadata.hasReflectee); |
327 Expect.throws(() => metadata.reflectee, (_) => true); | 322 Expect.throws(() => metadata.reflectee, (_) => true); |
328 Expect.equals(metadataType.originalDeclaration, metadata.type); | 323 Expect.equals(metadataType.originalDeclaration, metadata.type); |
329 metadata.getField('data').then((InstanceMirror data) { | 324 data = metadata.getField('data'); |
330 Expect.isNotNull(data); | 325 Expect.isNotNull(data); |
331 Expect.isTrue(data.hasReflectee); | 326 Expect.isTrue(data.hasReflectee); |
332 Expect.stringEquals("Foo", data.reflectee); | 327 Expect.stringEquals("Foo", data.reflectee); |
333 }); | |
334 | 328 |
335 // @Metadata(const ["Foo"]) | 329 // @Metadata(const ["Foo"]) |
336 metadata = metadataList[metadataListIndex++]; | 330 metadata = metadataList[metadataListIndex++]; |
337 Expect.isTrue(metadata is InstanceMirror); | 331 Expect.isTrue(metadata is InstanceMirror); |
338 Expect.isFalse(metadata.hasReflectee); | 332 Expect.isFalse(metadata.hasReflectee); |
339 Expect.throws(() => metadata.reflectee, (_) => true); | 333 Expect.throws(() => metadata.reflectee, (_) => true); |
340 Expect.equals(metadataType.originalDeclaration, metadata.type); | 334 Expect.equals(metadataType.originalDeclaration, metadata.type); |
341 metadata.getField('data').then((InstanceMirror data) { | 335 data = metadata.getField('data'); |
342 Expect.isTrue(data is ListInstanceMirror); | 336 Expect.isTrue(data is ListInstanceMirror); |
343 Expect.isFalse(data.hasReflectee); | 337 Expect.isFalse(data.hasReflectee); |
344 Expect.throws(() => data.reflectee, (_) => true); | 338 Expect.throws(() => data.reflectee, (_) => true); |
345 ListInstanceMirror listData = data; | 339 ListInstanceMirror listData = data; |
346 Expect.equals(1, listData.length); | 340 Expect.equals(1, listData.length); |
347 listData[0].then((InstanceMirror element) { | 341 InstanceMirror element = listData[0]; |
348 Expect.isNotNull(element); | 342 Expect.isNotNull(element); |
349 Expect.isTrue(element.hasReflectee); | 343 Expect.isTrue(element.hasReflectee); |
350 Expect.stringEquals("Foo", element.reflectee); | 344 Expect.stringEquals("Foo", element.reflectee); |
351 }); | |
352 }); | |
353 | 345 |
354 // @Metadata(/* Inline comment */ const {'foo':"Foo"}) | 346 // @Metadata(/* Inline comment */ const {'foo':"Foo"}) |
355 metadata = metadataList[metadataListIndex++]; | 347 metadata = metadataList[metadataListIndex++]; |
356 Expect.isTrue(metadata is InstanceMirror); | 348 Expect.isTrue(metadata is InstanceMirror); |
357 Expect.isFalse(metadata.hasReflectee); | 349 Expect.isFalse(metadata.hasReflectee); |
358 Expect.throws(() => metadata.reflectee, (_) => true); | 350 Expect.throws(() => metadata.reflectee, (_) => true); |
359 Expect.equals(metadataType.originalDeclaration, metadata.type); | 351 Expect.equals(metadataType.originalDeclaration, metadata.type); |
360 metadata.getField('data').then((InstanceMirror data) { | 352 data = metadata.getField('data'); |
361 Expect.isTrue(data is MapInstanceMirror); | 353 Expect.isTrue(data is MapInstanceMirror); |
362 Expect.isFalse(data.hasReflectee); | 354 Expect.isFalse(data.hasReflectee); |
363 Expect.throws(() => data.reflectee, (_) => true); | 355 Expect.throws(() => data.reflectee, (_) => true); |
364 MapInstanceMirror mapData = data; | 356 MapInstanceMirror mapData = data; |
365 Expect.equals(1, mapData.length); | 357 Expect.equals(1, mapData.length); |
366 var it = mapData.keys.iterator; | 358 var it = mapData.keys.iterator; |
367 Expect.isTrue(it.moveNext()); | 359 Expect.isTrue(it.moveNext()); |
368 Expect.stringEquals('foo', it.current); | 360 Expect.stringEquals('foo', it.current); |
369 mapData['foo'].then((InstanceMirror element) { | 361 element = mapData['foo']; |
370 Expect.isNotNull(element); | 362 Expect.isNotNull(element); |
371 Expect.isTrue(element.hasReflectee); | 363 Expect.isTrue(element.hasReflectee); |
372 Expect.stringEquals("Foo", element.reflectee); | 364 Expect.stringEquals("Foo", element.reflectee); |
373 }); | 365 Expect.isNull(mapData['bar']); |
374 Expect.isNull(mapData['bar']); | |
375 }); | |
376 | 366 |
377 // @metadata | 367 // @metadata |
378 metadata = metadataList[metadataListIndex++]; | 368 metadata = metadataList[metadataListIndex++]; |
379 Expect.isTrue(metadata is InstanceMirror); | 369 Expect.isTrue(metadata is InstanceMirror); |
380 Expect.isFalse(metadata.hasReflectee); | 370 Expect.isFalse(metadata.hasReflectee); |
381 Expect.throws(() => metadata.reflectee, (_) => true); | 371 Expect.throws(() => metadata.reflectee, (_) => true); |
382 Expect.equals(metadataType.originalDeclaration, metadata.type); | 372 Expect.equals(metadataType.originalDeclaration, metadata.type); |
383 metadata.getField('data').then((InstanceMirror data) { | 373 data = metadata.getField('data'); |
384 Expect.isNotNull(data); | 374 Expect.isNotNull(data); |
385 Expect.isTrue(data.hasReflectee); | 375 Expect.isTrue(data.hasReflectee); |
386 Expect.isNull(data.reflectee); | 376 Expect.isNull(data.reflectee); |
387 }); | |
388 | 377 |
389 // /** Multiline doc comment. */ | 378 // /** Multiline doc comment. */ |
390 metadata = metadataList[metadataListIndex++]; | 379 metadata = metadataList[metadataListIndex++]; |
391 Expect.isTrue(metadata is InstanceMirror); | 380 Expect.isTrue(metadata is InstanceMirror); |
392 Expect.isFalse(metadata.hasReflectee); | 381 Expect.isFalse(metadata.hasReflectee); |
393 Expect.throws(() => metadata.reflectee, (_) => true); | 382 Expect.throws(() => metadata.reflectee, (_) => true); |
394 Expect.isTrue(metadata is CommentInstanceMirror); | 383 Expect.isTrue(metadata is CommentInstanceMirror); |
395 Expect.equals(commentType.originalDeclaration, metadata.type); | 384 Expect.equals(commentType.originalDeclaration, metadata.type); |
396 Expect.isTrue(metadata.isDocComment); | 385 Expect.isTrue(metadata.isDocComment); |
397 Expect.stringEquals( | 386 Expect.stringEquals( |
(...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1059 Expect.isTrue(privateFactoryConstructor.isPrivate); | 1048 Expect.isTrue(privateFactoryConstructor.isPrivate); |
1060 Expect.isFalse(privateFactoryConstructor.isConstConstructor); | 1049 Expect.isFalse(privateFactoryConstructor.isConstConstructor); |
1061 Expect.isFalse(privateFactoryConstructor.isRedirectingConstructor); | 1050 Expect.isFalse(privateFactoryConstructor.isRedirectingConstructor); |
1062 Expect.isFalse(privateFactoryConstructor.isGenerativeConstructor); | 1051 Expect.isFalse(privateFactoryConstructor.isGenerativeConstructor); |
1063 Expect.isTrue(privateFactoryConstructor.isFactoryConstructor); | 1052 Expect.isTrue(privateFactoryConstructor.isFactoryConstructor); |
1064 | 1053 |
1065 var metadata = privateClass.metadata; | 1054 var metadata = privateClass.metadata; |
1066 Expect.isNotNull(metadata); | 1055 Expect.isNotNull(metadata); |
1067 Expect.equals(0, metadata.length); | 1056 Expect.equals(0, metadata.length); |
1068 } | 1057 } |
OLD | NEW |