File path: /jruby-1.4.0/src/org/jruby/compiler/ASTCompiler19.java | File path: /jruby-1.4.0/src/org/jruby/compiler/ASTCompiler.java | |||
Method name: void compileOptimizedMultipleAsgn19(MultipleAsgn19Node, BodyCompiler, boolean)
|
Method name: void compileOptimizedMultipleAsgn(MultipleAsgnNode, BodyCompiler, boolean)
|
|||
Number of AST nodes: 8 | Number of AST nodes: 8 | |||
1 | if (size >= 2 && size <= 10) {↵ | 1 | if (size >= 2 && size <= 10) {↵ | |
2 | ArrayNode values = (ArrayNode)multipleAsgn19Node.getValueNode();↵ | 2 | ArrayNode values = (ArrayNode)multipleAsgnNode.getValueNode();↵ | |
3 | for (Node value : values.childNodes()) {↵ | 3 | for (Node value : values.childNodes()) {↵ | |
4 | compile(value, context, true);↵ | 4 | compile(value, context, true);↵ | |
5 | }↵ | 5 | }↵ | |
6 | context.reverseValues(size);↵ | 6 | context.reverseValues(size);↵ | |
7 | for (Node asgn : multipleAsgn19Node.getPre().childNodes()) {↵ | 7 | for (Node asgn : multipleAsgnNode.getHeadNode().childNodes()) {↵ | |
8 | compileAssignment(asgn, context, false);↵ | 8 | compileAssignment(asgn, context, false);↵ | |
9 | }↵ | 9 | }↵ | |
10 | return;↵ | 10 | return;↵ | |
11 | } | 11 |
| |
See real code fragment | See real code fragment |
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) | 1.0 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 30 |
Number of mapped statements | 8 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 0 |
Time elapsed for statement mapping (ms) | 9.7 |
Clone type | Type 2 |
ID | Statement | ID | Statement | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
11 | if (size >= 2 && size <= 10) | 11 | if (size >= 2 && size <= 10) | |||||||||||||||||
12 | ArrayNode values = (ArrayNode)multipleAsgn19Node.getValueNode(); |
| 12 | ArrayNode values = (ArrayNode)multipleAsgnNode.getValueNode(); | ||||||||||||||||
13 | for (Node value : values.childNodes()) | 13 | for (Node value : values.childNodes()) | |||||||||||||||||
14 | compile(value, context, true); | 14 | compile(value, context, true); | |||||||||||||||||
15 | context.reverseValues(size); | 15 | context.reverseValues(size); | |||||||||||||||||
16 | for (Node asgn : multipleAsgn19Node.getPre().childNodes()) |
| 16 | for (Node asgn : multipleAsgnNode.getHeadNode().childNodes()) | ||||||||||||||||
17 | compileAssignment(asgn, context, false); | 17 | compileAssignment(asgn, context, false); | |||||||||||||||||
18 | return; |
| 18 | return; |
Row | Violation |
---|---|
1 | Conditional return; |
2 | Conditional return; |