Add a new def to an existing Node. Keep the edges correct by adding the corresponding def->use edge. @param new_def the new definition, appended to the end of existing definitions @return new_def for flow coding
(Node new_def)
| 211 | * @return new_def for flow coding |
| 212 | */ |
| 213 | public Node addDef(Node new_def) { |
| 214 | unlock(); |
| 215 | // Add use->def edge |
| 216 | _inputs.add(new_def); |
| 217 | // If new def is not null, add the corresponding def->use edge |
| 218 | if( new_def != null ) |
| 219 | new_def.addUse(this); |
| 220 | return new_def; |
| 221 | } |
| 222 | |
| 223 | // Breaks the edge invariants, used temporarily |
| 224 | protected <N extends Node> void addUse(N n) { _outputs.add(n); } |
no test coverage detected