TestPhp.hx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package unit;
  2. using StringTools;
  3. class TestPhp extends Test
  4. {
  5. var list : Array<Dynamic>;
  6. var list2 : Array<Dynamic>;
  7. function empty() return true;
  8. function testAbstractEnum()
  9. {
  10. eq(Abstract.getName(), "Abstract");
  11. var x = Const("foo");
  12. var s = switch(x) {
  13. case Const(s): s;
  14. case Abstract: "null";
  15. }
  16. eq("foo", s);
  17. }
  18. function testAbstractKeywordAsFunction()
  19. {
  20. t(empty());
  21. }
  22. function testList2()
  23. {
  24. list2 = new Array<Dynamic>();
  25. for( l in list2 ) {} // fails here
  26. t(true);
  27. }
  28. function testList()
  29. {
  30. list = new Array<Dynamic>();
  31. for( l in list ) {} // fails here
  32. t(true);
  33. }
  34. function testIssue1828()
  35. {
  36. var x = try {
  37. throw "foo";
  38. false;
  39. } catch (e:String) {
  40. true;
  41. }
  42. t(x);
  43. }
  44. function testIssue1521()
  45. {
  46. var pattern = "$a$b";
  47. var result = pattern.replace("$a","A").replace("$b","B");
  48. eq("AB", result);
  49. }
  50. function testIssue2146()
  51. {
  52. f(Class2146.test());
  53. }
  54. }
  55. class Class2146 {
  56. var array:Array<Class2146>;
  57. function new() {
  58. array = new Array<Class2146>();
  59. }
  60. public static function test() {
  61. var a = new Class2146();
  62. var b = new Class2146();
  63. var c = new Class2146();
  64. a.array.push(b);
  65. b.array.push(a);
  66. c.array.push(a);
  67. return Lambda.has(c.array,b);
  68. }
  69. }
  70. enum Annotation {
  71. Abstract;
  72. Const(i:String);
  73. }