瀏覽代碼

[java/cs] Support lower case classes on -net-lib / test support for -java-lib

Cauê Waneck 10 年之前
父節點
當前提交
a696542aa7

+ 5 - 0
gencs.ml

@@ -3144,6 +3144,11 @@ let add_cs = function
 	| ns -> ns
 
 let netcl_to_hx cl =
+	let cl = if String.length cl > 0 && String.get cl 0 >= 'a' && String.get cl 0 <= 'z' then
+			Char.escaped (Char.uppercase (String.get cl 0)) ^ (String.sub cl 1 (String.length cl - 1))
+		else
+			cl
+	in
 	try
 		let cl, nargs = String.split cl "`" in
 		cl ^ "_" ^ nargs

+ 9 - 0
tests/unit/native_cs/src/haxe/test/Base.cs

@@ -122,4 +122,13 @@ public interface IEditableTextBuffer : IEditableTextFile, ITextBuffer
 {
 }
 
+public class lowerCaseClass
+{
+	public bool works;
+	public lowerCaseClass()
+	{
+		works = true;
+	}
+}
+
 }

+ 2 - 0
tests/unit/native_java/hxjava_build.txt

@@ -4,6 +4,8 @@ M haxe.test.OverloadInterface1
 C haxe.test.OverloadInterface1
 M haxe.test.OverloadInterface2
 C haxe.test.OverloadInterface2
+M haxe.test.lowerCaseClass
+C haxe.test.lowerCaseClass
 M haxe.test.MyClass
 C haxe.test.MyClass
 M haxe.test.TEnum

+ 12 - 0
tests/unit/native_java/src/haxe/test/lowerCaseClass.java

@@ -0,0 +1,12 @@
+package haxe.test;
+
+public class lowerCaseClass
+{
+	public boolean works;
+
+	public lowerCaseClass()
+	{
+		this.works = true;
+	}
+}
+

+ 8 - 0
tests/unit/src/unit/TestCSharp.hx

@@ -5,6 +5,8 @@ import haxe.test.Base.Base_InnerClass;
 import haxe.test.TEnum;
 import haxe.test.TEnumWithValue;
 import haxe.test.IEditableTextBuffer;
+import haxe.test.LowerCaseClass;
+
 import NoPackage;
 #if unsafe
 import cs.Pointer;
@@ -44,6 +46,12 @@ class TestCSharp extends Test
 		t(didRun);
 	}
 
+	function testLowerCase()
+	{
+		var l = new LowerCaseClass();
+		t(l.works);
+	}
+
 #if unsafe
 	@:unsafe function testBoxedPointer()
 	{

+ 7 - 0
tests/unit/src/unit/TestJava.hx

@@ -5,6 +5,7 @@ import haxe.test.Base.Base_InnerClass;
 import haxe.test.Base.Base___InnerClass3__;
 import haxe.test.Base.Base___InnerClass3___InnerClass4__;
 import haxe.test.TEnum;
+import haxe.test.LowerCaseClass;
 import java.util.EnumSet;
 import java.vm.*;
 
@@ -25,6 +26,12 @@ class TestJava extends Test
     catch(e:Dynamic) throw e; //shouldn't throw any exception
   }
 
+	function testLowerCase()
+	{
+		var l = new LowerCaseClass();
+		t(l.works);
+	}
+
 	function testNameCase()
 	{
 		t(haxe.uppercasepackage.SomeClass.SomeClassFound);