Package dk.brics.string.intermediate

Examples of dk.brics.string.intermediate.VariableType


            // string == string
            // char == char
            // etc.
            if (isAbsolute(relation)) {
                boolean equals = relation == Relation.EQUAL;
                VariableType lefttype = context.fromSootType(v.getOp1().getType());
                VariableType righttype = context.fromSootType(v.getOp2().getType());
                if (lefttype.leastUpperBound(VariableType.NONE) != VariableType.NONE
                    && righttype.leastUpperBound(VariableType.NONE) != VariableType.NONE) {
                    Variable left = context.getExpressionVariable(v.getOp1());
                    Variable right = context.getExpressionVariable(v.getOp2());
                    if (equals == true) {
                        makeBinaryAssertion(left, right, new AssertEquals());
                        makeBinaryAssertion(right, left, new AssertEquals());
                        // assert aliases as well
                        if (lefttype.mightBeUsefulMutable() && righttype.mightBeUsefulMutable()) {
                          makeAliasAssertion(left, right, true);
                        }
                    }
                    else if (equals == false && lefttype == VariableType.PRIMITIVE && righttype == VariableType.PRIMITIVE) {
                        // only primitive types may get a negative assertion here, since references
                        // may refer to different objects with same contents
                        makeBinaryAssertion(left, right, new AssertNotEquals());
                        makeBinaryAssertion(right, left, new AssertNotEquals());
                    }
                    else if (equals == false && lefttype.mightBeUsefulMutable() && righttype.mightBeUsefulMutable()) {
                      // assert that the variables are not aliases
                      // their contents cannot be asserted here, though
                      makeAliasAssertion(left, right, false);
                    }
                }
View Full Code Here

TOP

Related Classes of dk.brics.string.intermediate.VariableType

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.