@@ -180,21 +180,25 @@ protected function returnVar "returns the new calculated units in DAE"
180180 input HashTableUnitToString . HashTable inHtU2S;
181181 output BackendDAE . Var outVar;
182182algorithm
183- outVar := match(inVar, inHtCr2U, inHtU2S )
183+ outVar := match(inVar)
184184 local
185185 BackendDAE . Var var ;
186186 DAE . ComponentRef cr;
187187 Unit . Unit ut;
188188 String s;
189189
190- case ( BackendDAE . VAR (values = SOME (DAE . VAR_ATTR_REAL (unit= SOME (_)))), _, _ )
190+ case BackendDAE . VAR (values = SOME (DAE . VAR_ATTR_REAL (unit= SOME (_))))
191191 then inVar;
192192
193193 else equation
194194 cr = BackendVariable . varCref(inVar);
195195 ut = BaseHashTable . get(cr, inHtCr2U);
196- s = unit2String(ut, inHtU2S);
197- var = BackendVariable . setUnit(inVar, DAE . SCONST (s));
196+ if Unit . isUnit(ut) then
197+ s = unit2String(ut, inHtU2S);
198+ var = BackendVariable . setUnit(inVar, DAE . SCONST (s));
199+ else
200+ var = inVar;
201+ end if ;
198202 then var ;
199203 end match;
200204end returnVar;
@@ -1196,10 +1200,10 @@ protected
11961200 list< String > charList;
11971201 list< Token > tokenList;
11981202algorithm
1199- if inUnitString == "" then
1203+ charList := stringListStringChar(inUnitString);
1204+ if listEmpty(charList) then
12001205 fail();
12011206 end if ;
1202- charList := stringListStringChar(inUnitString);
12031207 tokenList := lexer(charList);
12041208 outUnit := parser(tokenList, Unit . UPDATECREF , inKnownUnits);
12051209end parseUnitString;
0 commit comments