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

preserve segment position for FExpr case because that points to the `${}`, not inner expression

Dan Korostelev 8 жил өмнө
parent
commit
a88748690c

+ 1 - 1
src/syntax/ast.ml

@@ -608,7 +608,7 @@ let map_expr loop (e,p) =
 				else
 					(match new_expr with
 					| (EConst (Ident i),new_pos) -> (FmtIdent i,new_pos)
-					| (_,new_pos) as expr -> (FmtExpr expr,new_pos))
+					| _ -> (FmtExpr new_expr,pos))
 			| FmtExpr e -> (FmtExpr (loop e), snd p)
 		) parts in
 		EFormat parts

+ 1 - 1
std/haxe/macro/ExprTools.hx

@@ -224,7 +224,7 @@ class ExprTools {
 							part
 						else switch enew.expr {
 							case EConst(CIdent(i)): {kind: FIdent(i), pos: enew.pos};
-							case _: {kind: FExpr(enew), pos: enew.pos};
+							case _: {kind: FExpr(enew), pos: part.pos};
 						}
 					case FExpr(e): {kind: FExpr(f(e)), pos: part.pos};
 				}]);