final ClassVarAsgnNode classVarAsgnNode = (ClassVarAsgnNode) node;
CompilerCallback value = new CompilerCallback() {
public void call(BodyCompiler context) {
compile(classVarAsgnNode.getValueNode(), context, true);
}
};
context.assignClassVariable(classVarAsgnNode.getName(), value);
// TODO: don't require pop
if (!expr) context.consumeCurrentValue();
final DAsgnNode dasgnNode = (DAsgnNode) node;
CompilerCallback value = new CompilerCallback() {
public void call(BodyCompiler context) {
compile(dasgnNode.getValueNode(), context, true);
}
};
context.getVariableCompiler().assignLocalVariable(dasgnNode.getIndex(), dasgnNode.getDepth(), value, expr);
Clone fragments detected by clone detection tool
File path: /jruby-1.4.0/src/org/jruby/compiler/ASTCompiler.java
|
|
File path: /jruby-1.4.0/src/org/jruby/compiler/ASTCompiler.java
|
Method name: void compileClassVarAsgn(Node, BodyCompiler, boolean)
|
|
Method name: void compileDAsgn(Node, BodyCompiler, boolean)
|
Number of AST nodes: 5
|
|
Number of AST nodes: 3
|
|
1 | final ClassVarAsgnNode classVarAsgnNode = (ClassVarAsgnNode) node;↵ | | 1 | final DAsgnNode dasgnNode = (DAsgnNode) node;↵
|
|
2 | CompilerCallback value = new CompilerCallback() {↵ | | 2 | CompilerCallback value = new CompilerCallback() {↵
|
3 | public void call(BodyCompiler context) {↵ | | 3 | public void call(BodyCompiler context) {↵
|
4 | compile(classVarAsgnNode.getValueNode(), context, true);↵ | | 4 | compile(dasgnNode.getValueNode(), context, true);↵
|
5 | }↵ | | 5 | }↵
|
6 | };↵ | | 6 | };↵
|
| | | 7 | ↵
|
7 | context.assignClassVariable(classVarAsgnNode.getName(), value);↵ | | 8 | context.getVariableCompiler().assignLocalVariable(dasgnNode.getIndex(), dasgnNode.getDepth(), value↵
|
8 | // TODO: don't require pop↵ | | |
|
9 | if (!expr) context.consumeCurrentValue(); | | 9 | , expr);
|
See real code fragment |
|
See real code fragment |
Summary
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.0 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 5 |
-
{Non-refactorable}
Mapping Summary
Number of mapped statements | 2 |
Number of unmapped statements in the first code fragment | 1 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 0.0 |
Clone type | Type 2 |
Mapped Statements
ID |
Statement |
|
ID |
Statement |
1 | final ClassVarAsgnNode classVarAsgnNode = (ClassVarAsgnNode)node; | | 1 | final DAsgnNode dasgnNode = (DAsgnNode)node; |
2 | CompilerCallback value = new CompilerCallback() {...}; | | 2 | CompilerCallback value = new CompilerCallback() {...}; |
| | | 3 | context.getVariableCompiler().assignLocalVariable(dasgnNode.getIndex(), dasgnNode.getDepth(), value, expr); |
3 | context.assignClassVariable(classVarAsgnNode.getName(), value); | | | |
Precondition Violations (1)
Row |
Violation |
1 | Clone fragment #1 returns variables classVarAsgnNode, value , while Clone fragment #2 returns variables dasgnNode, value |