Skip to content

Commit 0d63111

Browse files
committed
fixed bug on static var
1 parent 3f0ba98 commit 0d63111

File tree

3 files changed

+9
-18
lines changed

3 files changed

+9
-18
lines changed

electrum/src/main/java/edu/mit/csail/sdg/alloy4compiler/parser/Action2Alloy.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public void expand(final A4Reporter rep, final CompModule root) throws Err {
8181
}
8282
// define sig Arg as the sum of all argument types
8383
// TODO: avoid repeated arg types
84-
Sig arg_sig = root.addSig("_Arg", ExprVar.make(null,"="), args, null, null, Attr.PRIVATE);
84+
Sig arg_sig = root.addSig("_Arg", ExprVar.make(null,"="), args, null, null, Attr.PRIVATE, Attr.VARIABLE);
8585
System.out.println("Max args is "+max_args+", sig "+arg_sig.label+" defined = "+ ((SubsetSig) arg_sig).parents + " with "+arg_sig.attributes+".");
8686

8787
final ExprVar arg_var = ExprVar.make(null, arg_sig.label);

electrum/src/main/java/edu/mit/csail/sdg/alloy4graph/Graph.java

+7-16
Original file line numberDiff line numberDiff line change
@@ -217,22 +217,13 @@ private void layout_assignOrder() {
217217
bins.get(grBIN[x.pos()]).remove(x);
218218
for(GraphNode n:grIN.get(x.pos())) grOUT.get(n.pos()).remove(x);
219219
for(GraphNode n:grOUT.get(x.pos())) grIN.get(n.pos()).remove(x);
220-
List<GraphNode> aux = new ArrayList<>(grIN.get(x.pos())); // [HASLab]
221-
aux.addAll(grOUT.get(x.pos())); // [HASLab]
222-
aux.sort(new Comparator<GraphNode>() { // [HASLab]
223-
@Override
224-
public int compare(GraphNode o1, GraphNode o2) {
225-
return - o1.uuid.toString().compareTo(o2.uuid.toString());
226-
}
227-
});
228-
// Iterable<GraphNode> aux = Util.fastJoin(grIN.get(x.pos()), ); // [HASLab]
229-
for(GraphNode n:aux) { // [HASLab]
230-
int ni=n.pos(), out=grOUT.get(ni).size(), in=grIN.get(ni).size();
231-
int b=(out==0)?0:(in==0?(2*num):(out-in+num));
232-
if (grBIN[ni]!=b) { bins.get(grBIN[ni]).remove(n); grBIN[ni]=b; bins.get(b).add(n); }
233-
}
234-
}
235-
sortNodes(Util.fastJoin(s1,s2));
220+
for(GraphNode n:Util.fastJoin(grIN.get(x.pos()), grOUT.get(x.pos()))) {
221+
int ni=n.pos(), out=grOUT.get(ni).size(), in=grIN.get(ni).size();
222+
int b=(out==0)?0:(in==0?(2*num):(out-in+num));
223+
if (grBIN[ni]!=b) { bins.get(grBIN[ni]).remove(n); grBIN[ni]=b; bins.get(b).add(n); }
224+
}
225+
}
226+
sortNodes(Util.fastJoin(s1,s2));
236227
}
237228

238229
//============================================================================================================================//

pardinus

0 commit comments

Comments
 (0)