2
0
Эх сурвалжийг харах

skip using and import when looking for `@:noPackageRestrict`

Simon Krajewski 11 жил өмнө
parent
commit
645ab1f49e
1 өөрчлөгдсөн 9 нэмэгдсэн , 7 устгасан
  1. 9 7
      typeload.ml

+ 9 - 7
typeload.ml

@@ -2724,13 +2724,15 @@ let resolve_module_file com m remap p =
 	| _ -> ());
 	if !forbid then begin
 		let _, decls = (!parse_hook) com file p in
-		let meta = (match decls with
-		| (EClass d,_) :: _ -> d.d_meta
-		| (EEnum d,_) :: _ -> d.d_meta
-		| (EAbstract d,_) :: _ -> d.d_meta
-		| (ETypedef d,_) :: _ -> d.d_meta
-		| _ -> []
-		) in
+		let rec loop decls = match decls with
+			| ((EImport _,_) | (EUsing _,_)) :: decls -> loop decls
+			| (EClass d,_) :: _ -> d.d_meta
+			| (EEnum d,_) :: _ -> d.d_meta
+			| (EAbstract d,_) :: _ -> d.d_meta
+			| (ETypedef d,_) :: _ -> d.d_meta
+			| [] -> []
+		in
+		let meta = loop decls in
 		if not (Meta.has Meta.NoPackageRestrict meta) then begin
 			let x = (match fst m with [] -> assert false | x :: _ -> x) in
 			raise (Forbid_package ((x,m,p),[],if Common.defined com Define.Macro then "macro" else platform_name com.platform));