Browse Source

remove feature nonsense and revert meta change

Simon Krajewski 1 year ago
parent
commit
5e8ce67258
2 changed files with 7 additions and 16 deletions
  1. 6 14
      src/compiler/hxb/hxbReader.ml
  2. 1 2
      src/compiler/hxb/hxbWriter.ml

+ 6 - 14
src/compiler/hxb/hxbReader.ml

@@ -242,7 +242,6 @@ class hxb_reader
 		| 1 ->
 		| 1 ->
 			let cf = anon_fields.(read_uleb128 ch) in
 			let cf = anon_fields.(read_uleb128 ch) in
 			let close = self#open_field_scope in
 			let close = self#open_field_scope in
-			cf.cf_meta <- self#read_metadata; (* TODO: ghjkl *)
 			self#read_class_field_data cf;
 			self#read_class_field_data cf;
 			close();
 			close();
 			cf
 			cf
@@ -1233,9 +1232,8 @@ class hxb_reader
 		let name = self#read_string in
 		let name = self#read_string in
 		let pos = self#read_pos in
 		let pos = self#read_pos in
 		let name_pos = self#read_pos in
 		let name_pos = self#read_pos in
-		let meta = self#read_metadata in
 		let overloads = self#read_list (fun () -> self#read_class_field_forward) in
 		let overloads = self#read_list (fun () -> self#read_class_field_forward) in
-		{ null_field with cf_name = name; cf_pos = pos; cf_name_pos = name_pos; cf_overloads = overloads; cf_meta = meta }
+		{ null_field with cf_name = name; cf_pos = pos; cf_name_pos = name_pos; cf_overloads = overloads }
 
 
 	method start_texpr =
 	method start_texpr =
 		let l = read_uleb128 ch in
 		let l = read_uleb128 ch in
@@ -1273,9 +1271,13 @@ class hxb_reader
 				local_type_parameters <- a
 				local_type_parameters <- a
 			);
 			);
 		let t = self#read_type_instance in
 		let t = self#read_type_instance in
+
 		let flags = read_uleb128 ch in
 		let flags = read_uleb128 ch in
+
 		let doc = self#read_option (fun () -> self#read_documentation) in
 		let doc = self#read_option (fun () -> self#read_documentation) in
+		let meta = self#read_metadata in
 		let kind = self#read_field_kind in
 		let kind = self#read_field_kind in
+
 		let expr,expr_unoptimized = match IO.read_byte ch with
 		let expr,expr_unoptimized = match IO.read_byte ch with
 			| 0 ->
 			| 0 ->
 				None,None
 				None,None
@@ -1288,6 +1290,7 @@ class hxb_reader
 
 
 		cf.cf_type <- t;
 		cf.cf_type <- t;
 		cf.cf_doc <- doc;
 		cf.cf_doc <- doc;
+		cf.cf_meta <- meta;
 		cf.cf_kind <- kind;
 		cf.cf_kind <- kind;
 		cf.cf_expr <- expr;
 		cf.cf_expr <- expr;
 		cf.cf_expr_unoptimized <- expr_unoptimized;
 		cf.cf_expr_unoptimized <- expr_unoptimized;
@@ -1319,24 +1322,13 @@ class hxb_reader
 		| _ ->
 		| _ ->
 			type_type_parameters <- Array.of_list c.cl_params
 			type_type_parameters <- Array.of_list c.cl_params
 		end;
 		end;
-		let cl_if_feature = Feature.check_if_feature c.cl_meta in
-		let handle_feature ref_kind cf =
-			let set_feature s =
-				let cf_ref = mk_class_field_ref c cf ref_kind false (* TODO: ? *) in
-				Feature.set_feature current_module cf_ref s;
-			in
-			List.iter set_feature cl_if_feature;
-			List.iter set_feature (Feature.check_if_feature cf.cf_meta);
-		in
 		let _ = self#read_option (fun f ->
 		let _ = self#read_option (fun f ->
 			let cf = Option.get c.cl_constructor in
 			let cf = Option.get c.cl_constructor in
-			handle_feature CfrConstructor cf;
 			self#read_class_field_and_overloads_data cf
 			self#read_class_field_and_overloads_data cf
 		) in
 		) in
 		let rec loop ref_kind num cfl = match cfl with
 		let rec loop ref_kind num cfl = match cfl with
 			| cf :: cfl ->
 			| cf :: cfl ->
 				assert (num > 0);
 				assert (num > 0);
-				handle_feature ref_kind cf;
 				self#read_class_field_and_overloads_data cf;
 				self#read_class_field_and_overloads_data cf;
 				loop ref_kind (num - 1) cfl
 				loop ref_kind (num - 1) cfl
 			| [] ->
 			| [] ->

+ 1 - 2
src/compiler/hxb/hxbWriter.ml

@@ -1014,7 +1014,6 @@ class hxb_writer
 			IOChunk.write_u8 chunk.io 1;
 			IOChunk.write_u8 chunk.io 1;
 			IOChunk.write_uleb128 chunk.io index;
 			IOChunk.write_uleb128 chunk.io index;
 			let close = self#open_field_scope cf.cf_params in
 			let close = self#open_field_scope cf.cf_params in
-			self#write_metadata cf.cf_meta; (* TODO: asdf *)
 			self#write_class_field_data cf;
 			self#write_class_field_data cf;
 			close()
 			close()
 
 
@@ -1686,7 +1685,6 @@ class hxb_writer
 		Chunk.write_string chunk cf.cf_name;
 		Chunk.write_string chunk cf.cf_name;
 		self#write_pos cf.cf_pos;
 		self#write_pos cf.cf_pos;
 		self#write_pos cf.cf_name_pos;
 		self#write_pos cf.cf_name_pos;
-		self#write_metadata cf.cf_meta;
 		Chunk.write_list chunk cf.cf_overloads (fun cf ->
 		Chunk.write_list chunk cf.cf_overloads (fun cf ->
 			self#write_class_field_forward cf;
 			self#write_class_field_forward cf;
 		);
 		);
@@ -1727,6 +1725,7 @@ class hxb_writer
 		end);
 		end);
 		IOChunk.write_uleb128 chunk.io cf.cf_flags;
 		IOChunk.write_uleb128 chunk.io cf.cf_flags;
 		Chunk.write_option chunk cf.cf_doc self#write_documentation;
 		Chunk.write_option chunk cf.cf_doc self#write_documentation;
+		self#write_metadata cf.cf_meta;
 		self#write_field_kind cf.cf_kind;
 		self#write_field_kind cf.cf_kind;
 		begin match cf.cf_expr with
 		begin match cf.cf_expr with
 			| None ->
 			| None ->