2
0
Simon Krajewski 9 сар өмнө
parent
commit
add53c33a1

+ 0 - 7
src/codegen/javaModern.ml

@@ -658,13 +658,6 @@ module SignatureConverter = struct
 		tsub = None;
 	}
 
-	let ct_string = make_ptp_ct_null {
-		tpackage = [];
-		tname = "String";
-		tparams = [];
-		tsub = None;
-	}
-
 	let rec convert_arg ctx p arg =
 		match arg with
 		| TAny | TType (WSuper, _) -> TPType (mk_type_path ([], "Dynamic") [] p,p)

+ 5 - 5
std/StringTools.hx

@@ -221,7 +221,7 @@ class StringTools {
 	**/
 	public static #if (java || python || (js && js_es >= 6)) inline #end function startsWith(s:String, start:String):Bool {
 		#if java
-		return (cast s : java.NativeString).startsWith(start);
+		return (cast s : java.lang.String).startsWith(start);
 		#elseif hl
 		return @:privateAccess (s.length >= start.length && s.bytes.compare(0, start.bytes, 0, start.length << 1) == 0);
 		#elseif python
@@ -244,7 +244,7 @@ class StringTools {
 	**/
 	public static #if (java || python || (js && js_es >= 6)) inline #end function endsWith(s:String, end:String):Bool {
 		#if java
-		return (cast s : java.NativeString).endsWith(end);
+		return (cast s : java.lang.String).endsWith(end);
 		#elseif hl
 		var elen = end.length;
 		var slen = s.length;
@@ -330,7 +330,7 @@ class StringTools {
 	**/
 	public #if java inline #end static function trim(s:String):String {
 		#if java
-		return (cast s : java.NativeString).trim();
+		return (cast s : java.lang.String).trim();
 		#else
 		return ltrim(rtrim(s));
 		#end
@@ -400,7 +400,7 @@ class StringTools {
 		if (sub.length == 0)
 			return s.split(sub).join(by);
 		else
-			return (cast s : java.NativeString).replace(sub, by);
+			return (cast s : java.lang.String).replace(sub, by);
 		#else
 		return s.split(sub).join(by);
 		#end
@@ -595,7 +595,7 @@ class StringTools {
 
 	#if java
 	private static inline function _charAt(str:String, idx:Int):jvm.Char16
-		return (cast str : java.NativeString).charAt(idx);
+		return (cast str : java.lang.String).charAt(idx);
 	#end
 
 	#if neko

+ 0 - 3
std/java/NativeString.hx

@@ -1,3 +0,0 @@
-package java;
-
-typedef NativeString = jvm.NativeString;

+ 4 - 4
std/jvm/Jvm.hx

@@ -64,7 +64,7 @@ class Jvm {
 		if (v2 == null) {
 			return -1;
 		}
-		return (cast v1 : java.NativeString).compareTo(v2);
+		return (cast v1 : java.lang.String).compareTo(v2);
 	}
 
 	static public function compare<T>(v1:T, v2:T):Int {
@@ -368,7 +368,7 @@ class Jvm {
 		if (instanceof(obj, java.lang.Class)) {
 			return readStaticField(cast obj, name);
 		}
-		if (instanceof(obj, java.NativeString)) {
+		if (instanceof(obj, java.lang.String)) {
 			switch (name) {
 				case "length":
 					return (obj : String).length;
@@ -446,13 +446,13 @@ class Jvm {
 	}
 
 	static public function stringConcat<A:java.lang.Object, B:java.lang.Object>(a:A, b:B):String {
-		return (cast toString(a) : java.NativeString).concat(toString(b));
+		return (cast toString(a) : java.lang.String).concat(toString(b));
 	}
 
 	// ops
 
 	static public function opAdd<T1:java.lang.Object, T2:java.lang.Object>(a:T1, b:T2):Dynamic {
-		if (instanceof(a, java.NativeString) || instanceof(b, java.NativeString)) {
+		if (instanceof(a, java.lang.String) || instanceof(b, java.lang.String)) {
 			return stringConcat(a, b);
 		}
 		if (instanceof(a, java.lang.Double.DoubleClass) || instanceof(b, java.lang.Double.DoubleClass)) {

+ 0 - 99
std/jvm/NativeString.hx

@@ -1,99 +0,0 @@
-/*
- * Copyright (C)2005-2019 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-package jvm;
-
-import haxe.Int64;
-import haxe.extern.Rest;
-import java.lang.CharSequence;
-import java.util.Locale;
-import jvm.Char16;
-import jvm.Int8;
-
-@:native("java.lang.String")
-extern class NativeString {
-	function charAt(index:Int):Char16;
-	function codePointAt(index:Int):Int;
-	function codePointBefore(index:Int):Int;
-	function codePointCount(beginIndex:Int, endIndex:Int):Int;
-	function compareTo(anotherString:String):Int;
-	function compareToIgnoreCase(str:String):Int;
-	function concat(str:String):String;
-	function contains(s:CharSequence):Bool;
-	@:overload function contentEquals(cs:CharSequence):Bool;
-	@:overload function contentEquals(sb:java.lang.StringBuffer):Bool;
-	@:overload static function copyValueOf(data:NativeArray<Char16>):String;
-	@:overload static function copyValueOf(data:NativeArray<Char16>, offset:Int, count:Int):String;
-	function endsWith(suffix:String):Bool;
-	function equals(anObject:Dynamic):Bool;
-	function equalsIgnoreCase(anotherString:String):Bool;
-	@:overload static function format(l:Locale, format:String, args:Rest<Dynamic>):String;
-	@:overload static function format(format:String, args:Rest<Dynamic>):String;
-	@:overload function getBytes():NativeArray<Int8>;
-	@:overload function getBytes(charset:java.nio.charset.Charset):NativeArray<Int8>;
-	@:deprecated @:overload function getBytes(srcBegin:Int, srcEnd:Int, dst:NativeArray<Int8>, dstBegin:Int):Void;
-	@:overload function getBytes(charsetName:String):NativeArray<Int8>;
-	function getChars(srcBegin:Int, srcEnd:Int, dst:NativeArray<Char16>, dstBegin:Int):Void;
-	function hashCode():Int;
-	@:overload function indexOf(ch:Int):Int;
-	@:overload function indexOf(ch:Int, fromIndex:Int):Int;
-	@:overload function indexOf(str:String):Int;
-	@:overload function indexOf(str:String, fromIndex:Int):Int;
-	function intern():String;
-	function isEmpty():Bool;
-	@:overload function lastIndexOf(ch:Int):Int;
-	@:overload function lastIndexOf(ch:Int, fromIndex:Int):Int;
-	@:overload function lastIndexOf(str:String):Int;
-	@:overload function lastIndexOf(str:String, fromIndex:Int):Int;
-	function length():Int;
-	function matches(regex:String):Bool;
-	function offsetByCodePoints(index:Int, codePointOffset:Int):Int;
-	@:overload function regionMatches(ignoreCase:Bool, toffset:Int, other:String, ooffset:Int, len:Int):Bool;
-	@:overload function regionMatches(toffset:Int, other:String, ooffset:Int, len:Int):Bool;
-	@:overload function replace(oldChar:Char16, newChar:Char16):String;
-	@:overload function replace(target:CharSequence, replacement:CharSequence):String;
-	function replaceAll(regex:String, replacement:String):String;
-	function replaceFirst(regex:String, replacement:String):String;
-	@:overload function split(regex:String):NativeArray<String>;
-	@:overload function split(regex:String, limit:Int):NativeArray<String>;
-	@:overload function startsWith(prefix:String):Bool;
-	@:overload function startsWith(prefix:String, toffset:Int):Bool;
-	function subSequence(beginIndex:Int, endIndex:Int):CharSequence;
-	@:overload function substring(beginIndex:Int):String;
-	@:overload function substring(beginIndex:Int, endIndex:Int):String;
-	function toCharArray():NativeArray<Char16>;
-	@:overload function toLowerCase():String;
-	@:overload function toLowerCase(locale:Locale):String;
-	function toString():String;
-	@:overload function toUpperCase():String;
-	@:overload function toUpperCase(locale:Locale):String;
-	function trim():String;
-	@:overload static function valueOf(b:Bool):String;
-	@:overload static function valueOf(c:Char16):String;
-	@:overload static function valueOf(data:NativeArray<Char16>):String;
-	@:overload static function valueOf(data:NativeArray<Char16>, offset:Int, count:Int):String;
-	@:overload static function valueOf(d:Float):String;
-	@:overload static function valueOf(f:String):String;
-	@:overload static function valueOf(i:Int):String;
-	@:overload static function valueOf(l:haxe.Int64):String;
-	@:overload static function valueOf(obj:java.lang.Object):String;
-}

+ 1 - 1
std/jvm/StringExt.hx

@@ -22,7 +22,7 @@
 
 package jvm;
 
-import java.NativeString;
+import java.lang.String as NativeString;
 
 @:native("haxe.jvm.StringExt")
 @:keep

+ 6 - 6
std/jvm/_std/Reflect.hx

@@ -20,13 +20,13 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-import jvm.Jvm;
-import java.lang.Number;
-import java.lang.Long.LongClass;
 import java.lang.Double.DoubleClass;
 import java.lang.Float.FloatClass;
+import java.lang.Long.LongClass;
+import java.lang.Number;
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import jvm.Jvm;
 
 using jvm.NativeTools.NativeClassTools;
 
@@ -130,11 +130,11 @@ class Reflect {
 				return -1 * cmpLongTo(b, a);
 			return DoubleClass.compare(a.doubleValue(), b.doubleValue());
 		}
-		if (Jvm.instanceof(a, java.NativeString)) {
-			if (!Jvm.instanceof(b, java.NativeString)) {
+		if (Jvm.instanceof(a, java.lang.String)) {
+			if (!Jvm.instanceof(b, java.lang.String)) {
 				return -1;
 			}
-			return (cast a : java.NativeString).compareTo(cast b);
+			return (cast a : java.lang.String).compareTo((cast b : java.lang.String));
 		}
 		if (Jvm.instanceof(a, jvm.Function)) {
 			if (!(cast a : jvm.Function).equals(cast b)) {

+ 3 - 9
std/jvm/_std/Std.hx

@@ -101,9 +101,8 @@ class Std {
 				++index;
 			}
 			sign == '-'.code;
-		}
+		} // handle base
 
-		// handle base
 		final isHexadecimal = hasIndex(index + 1) && isHexPrefix(x.unsafeCodeAt(index), x.unsafeCodeAt(index + 1));
 		if (isHexadecimal)
 			index += 2; // skip prefix
@@ -140,13 +139,8 @@ class Std {
 			return Math.NaN;
 		}
 		x = StringTools.ltrim(x);
-		var xn:java.NativeString = cast x;
-		var found = false,
-			hasDot = false,
-			hasSign = false,
-			hasE = false,
-			hasESign = false,
-			hasEData = false;
+		var xn:java.lang.String = cast x;
+		var found = false, hasDot = false, hasSign = false, hasE = false, hasESign = false, hasEData = false;
 		var i = -1;
 
 		while (++i < x.length) {

+ 3 - 4
std/jvm/_std/Type.hx

@@ -87,7 +87,7 @@ class Type {
 
 	public static function getEnumName(e:Enum<Dynamic>):String {
 		return switch e.native().getName() {
-			case s if(s.indexOf("haxe.root.") == 0): s.substr(10);
+			case s if (s.indexOf("haxe.root.") == 0): s.substr(10);
 			case s: s;
 		}
 	}
@@ -100,7 +100,7 @@ class Type {
 			java.lang.Class.forName(name).haxe();
 		} catch (e:java.lang.ClassNotFoundException) {
 			return switch (name) {
-				case "haxe.root.String": java.NativeString;
+				case "haxe.root.String": java.lang.String;
 				case "haxe.root.Math": java.lang.Math;
 				case _: null;
 			}
@@ -170,8 +170,7 @@ class Type {
 	public static function createEmptyInstance<T>(cl:Class<T>):T {
 		var annotation = (cl.native().getAnnotation((cast ClassReflectionInformation : java.lang.Class<ClassReflectionInformation>)));
 		if (annotation != null) {
-			return cl.native().getConstructor(emptyClass)
-				.newInstance(emptyArg);
+			return cl.native().getConstructor(emptyClass).newInstance(emptyArg);
 		} else {
 			return cl.native().newInstance();
 		}

+ 3 - 2
std/jvm/_std/haxe/crypto/Md5.hx

@@ -19,17 +19,18 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  */
+
 package haxe.crypto;
 
 import haxe.io.Bytes;
 import haxe.io.BytesData;
-import java.security.MessageDigest;
 import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
 
 @:coreApi
 class Md5 {
 	public static function encode(s:String):String {
-		return Bytes.ofData(digest((cast s : java.NativeString).getBytes(StandardCharsets.UTF_8))).toHex();
+		return Bytes.ofData(digest((cast s : java.lang.String).getBytes(StandardCharsets.UTF_8))).toHex();
 	}
 
 	public static function make(b:haxe.io.Bytes):haxe.io.Bytes {

+ 3 - 2
std/jvm/_std/haxe/crypto/Sha1.hx

@@ -19,17 +19,18 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  */
+
 package haxe.crypto;
 
 import haxe.io.Bytes;
 import haxe.io.BytesData;
-import java.security.MessageDigest;
 import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
 
 @:coreApi
 class Sha1 {
 	public static function encode(s:String):String {
-		return Bytes.ofData(digest((cast s : java.NativeString).getBytes(StandardCharsets.UTF_8))).toHex();
+		return Bytes.ofData(digest((cast s : java.lang.String).getBytes(StandardCharsets.UTF_8))).toHex();
 	}
 
 	public static function make(b:haxe.io.Bytes):haxe.io.Bytes {

+ 3 - 2
std/jvm/_std/haxe/crypto/Sha256.hx

@@ -19,17 +19,18 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  */
+
 package haxe.crypto;
 
 import haxe.io.Bytes;
 import haxe.io.BytesData;
-import java.security.MessageDigest;
 import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
 
 @:coreApi
 class Sha256 {
 	public static function encode(s:String):String {
-		return Bytes.ofData(digest((cast s : java.NativeString).getBytes(StandardCharsets.UTF_8))).toHex();
+		return Bytes.ofData(digest((cast s : java.lang.String).getBytes(StandardCharsets.UTF_8))).toHex();
 	}
 
 	public static function make(b:haxe.io.Bytes):haxe.io.Bytes {

+ 1 - 1
tests/unit/src/unit/issues/Issue9220.hx

@@ -5,7 +5,7 @@ import unit.Test;
 class Issue9220 extends Test {
 	#if jvm
 	public function test() {
-		eq("12.200", jvm.NativeString.format(java.util.Locale.US, '%.3f', 12.2));
+		eq("12.200", java.lang.String.format(java.util.Locale.US, '%.3f', 12.2));
 	}
 	#end
 }