@@ -81,9 +81,6 @@ public CPFact newInitialFact() {
81
81
@ Override
82
82
public void meetInto (CPFact fact , CPFact target ) {
83
83
// TODO - finish me
84
- target .forEach ((Var var , Value value ) -> {
85
- target .update (var , meetValue (fact .get (var ), value ));
86
- });
87
84
fact .forEach ((Var var , Value value ) -> {
88
85
target .update (var , meetValue (target .get (var ), value ));
89
86
});
@@ -112,12 +109,16 @@ public boolean transferNode(Stmt stmt, CPFact in, CPFact out) {
112
109
var gen = stmt .getDef ();
113
110
CPFact old_out = out .copy ();
114
111
out .copyFrom (in );
115
- if (gen .isPresent () && gen .get () instanceof Var ) {
116
- if (canHoldInt ((Var ) gen .get ()) && ((DefinitionStmt <?, ?>) stmt ).getRValue () != null ) {
117
- out .update ((Var ) gen .get (), evaluate (((DefinitionStmt <?, ?>) stmt ).getRValue (), in ));
112
+ if (gen .isPresent () && gen .get () instanceof Var def ) {
113
+ if (!(stmt instanceof DefinitionStmt <?,?> definitionStmt ) || !canHoldInt (def )){
114
+ return true ;
115
+ }
116
+ var rValue = definitionStmt .getRValue ();
117
+ if (rValue != null ) {
118
+ out .update (def , evaluate (rValue , in ));
118
119
System .out .println ((((DefinitionStmt <?, ?>) stmt ).getRValue ()).toString ());
119
120
} else {
120
- out .update (( Var ) gen . get () , Value .getNAC ());
121
+ out .update (def , Value .getNAC ());
121
122
}
122
123
System .out .println (stmt .getLineNumber () + " | transferred (old_out:" + old_out .toString () + ")" + stmt .toString () + " from" + in .toString () + "->" + out .toString ());
123
124
}
0 commit comments