From 9295cb104afe043ae46714c459fd55cfbfa9fd38 Mon Sep 17 00:00:00 2001 From: Sei Lisa Date: Sun, 10 Aug 2014 01:14:29 +0200 Subject: [PATCH] Cast() now adds parentheses where necessary. --- lslopt/lsloptimizer.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lslopt/lsloptimizer.py b/lslopt/lsloptimizer.py index a058421..6a2a381 100644 --- a/lslopt/lsloptimizer.py +++ b/lslopt/lsloptimizer.py @@ -76,6 +76,13 @@ class optimizer(renamer, deadcode): # value unchanged if value['t'] == newtype: return value + if value not in ('CONST','()','FLD','IDENT','FNCALL','V++','V--', + 'VECTOR','ROTATION','LIST'): + value = {'nt':'()', 't':newtype, 'ch':[value]} + if 'SEF' in value['ch'][0]: + value['SEF'] = True + if 'X' in value['ch'][0]: + value['X'] = value['ch'][0]['X'] ret = {'nt':'CAST', 't':newtype, 'ch':[value]} if 'SEF' in value: ret['SEF'] = True