Prechádzať zdrojové kódy

[lua] make `lua.Table.create` an extern method

Aleksandr Kuzmenko 6 rokov pred
rodič
commit
3e88dc004c
2 zmenil súbory, kde vykonal 2 pridanie a 4 odobranie
  1. 1 0
      src/generators/genlua.ml
  2. 1 4
      std/lua/Table.hx

+ 1 - 0
src/generators/genlua.ml

@@ -406,6 +406,7 @@ and gen_call ctx e el =
          gen_paren_arguments ctx el;
          gen_paren_arguments ctx el;
      | TIdent "__lua_length__", [e]->
      | TIdent "__lua_length__", [e]->
          spr ctx "#"; gen_value ctx e;
          spr ctx "#"; gen_value ctx e;
+     | TField (_, FStatic ({ cl_path = (["_G"],"table")}, { cf_name = "create" })), el
      | TIdent "__lua_table__", el ->
      | TIdent "__lua_table__", el ->
          let count = ref 0 in
          let count = ref 0 in
          spr ctx "({";
          spr ctx "({";

+ 1 - 4
std/lua/Table.hx

@@ -29,10 +29,7 @@ package lua;
 
 
 @:native("_G.table")
 @:native("_G.table")
 extern class Table<A, B> implements ArrayAccess<B> implements Dynamic<B> {
 extern class Table<A, B> implements ArrayAccess<B> implements Dynamic<B> {
-	@:analyzer(no_fusion)
-	public inline static function create<A, B>(?arr:Array<B>, ?hsh:Dynamic):Table<A, B> {
-		return untyped __lua_table__(arr, hsh);
-	}
+	@:pure public static function create<A, B>(?arr:Array<B>, ?hsh:Dynamic):Table<A, B>;
 
 
 	public inline static function fromArray<T>(arr:Array<T>):Table<Int, T> {
 	public inline static function fromArray<T>(arr:Array<T>):Table<Int, T> {
 		var ret = Table.create();
 		var ret = Table.create();