@@ -123,21 +123,19 @@ public <R> void visitCtMethod(CtMethod<R> method) {
123123 @ Override
124124 public <T > void visitCtLocalVariable (CtLocalVariable <T > localVariable ) {
125125 super .visitCtLocalVariable (localVariable );
126- // only declaration, no assignment
126+ String varName = localVariable . getSimpleName ();
127127 if (localVariable .getAssignment () == null ) {
128- Optional <Predicate > a ;
129- a = getRefinementFromAnnotation (localVariable );
130- context .addVarToContext (localVariable .getSimpleName (), localVariable .getType (), a .orElse (new Predicate ()),
131- localVariable );
128+ // declaration with no assignment
129+ Optional <Predicate > pred = getRefinementFromAnnotation (localVariable );
130+ context .addVarToContext (varName , localVariable .getType (), pred .orElse (new Predicate ()), localVariable );
132131 } else {
133- String varName = localVariable . getSimpleName ();
132+ // declaration with assignment
134133 CtExpression <?> e = localVariable .getAssignment ();
135-
136134 Predicate refinementFound = getRefinement (e );
137135 if (refinementFound == null ) {
138136 refinementFound = new Predicate ();
139137 }
140- if (Utils .isBoxedType (localVariable .getType ()) && !Utils .isNullLiteral (e )) {
138+ if (! Utils .isPrimitiveType (localVariable .getType (). getQualifiedName ()) && !Utils .isNullLiteral (e )) {
141139 refinementFound = Predicate .createConjunction (refinementFound , Predicate .createNonNullEq ());
142140 }
143141 context .addVarToContext (varName , localVariable .getType (), new Predicate (), e );
@@ -402,7 +400,7 @@ private void checkAssignment(String name, CtTypeReference<?> type, CtExpression<
402400 refinementFound = new Predicate ();
403401 }
404402 }
405- if (Utils .isBoxedType (type ) && !Utils .isNullLiteral (assignment )) {
403+ if (! Utils .isPrimitiveType (type . getQualifiedName () ) && !Utils .isNullLiteral (assignment )) {
406404 refinementFound = Predicate .createConjunction (refinementFound , Predicate .createNonNullEq ());
407405 }
408406 Optional <VariableInstance > r = context .getLastVariableInstance (name );
0 commit comments