Skip to content

Commit 361334e

Browse files
committed
fix: modified link will not participate in propagation
1 parent 73e3e83 commit 361334e

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

xll/src/main/java/edu/pku/code2graph/xll/Link.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ public final class Link extends LinkBase<URI> {
66
public final Capture input;
77
public final Capture output;
88
public final Rule rule;
9+
public boolean modified = false;
910

1011
public Link(final URI def, final URI use, final Rule rule, final Capture input, final Capture output) {
1112
super(def, use, rule.name, rule.hidden);

xll/src/main/java/edu/pku/code2graph/xll/Project.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,17 +89,20 @@ private URI infer(URI oldUri, URI newUri, URI contra, URIPattern cis, URIPattern
8989
public void rename(URI oldUri, URI newUri, Map<URI, Set<URI>> changes) {
9090
if (!changes.computeIfAbsent(oldUri, k -> new HashSet<>()).add(newUri)) return;
9191
for (Link link : links) {
92+
if (link.modified) continue;
9293
if (link.def.equals(oldUri)) {
9394
URI contra = link.use;
9495
URI result = infer(oldUri, newUri, contra, link.rule.def, link.rule.use, link.input);
9596
if (result == null) continue;
9697
link.use = result;
98+
link.modified = true;
9799
rename(contra, result, changes);
98100
} else if (link.use.equals(oldUri)) {
99101
URI contra = link.def;
100102
URI result = infer(oldUri, newUri, contra, link.rule.use, link.rule.def, link.input);
101103
if (result == null) continue;
102104
link.def = result;
105+
link.modified = true;
103106
rename(contra, result, changes);
104107
}
105108
}

0 commit comments

Comments
 (0)