Procházet zdrojové kódy

optimize out null else

ncannasse před 7 roky
rodič
revize
5199f3b21e
1 změnil soubory, kde provedl 8 přidání a 2 odebrání
  1. 8 2
      hxsl/Eval.hx

+ 8 - 2
hxsl/Eval.hx

@@ -399,8 +399,14 @@ class Eval {
 			default:
 				if( isVal && eelse != null && eliminateConditionals )
 					TCall( { e : TGlobal(Mix), t : e.t, p : e.p }, [evalExpr(eelse,true), evalExpr(eif,true), { e : TCall( { e : TGlobal(ToFloat), t : TFun([]), p : econd.p }, [econd]), t : TFloat, p : e.p } ]);
-				else
-					TIf(econd, evalExpr(eif,isVal), eelse == null ? null : evalExpr(eelse,isVal));
+				else {
+					eif = evalExpr(eif, isVal);
+					if( eelse != null ) {
+						eelse = evalExpr(eelse,isVal);
+						if( eelse.e.match(TConst(CNull)) ) eelse = null;
+					}
+					TIf(econd, eif, eelse);
+				}
 			}
 		case TBreak:
 			TBreak;