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: 10 | Number of AST nodes: 10 | |||
1 | isList = false;↵ | 1 | isList = true;↵ | |
2 | RoseToken roseToken = new RoseToken(RoseToken.LEFT_PAREN, "");↵ | 2 | RoseToken roseToken = new RoseToken(RoseToken.LEFT_PAREN, "");↵ | |
3 | roseToken.lineNum = lineCounter;↵ | 3 | roseToken.lineNum = lineCounter;↵ | |
4 | tokens.add(roseToken);↵ | 4 | tokens.add(roseToken);↵ | |
5 | roseToken = new RoseToken(RoseToken.OBJECT, "");↵ | 5 | roseToken = new RoseToken(RoseToken.LIST, "");↵ | |
6 | roseToken.lineNum = lineCounter;↵ | 6 | roseToken.lineNum = lineCounter;↵ | |
7 | tokens.add(roseToken);↵ | 7 | tokens.add(roseToken);↵ | |
8 | currentLine = currentLine.substring(7).trim(); // 7 is the size of (object↵ | 8 | currentLine = currentLine.substring(5).trim(); // 5 is the size of (list↵ | |
9 | processToTheEnd(currentLine, lineCounter);↵ | 9 | processToTheEnd(currentLine, lineCounter);↵ | |
10 | break; | 10 |
| |
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 | 42 |
Number of mapped statements | 10 |
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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
25 | isList = false; |
| 36 | isList = true; | ||||||||||
26 | RoseToken roseToken = new RoseToken(RoseToken.LEFT_PAREN, ""); | 37 | RoseToken roseToken = new RoseToken(RoseToken.LEFT_PAREN, ""); | |||||||||||
27 | roseToken.lineNum = lineCounter; | 38 | roseToken.lineNum = lineCounter; | |||||||||||
28 | tokens.add(roseToken); | 39 | tokens.add(roseToken); | |||||||||||
29 | roseToken = new RoseToken(RoseToken.OBJECT, ""); |
| 40 | roseToken = new RoseToken(RoseToken.LIST, ""); | ||||||||||
30 | roseToken.lineNum = lineCounter; | 41 | roseToken.lineNum = lineCounter; | |||||||||||
31 | tokens.add(roseToken); | 39 | tokens.add(roseToken); | |||||||||||
|
| 42 | tokens.add(roseToken); | |||||||||||
32 | currentLine = currentLine.substring(7).trim(); |
| 43 | currentLine = currentLine.substring(5).trim(); | ||||||||||
33 | processToTheEnd(currentLine, lineCounter); | 44 | processToTheEnd(currentLine, lineCounter); | |||||||||||
34 | break; |
| 45 | 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 | Statement break; without innermost loop |
3 | Statement break; without innermost loop |
4 | Clone fragment #1 returns variables currentLine , while Clone fragment #2 returns variables currentLine, roseToken |