while (partlen-- > 0) {
char ch1 = target [ offset++ ] ;
char ch2 = part.charAt(i++);
if (ch1 == ch2)
continue;
char uch1 = Character.toUpperCase(ch1);
char uch2 = Character.toUpperCase(ch2);
if (uch1 == uch2)
continue;
if (Character.toLowerCase(uch1) != Character.toLowerCase(uch2))
return false;
}
while (partlen-- > 0) {
char ch1 = target [ offset++ ] ;
char ch2 = target [ i++ ] ;
if (ch1 == ch2)
continue;
char uch1 = Character.toUpperCase(ch1);
char uch2 = Character.toUpperCase(ch2);
if (uch1 == uch2)
continue;
if (Character.toLowerCase(uch1) != Character.toLowerCase(uch2))
return false;
}
Clone fragments detected by clone detection tool
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/xml/type/internal/RegEx.java
|
|
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/xml/type/internal/RegEx.java
|
Method name: boolean regionMatchesIgnoreCase(char[], int, int, String, int)
|
|
Method name: boolean regionMatchesIgnoreCase(char[], int, int, int, int)
|
Number of AST nodes: 11
|
|
Number of AST nodes: 11
|
|
1 | while (partlen-- > 0) {↵ | | 1 | while (partlen-- > 0) {↵
|
2 | char ch1 = target [ offset++ ] ;↵ | | 2 | char ch1 = target [ offset++ ] ;↵
|
3 | char ch2 = part.charAt(i++);↵ | | 3 | char ch2 = target [ i++ ] ;↵
|
4 | if (ch1 == ch2)↵ | | 4 | if (ch1 == ch2)↵
|
5 | continue;↵ | | 5 | continue;↵
|
6 | char uch1 = Character.toUpperCase(ch1);↵ | | 6 | char uch1 = Character.toUpperCase(ch1);↵
|
7 | char uch2 = Character.toUpperCase(ch2);↵ | | 7 | char uch2 = Character.toUpperCase(ch2);↵
|
8 | if (uch1 == uch2)↵ | | 8 | if (uch1 == uch2)↵
|
9 | continue;↵ | | 9 | continue;↵
|
10 | if (Character.toLowerCase(uch1) != Character.toLowerCase(uch2))↵ | | 10 | if (Character.toLowerCase(uch1) != Character.toLowerCase(uch2))↵
|
11 | return false;↵ | | 11 | return false;↵
|
12 | } | | 12 | }
|
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) | 1.0 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 52 |
-
{Non-refactorable}
Mapping Summary
Number of mapped statements | 11 |
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) | 7.0 |
Clone type | Type 2 |
Mapped Statements
ID |
Statement |
|
ID |
Statement |
6 | while (partlen-- > 0) | | 6 | while (partlen-- > 0) |
7 | char ch1 = target[offset++]; | | 7 | char ch1 = target[offset++]; |
8 | char ch2 = part.charAt(i++); | | 8 | |
9 | | | 9 | |
10 | | | 10 | |
11 | char uch1 = Character.toUpperCase(ch1); | | 11 | char uch1 = Character.toUpperCase(ch1); |
12 | char uch2 = Character.toUpperCase(ch2); | | 12 | char uch2 = Character.toUpperCase(ch2); |
13 | | | 13 | |
14 | | | 14 | |
15 | if (Character.toLowerCase(uch1) != Character.toLowerCase(uch2)) | | 15 | if (Character.toLowerCase(uch1) != Character.toLowerCase(uch2)) |
16 | | | 16 | |
Precondition Violations (3)
Row |
Violation |
1 | Expression part.charAt(i++) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
2 | Expression target[i++] cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Not all possible execution flows end in a return statement |