Bladeren bron

added inactive unit tests for field init

Simon Krajewski 13 jaren geleden
bovenliggende
commit
62ab1be9af
2 gewijzigde bestanden met toevoegingen van 71 en 0 verwijderingen
  1. 37 0
      tests/unit/MyClass.hx
  2. 34 0
      tests/unit/TestType.hx

+ 37 - 0
tests/unit/MyClass.hx

@@ -94,3 +94,40 @@ class Ctrv2 extends Ctrv1 {
 	public function new() { super(); }
 	public override function contravariant(arg:Base) { }
 }
+
+#if false
+
+class InitBase {
+	public var i = 2;
+	public var s = "foo";
+	public var b = true;
+	
+	public function new() { }
+}
+
+class InitChild extends InitBase { }
+
+class InitChildWithCtor extends InitBase {
+	public var t:Class<Dynamic> = String;
+	public function new(_) {
+		super();
+	}
+}
+
+class InitWithoutCtor {
+	public var i = 2;
+}
+
+class InitProperties {
+	public var accNull(default, null):Int = 3;
+	public var accDefault(default, default):Int = 3;
+	public var accFunc(default, set_accFunc):Int = 3;
+	public var accNever(default, never):Int = 3;
+	public var accDynamic(default, dynamic):Int = 3;
+	
+	function set_accFunc(v) return throw "setter was called"
+	
+	public function new() { }
+}
+
+#end

+ 34 - 0
tests/unit/TestType.hx

@@ -338,4 +338,38 @@ class TestType extends Test {
 		typedAs(cast (c, Ctrv1).contravariant, c1);
 		#end
 	}
+	
+	#if false
+	
+	function testInitFields()
+	{
+		var c = new InitBase();
+		eq(c.i, 2);
+		eq(c.s, "foo");
+		eq(c.b, true);
+		
+		var c = new InitChild();
+		eq(c.i, 2);
+		eq(c.s, "foo");
+		eq(c.b, true);
+		
+		var c = new InitChildWithCtor(null);
+		eq(c.i, 2);
+		eq(c.s, "foo");
+		eq(c.b, true);
+		eq(c.t, String);
+		
+		var c = Type.createInstance(InitWithoutCtor, []);
+		eq(c.i, 2);
+		
+		var c = new InitProperties();
+		eq(c.accNull, 3);
+		eq(c.accDefault, 3);
+		eq(c.accFunc, 3);
+		eq(c.accNever, 3);
+		eq(c.accDynamic, 3);
+		exc(function() c.accFunc = 4);
+	}
+	
+	#end
 }