File path: /emf-2.4.1/src/org/eclipse/emf/importer/rose/parser/RoseLexer.java | File path: /emf-2.4.1/src/org/eclipse/emf/importer/rose/parser/RoseLexer.java | |||
Method name: void readLines()
|
Method name: void readLines()
|
|||
Number of AST nodes: 9 | Number of AST nodes: 9 | |||
1 | RoseToken roseToken = new RoseToken(RoseToken.LEFT_PAREN, "");↵ | 1 | RoseToken roseToken = new RoseToken(RoseToken.LEFT_PAREN, "");↵ | |
2 | roseToken.lineNum = lineCounter;↵ | 2 | roseToken.lineNum = lineCounter;↵ | |
3 | tokens.add(roseToken);↵ | 3 | tokens.add(roseToken);↵ | |
4 | roseToken = new RoseToken(RoseToken.LIST, "");↵ | 4 | roseToken = new RoseToken(RoseToken.VALUE, "");↵ | |
5 | roseToken.lineNum = lineCounter;↵ | 5 | roseToken.lineNum = lineCounter;↵ | |
6 | tokens.add(roseToken);↵ | 6 | tokens.add(roseToken);↵ | |
7 | currentLine = currentLine.substring(5).trim(); // 5 is the size of (list↵ | 7 | currentLine = currentLine.substring(6).trim(); // 6 is the size of (value↵ | |
8 | processToTheEnd(currentLine, lineCounter);↵ | 8 | processValueToTheEnd(currentLine, lineCounter);↵ | |
9 | break; | 9 |
| |
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) | 0.0 |
Clones location | Clones are in the same method |
Number of node comparisons | 35 |
Number of mapped statements | 9 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 0.0 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
37 | RoseToken roseToken = new RoseToken(RoseToken.LEFT_PAREN, ""); | 48 | RoseToken roseToken = new RoseToken(RoseToken.LEFT_PAREN, ""); | |||||||||||||||
38 | roseToken.lineNum = lineCounter; | 49 | roseToken.lineNum = lineCounter; | |||||||||||||||
39 | tokens.add(roseToken); | 50 | tokens.add(roseToken); | |||||||||||||||
40 | roseToken = new RoseToken(RoseToken.LIST, ""); |
| 51 | roseToken = new RoseToken(RoseToken.VALUE, ""); | ||||||||||||||
41 | roseToken.lineNum = lineCounter; | 52 | roseToken.lineNum = lineCounter; | |||||||||||||||
42 | tokens.add(roseToken); | 50 | tokens.add(roseToken); | |||||||||||||||
|
| 53 | tokens.add(roseToken); | |||||||||||||||
43 | currentLine = currentLine.substring(5).trim(); |
| 54 | currentLine = currentLine.substring(6).trim(); | ||||||||||||||
44 | processToTheEnd(currentLine, lineCounter); |
| 55 | processValueToTheEnd(currentLine, lineCounter); | ||||||||||||||
45 | break; |
| 56 | break; |
Row | Violation |
---|---|
1 | Unmatched statement tokens.add(roseToken); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Expression processToTheEnd(currentLine,lineCounter) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Expression processValueToTheEnd(currentLine,lineCounter) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
4 | Expression processToTheEnd(currentLine,lineCounter) is a void method call, and thus it cannot be parameterized |
5 | Expression processValueToTheEnd(currentLine,lineCounter) is a void method call, and thus it cannot be parameterized |
6 | Statement break; without innermost loop |
7 | Statement break; without innermost loop |
8 | Clone fragment #1 returns variables currentLine , while Clone fragment #2 returns variables currentLine, roseToken |