OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 CheckSub(T.Receiver, T.Any); | 311 CheckSub(T.Receiver, T.Any); |
312 CheckSub(T.Object, T.Any); | 312 CheckSub(T.Object, T.Any); |
313 CheckSub(T.Object, T.Receiver); | 313 CheckSub(T.Object, T.Receiver); |
314 CheckSub(T.Array, T.Object); | 314 CheckSub(T.Array, T.Object); |
315 CheckSub(T.Function, T.Object); | 315 CheckSub(T.Function, T.Object); |
316 CheckSub(T.Proxy, T.Receiver); | 316 CheckSub(T.Proxy, T.Receiver); |
317 CheckUnordered(T.Object, T.Proxy); | 317 CheckUnordered(T.Object, T.Proxy); |
318 CheckUnordered(T.Array, T.Function); | 318 CheckUnordered(T.Array, T.Function); |
319 | 319 |
320 // Structured subtyping | 320 // Structured subtyping |
321 CheckSub(T.None, T.ObjectClass); | |
322 CheckSub(T.None, T.ObjectConstant1); | |
323 CheckSub(T.ObjectClass, T.Any); | |
324 CheckSub(T.ObjectConstant1, T.Any); | |
325 | |
326 CheckSub(T.ObjectClass, T.Object); | 321 CheckSub(T.ObjectClass, T.Object); |
327 CheckSub(T.ArrayClass, T.Object); | 322 CheckSub(T.ArrayClass, T.Object); |
328 CheckUnordered(T.ObjectClass, T.ArrayClass); | 323 CheckUnordered(T.ObjectClass, T.ArrayClass); |
329 | 324 |
330 CheckSub(T.SmiConstant, T.Smi); | 325 CheckSub(T.SmiConstant, T.Smi); |
331 CheckSub(T.SmiConstant, T.Signed32); | 326 CheckSub(T.SmiConstant, T.Signed32); |
332 CheckSub(T.SmiConstant, T.Number); | 327 CheckSub(T.SmiConstant, T.Number); |
333 CheckSub(T.ObjectConstant1, T.Object); | 328 CheckSub(T.ObjectConstant1, T.Object); |
334 CheckSub(T.ObjectConstant2, T.Object); | 329 CheckSub(T.ObjectConstant2, T.Object); |
335 CheckSub(T.ArrayConstant1, T.Object); | 330 CheckSub(T.ArrayConstant1, T.Object); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 | 377 |
383 CheckOverlap(T.Receiver, T.Any); | 378 CheckOverlap(T.Receiver, T.Any); |
384 CheckOverlap(T.Object, T.Any); | 379 CheckOverlap(T.Object, T.Any); |
385 CheckOverlap(T.Object, T.Receiver); | 380 CheckOverlap(T.Object, T.Receiver); |
386 CheckOverlap(T.Array, T.Object); | 381 CheckOverlap(T.Array, T.Object); |
387 CheckOverlap(T.Function, T.Object); | 382 CheckOverlap(T.Function, T.Object); |
388 CheckOverlap(T.Proxy, T.Receiver); | 383 CheckOverlap(T.Proxy, T.Receiver); |
389 CheckDisjoint(T.Object, T.Proxy); | 384 CheckDisjoint(T.Object, T.Proxy); |
390 CheckDisjoint(T.Array, T.Function); | 385 CheckDisjoint(T.Array, T.Function); |
391 | 386 |
392 CheckOverlap(T.ObjectClass, T.Any); | |
393 CheckOverlap(T.ObjectConstant1, T.Any); | |
394 | |
395 CheckOverlap(T.ObjectClass, T.Object); | 387 CheckOverlap(T.ObjectClass, T.Object); |
396 CheckOverlap(T.ArrayClass, T.Object); | 388 CheckOverlap(T.ArrayClass, T.Object); |
397 CheckOverlap(T.ObjectClass, T.ObjectClass); | 389 CheckOverlap(T.ObjectClass, T.ObjectClass); |
398 CheckOverlap(T.ArrayClass, T.ArrayClass); | 390 CheckOverlap(T.ArrayClass, T.ArrayClass); |
399 CheckDisjoint(T.ObjectClass, T.ArrayClass); | 391 CheckDisjoint(T.ObjectClass, T.ArrayClass); |
400 | 392 |
401 CheckOverlap(T.SmiConstant, T.Smi); | 393 CheckOverlap(T.SmiConstant, T.Smi); |
402 CheckOverlap(T.SmiConstant, T.Signed32); | 394 CheckOverlap(T.SmiConstant, T.Signed32); |
403 CheckOverlap(T.SmiConstant, T.Number); | 395 CheckOverlap(T.SmiConstant, T.Number); |
404 CheckDisjoint(T.SmiConstant, T.Double); | 396 CheckDisjoint(T.SmiConstant, T.Double); |
(...skipping 28 matching lines...) Expand all Loading... |
433 CheckEqual(T.Union(T.None, T.Number), T.Number); | 425 CheckEqual(T.Union(T.None, T.Number), T.Number); |
434 CheckEqual(T.Union(T.Object, T.Proxy), T.Receiver); | 426 CheckEqual(T.Union(T.Object, T.Proxy), T.Receiver); |
435 CheckEqual(T.Union(T.Number, T.String), T.Union(T.String, T.Number)); | 427 CheckEqual(T.Union(T.Number, T.String), T.Union(T.String, T.Number)); |
436 CheckSub(T.Union(T.Number, T.String), T.Any); | 428 CheckSub(T.Union(T.Number, T.String), T.Any); |
437 | 429 |
438 // Class-class | 430 // Class-class |
439 CHECK(IsClass(Type::Union(T.ObjectClass, T.ObjectClass))); | 431 CHECK(IsClass(Type::Union(T.ObjectClass, T.ObjectClass))); |
440 CHECK(IsUnion(Type::Union(T.ObjectClass, T.ArrayClass))); | 432 CHECK(IsUnion(Type::Union(T.ObjectClass, T.ArrayClass))); |
441 | 433 |
442 CheckEqual(T.Union(T.ObjectClass, T.ObjectClass), T.ObjectClass); | 434 CheckEqual(T.Union(T.ObjectClass, T.ObjectClass), T.ObjectClass); |
443 CheckSub(T.None, T.Union(T.ObjectClass, T.ArrayClass)); | |
444 CheckSub(T.Union(T.ObjectClass, T.ArrayClass), T.Any); | |
445 CheckSub(T.ObjectClass, T.Union(T.ObjectClass, T.ArrayClass)); | 435 CheckSub(T.ObjectClass, T.Union(T.ObjectClass, T.ArrayClass)); |
446 CheckSub(T.ArrayClass, T.Union(T.ObjectClass, T.ArrayClass)); | 436 CheckSub(T.ArrayClass, T.Union(T.ObjectClass, T.ArrayClass)); |
447 CheckSub(T.Union(T.ObjectClass, T.ArrayClass), T.Object); | 437 CheckSub(T.Union(T.ObjectClass, T.ArrayClass), T.Object); |
448 CheckUnordered(T.Union(T.ObjectClass, T.ArrayClass), T.Array); | 438 CheckUnordered(T.Union(T.ObjectClass, T.ArrayClass), T.Array); |
449 CheckOverlap(T.Union(T.ObjectClass, T.ArrayClass), T.Array); | 439 CheckOverlap(T.Union(T.ObjectClass, T.ArrayClass), T.Array); |
450 CheckDisjoint(T.Union(T.ObjectClass, T.ArrayClass), T.Number); | 440 CheckDisjoint(T.Union(T.ObjectClass, T.ArrayClass), T.Number); |
451 | 441 |
452 // Constant-constant | 442 // Constant-constant |
453 CHECK(IsConstant(Type::Union(T.ObjectConstant1, T.ObjectConstant1))); | 443 CHECK(IsConstant(Type::Union(T.ObjectConstant1, T.ObjectConstant1))); |
454 CHECK(IsConstant(Type::Union(T.ArrayConstant1, T.ArrayConstant1))); | 444 CHECK(IsConstant(Type::Union(T.ArrayConstant1, T.ArrayConstant1))); |
455 CHECK(IsUnion(Type::Union(T.ObjectConstant1, T.ObjectConstant2))); | 445 CHECK(IsUnion(Type::Union(T.ObjectConstant1, T.ObjectConstant2))); |
456 | 446 |
457 CheckEqual(T.Union(T.ObjectConstant1, T.ObjectConstant1), T.ObjectConstant1); | 447 CheckEqual(T.Union(T.ObjectConstant1, T.ObjectConstant1), T.ObjectConstant1); |
458 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant1); | 448 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant1); |
459 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant2); | 449 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant2); |
460 CheckSub(T.None, T.Union(T.ObjectConstant1, T.ObjectConstant2)); | |
461 CheckSub(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.Any); | |
462 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)); | 450 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)); |
463 CheckSub(T.ObjectConstant2, T.Union(T.ObjectConstant1, T.ObjectConstant2)); | 451 CheckSub(T.ObjectConstant2, T.Union(T.ObjectConstant1, T.ObjectConstant2)); |
464 CheckSub(T.ArrayConstant2, T.Union(T.ArrayConstant1, T.ObjectConstant2)); | 452 CheckSub(T.ArrayConstant2, T.Union(T.ArrayConstant1, T.ObjectConstant2)); |
465 CheckSub(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.Object); | 453 CheckSub(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.Object); |
466 CheckUnordered(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.ObjectClass); | 454 CheckUnordered(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.ObjectClass); |
467 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array); | 455 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array); |
468 CheckOverlap(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array); | 456 CheckOverlap(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array); |
469 CheckOverlap(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ArrayConstant2); | 457 CheckOverlap(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ArrayConstant2); |
470 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Number); | 458 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Number); |
471 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ObjectClass); | 459 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ObjectClass); |
472 | 460 |
473 // Bitset-class | 461 // Bitset-class |
474 CHECK(IsBitset(Type::Union(T.ObjectClass, T.Object))); | 462 CHECK(IsBitset(Type::Union(T.ObjectClass, T.Object))); |
475 CHECK(IsUnion(Type::Union(T.ObjectClass, T.Number))); | 463 CHECK(IsUnion(Type::Union(T.ObjectClass, T.Number))); |
476 | 464 |
477 CheckEqual(T.Union(T.ObjectClass, T.Object), T.Object); | 465 CheckEqual(T.Union(T.ObjectClass, T.Object), T.Object); |
478 CheckSub(T.None, T.Union(T.ObjectClass, T.Number)); | |
479 CheckSub(T.Union(T.ObjectClass, T.Number), T.Any); | 466 CheckSub(T.Union(T.ObjectClass, T.Number), T.Any); |
480 CheckSub(T.Union(T.ObjectClass, T.Smi), T.Union(T.Object, T.Number)); | 467 CheckSub(T.Union(T.ObjectClass, T.Smi), T.Union(T.Object, T.Number)); |
481 CheckSub(T.Union(T.ObjectClass, T.Array), T.Object); | 468 CheckSub(T.Union(T.ObjectClass, T.Array), T.Object); |
482 CheckUnordered(T.Union(T.ObjectClass, T.String), T.Array); | 469 CheckUnordered(T.Union(T.ObjectClass, T.String), T.Array); |
483 CheckOverlap(T.Union(T.ObjectClass, T.String), T.Object); | 470 CheckOverlap(T.Union(T.ObjectClass, T.String), T.Object); |
484 CheckDisjoint(T.Union(T.ObjectClass, T.String), T.Number); | 471 CheckDisjoint(T.Union(T.ObjectClass, T.String), T.Number); |
485 | 472 |
486 // Bitset-constant | 473 // Bitset-constant |
487 CHECK(IsBitset(Type::Union(T.SmiConstant, T.Number))); | 474 CHECK(IsBitset(Type::Union(T.SmiConstant, T.Number))); |
488 CHECK(IsBitset(Type::Union(T.ObjectConstant1, T.Object))); | 475 CHECK(IsBitset(Type::Union(T.ObjectConstant1, T.Object))); |
489 CHECK(IsUnion(Type::Union(T.ObjectConstant2, T.Number))); | 476 CHECK(IsUnion(Type::Union(T.ObjectConstant2, T.Number))); |
490 | 477 |
491 CheckEqual(T.Union(T.SmiConstant, T.Number), T.Number); | 478 CheckEqual(T.Union(T.SmiConstant, T.Number), T.Number); |
492 CheckEqual(T.Union(T.ObjectConstant1, T.Object), T.Object); | 479 CheckEqual(T.Union(T.ObjectConstant1, T.Object), T.Object); |
493 CheckSub(T.None, T.Union(T.ObjectConstant1, T.Number)); | |
494 CheckSub(T.Union(T.ObjectConstant1, T.Number), T.Any); | 480 CheckSub(T.Union(T.ObjectConstant1, T.Number), T.Any); |
495 CheckSub(T.Union(T.ObjectConstant1, T.Signed32), T.Union(T.Object, T.Number)); | 481 CheckSub(T.Union(T.ObjectConstant1, T.Signed32), T.Union(T.Object, T.Number)); |
496 CheckSub(T.Union(T.ObjectConstant1, T.Array), T.Object); | 482 CheckSub(T.Union(T.ObjectConstant1, T.Array), T.Object); |
497 CheckUnordered(T.Union(T.ObjectConstant1, T.String), T.Array); | 483 CheckUnordered(T.Union(T.ObjectConstant1, T.String), T.Array); |
498 CheckOverlap(T.Union(T.ObjectConstant1, T.String), T.Object); | 484 CheckOverlap(T.Union(T.ObjectConstant1, T.String), T.Object); |
499 CheckDisjoint(T.Union(T.ObjectConstant1, T.String), T.Number); | 485 CheckDisjoint(T.Union(T.ObjectConstant1, T.String), T.Number); |
500 CheckEqual(T.Union(T.Signed32, T.Signed32Constant), T.Signed32); | 486 CheckEqual(T.Union(T.Signed32, T.Signed32Constant), T.Signed32); |
501 | 487 |
502 // Class-constant | 488 // Class-constant |
503 CHECK(IsUnion(Type::Union(T.ObjectConstant1, T.ObjectClass))); | 489 CHECK(IsUnion(Type::Union(T.ObjectConstant1, T.ObjectClass))); |
504 CHECK(IsUnion(Type::Union(T.ArrayClass, T.ObjectConstant2))); | 490 CHECK(IsUnion(Type::Union(T.ArrayClass, T.ObjectConstant2))); |
505 | 491 |
506 CheckSub(T.None, T.Union(T.ObjectConstant1, T.ArrayClass)); | |
507 CheckSub(T.Union(T.ObjectConstant1, T.ArrayClass), T.Any); | |
508 CheckSub(T.Union(T.ObjectConstant1, T.ArrayClass), T.Object); | 492 CheckSub(T.Union(T.ObjectConstant1, T.ArrayClass), T.Object); |
509 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ArrayClass)); | 493 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ArrayClass)); |
510 CheckSub(T.ArrayClass, T.Union(T.ObjectConstant1, T.ArrayClass)); | 494 CheckSub(T.ArrayClass, T.Union(T.ObjectConstant1, T.ArrayClass)); |
511 CheckUnordered(T.ObjectClass, T.Union(T.ObjectConstant1, T.ArrayClass)); | 495 CheckUnordered(T.ObjectClass, T.Union(T.ObjectConstant1, T.ArrayClass)); |
512 CheckSub( | 496 CheckSub( |
513 T.Union(T.ObjectConstant1, T.ArrayClass), T.Union(T.Array, T.Object)); | 497 T.Union(T.ObjectConstant1, T.ArrayClass), T.Union(T.Array, T.Object)); |
514 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayClass), T.ArrayConstant1); | 498 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayClass), T.ArrayConstant1); |
515 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectConstant2); | 499 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectConstant2); |
516 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectClass); | 500 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectClass); |
517 | 501 |
518 // Bitset-union | 502 // Bitset-union |
519 CHECK(IsBitset( | 503 CHECK(IsBitset( |
520 Type::Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)))); | 504 Type::Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)))); |
521 CHECK(IsUnion( | 505 CHECK(IsUnion( |
522 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.Number))); | 506 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.Number))); |
523 | 507 |
524 CheckEqual( | 508 CheckEqual( |
525 T.Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)), | 509 T.Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)), |
526 T.Object); | 510 T.Object); |
527 CheckEqual( | 511 CheckEqual( |
528 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number), | 512 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number), |
529 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass))); | 513 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass))); |
530 CheckSub( | 514 CheckSub( |
531 T.Double, | 515 T.Double, |
532 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number)); | 516 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number)); |
533 CheckSub( | 517 CheckSub( |
534 T.ObjectConstant1, | 518 T.ObjectConstant1, |
535 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double)); | 519 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double)); |
536 CheckSub( | 520 CheckSub( |
537 T.None, | |
538 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double)); | |
539 CheckSub( | |
540 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double), | 521 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double), |
541 T.Any); | 522 T.Any); |
542 CheckSub( | 523 CheckSub( |
543 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double), | 524 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double), |
544 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass))); | 525 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass))); |
545 | 526 |
546 // Class-union | 527 // Class-union |
547 CHECK(IsUnion( | 528 CHECK(IsUnion( |
548 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass))); | 529 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass))); |
549 CHECK(IsUnion( | 530 CHECK(IsUnion( |
550 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ObjectClass))); | 531 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ObjectClass))); |
551 | 532 |
552 CheckEqual( | 533 CheckEqual( |
553 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), | 534 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), |
554 T.Union(T.ObjectClass, T.ObjectConstant1)); | 535 T.Union(T.ObjectClass, T.ObjectConstant1)); |
555 CheckSub( | 536 CheckSub( |
556 T.None, | |
557 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass))); | |
558 CheckSub( | |
559 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), | |
560 T.Any); | |
561 CheckSub( | |
562 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), | 537 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), |
563 T.Object); | 538 T.Object); |
564 CheckEqual( | 539 CheckEqual( |
565 T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass), | 540 T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass), |
566 T.Union(T.ArrayClass, T.ObjectConstant2)); | 541 T.Union(T.ArrayClass, T.ObjectConstant2)); |
567 | 542 |
568 // Constant-union | 543 // Constant-union |
569 CHECK(IsUnion(Type::Union( | 544 CHECK(IsUnion(Type::Union( |
570 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)))); | 545 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)))); |
571 CHECK(IsUnion(Type::Union( | 546 CHECK(IsUnion(Type::Union( |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
736 T.Union(T.Union(T.ObjectConstant2, T.ObjectConstant1), T.ArrayClass), | 711 T.Union(T.Union(T.ObjectConstant2, T.ObjectConstant1), T.ArrayClass), |
737 T.Union( | 712 T.Union( |
738 T.ObjectConstant1, T.Union(T.ArrayConstant1, T.ObjectConstant2))), | 713 T.ObjectConstant1, T.Union(T.ArrayConstant1, T.ObjectConstant2))), |
739 T.Union(T.ObjectConstant2, T.ObjectConstant1)); | 714 T.Union(T.ObjectConstant2, T.ObjectConstant1)); |
740 CheckEqual( | 715 CheckEqual( |
741 T.Intersect( | 716 T.Intersect( |
742 T.Union(T.ObjectConstant2, T.ArrayConstant1), | 717 T.Union(T.ObjectConstant2, T.ArrayConstant1), |
743 T.Union(T.ObjectConstant1, T.ArrayConstant2)), | 718 T.Union(T.ObjectConstant1, T.ArrayConstant2)), |
744 T.ArrayConstant1); | 719 T.ArrayConstant1); |
745 } | 720 } |
OLD | NEW |