瀏覽代碼

check type of TSuper when renaming variables to avoid conflicts with package name (closes #3133)

Simon Krajewski 11 年之前
父節點
當前提交
57335b17d1
共有 3 個文件被更改,包括 22 次插入0 次删除
  1. 2 0
      filters.ml
  2. 14 0
      tests/unit/issues/Issue3133.hx
  3. 6 0
      tests/unit/issues/misc/Issue3133Class.hx

+ 2 - 0
filters.ml

@@ -813,6 +813,8 @@ let rename_local_vars com e =
 		| TCast (e,Some t) ->
 			loop e;
 			check t;
+		| TConst TSuper ->
+			check_type e.etype
 		| _ ->
 			Type.iter loop e
 	in

+ 14 - 0
tests/unit/issues/Issue3133.hx

@@ -0,0 +1,14 @@
+package unit.issues;
+
+private class Child extends unit.issues.misc.Issue3133Class {
+    override function test(unit:String) {
+        super.test(unit);
+    }
+}
+
+class Issue3133 extends Test {
+	function test() {
+        var t = new Child();
+        t.test("foo");
+	}
+}

+ 6 - 0
tests/unit/issues/misc/Issue3133Class.hx

@@ -0,0 +1,6 @@
+package unit.issues.misc;
+
+class Issue3133Class {
+    public function new() { }
+    public function test(unit:String) { }
+}