File path: /jEdit-4.2/src/bsh/Primitive.java | File path: /jEdit-4.2/src/bsh/Primitive.java | |||
Method name: Object longBinaryOperation(Long, Long, int)
|
Method name: Object intBinaryOperation(Integer, Integer, int)
|
|||
Number of AST nodes: 48 | Number of AST nodes: 48 | |||
1 | long lhs = L1.longValue();↵ | 1 | int lhs = I1.intValue();↵ | |
2 | long rhs = L2.longValue();↵ | 2 | int rhs = I2.intValue();↵ | |
3 | switch(kind)↵ | 3 | switch(kind)↵ | |
4 | {↵ | 4 | {↵ | |
5 | // boolean↵ | 5 | // boolean↵ | |
6 | case LT:↵ | 6 | case LT:↵ | |
7 | case LTX:↵ | 7 | case LTX:↵ | |
8 | return new Boolean(lhs < rhs);↵ | 8 | return new Boolean(lhs < rhs);↵ | |
9 | case GT:↵ | 9 | case GT:↵ | |
10 | case GTX:↵ | 10 | case GTX:↵ | |
11 | return new Boolean(lhs > rhs);↵ | 11 | return new Boolean(lhs > rhs);↵ | |
12 | case EQ:↵ | 12 | case EQ:↵ | |
13 | return new Boolean(lhs == rhs);↵ | 13 | return new Boolean(lhs == rhs);↵ | |
14 | case LE:↵ | 14 | case LE:↵ | |
15 | case LEX:↵ | 15 | case LEX:↵ | |
16 | return new Boolean(lhs <= rhs);↵ | 16 | return new Boolean(lhs <= rhs);↵ | |
17 | case GE:↵ | 17 | case GE:↵ | |
18 | case GEX:↵ | 18 | case GEX:↵ | |
19 | return new Boolean(lhs >= rhs);↵ | 19 | return new Boolean(lhs >= rhs);↵ | |
20 | case NE:↵ | 20 | case NE:↵ | |
21 | return new Boolean(lhs != rhs);↵ | 21 | return new Boolean(lhs != rhs);↵ | |
22 | // arithmetic↵ | 22 | // arithmetic↵ | |
23 | case PLUS:↵ | 23 | case PLUS:↵ | |
24 | return new Long(lhs + rhs);↵ | 24 | return new Integer(lhs + rhs);↵ | |
25 | case MINUS:↵ | 25 | case MINUS:↵ | |
26 | return new Long(lhs - rhs);↵ | 26 | return new Integer(lhs - rhs);↵ | |
27 | case STAR:↵ | 27 | case STAR:↵ | |
28 | return new Long(lhs * rhs);↵ | 28 | return new Integer(lhs * rhs);↵ | |
29 | case SLASH:↵ | 29 | case SLASH:↵ | |
30 | return new Long(lhs / rhs);↵ | 30 | return new Integer(lhs / rhs);↵ | |
31 | case MOD:↵ | 31 | case MOD:↵ | |
32 | return new Long(lhs % rhs);↵ | 32 | return new Integer(lhs % rhs);↵ | |
33 | // bitwise↵ | 33 | // bitwise↵ | |
34 | case LSHIFT:↵ | 34 | case LSHIFT:↵ | |
35 | case LSHIFTX:↵ | 35 | case LSHIFTX:↵ | |
36 | return new Long(lhs << rhs);↵ | 36 | return new Integer(lhs << rhs);↵ | |
37 | case RSIGNEDSHIFT:↵ | 37 | case RSIGNEDSHIFT:↵ | |
38 | case RSIGNEDSHIFTX:↵ | 38 | case RSIGNEDSHIFTX:↵ | |
39 | return new Long(lhs >> rhs);↵ | 39 | return new Integer(lhs >> rhs);↵ | |
40 | case RUNSIGNEDSHIFT:↵ | 40 | case RUNSIGNEDSHIFT:↵ | |
41 | case RUNSIGNEDSHIFTX:↵ | 41 | case RUNSIGNEDSHIFTX:↵ | |
42 | return new Long(lhs >>> rhs);↵ | 42 | return new Integer(lhs >>> rhs);↵ | |
43 | case BIT_AND:↵ | 43 | case BIT_AND:↵ | |
44 | case BIT_ANDX:↵ | 44 | case BIT_ANDX:↵ | |
45 | return new Long(lhs & rhs);↵ | 45 | return new Integer(lhs & rhs);↵ | |
46 | case BIT_OR:↵ | 46 | case BIT_OR:↵ | |
47 | case BIT_ORX:↵ | 47 | case BIT_ORX:↵ | |
48 | return new Long(lhs | rhs);↵ | 48 | return new Integer(lhs | rhs);↵ | |
49 | case XOR:↵ | 49 | case XOR:↵ | |
50 | return new Long(lhs ^ rhs);↵ | 50 | return new Integer(lhs ^ rhs);↵ | |
51 | default:↵ | 51 | default:↵ | |
52 | throw new InterpreterError(↵ | 52 | throw new InterpreterError(↵ | |
53 | "Unimplemented binary long operator");↵ | 53 | "Unimplemented binary integer operator");↵ | |
54 | } | 54 |
| |
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.1 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 1194 |
Number of mapped statements | 29 |
Number of unmapped statements in the first code fragment | 19 |
Number of unmapped statements in the second code fragment | 19 |
Time elapsed for statement mapping (ms) | 87.6 |
Clone type | Type 2 |
ID | Statement | ID | Statement | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | int lhs = I1.intValue(); | ||||||||||||
1 | long lhs = L1.longValue(); | | ||||||||||||
| 2 | int rhs = I2.intValue(); | ||||||||||||
2 | long rhs = L2.longValue(); | | ||||||||||||
3 | switch (kind) | 3 | switch (kind) | |||||||||||
4 | case LT: | 4 | case LT: | |||||||||||
5 | case LTX: | 5 | case LTX: | |||||||||||
|
| 6 | return new Boolean(lhs < rhs); | |||||||||||
6 | return new Boolean(lhs < rhs); |
| | |||||||||||
7 | case GT: | 7 | case GT: | |||||||||||
8 | case GTX: | 8 | case GTX: | |||||||||||
|
| 9 | return new Boolean(lhs > rhs); | |||||||||||
9 | return new Boolean(lhs > rhs); |
| | |||||||||||
10 | case EQ: | 10 | case EQ: | |||||||||||
|
| 11 | return new Boolean(lhs == rhs); | |||||||||||
11 | return new Boolean(lhs == rhs); |
| | |||||||||||
12 | case LE: | 12 | case LE: | |||||||||||
13 | case LEX: | 13 | case LEX: | |||||||||||
|
| 14 | return new Boolean(lhs <= rhs); | |||||||||||
14 | return new Boolean(lhs <= rhs); |
| | |||||||||||
15 | case GE: | 15 | case GE: | |||||||||||
16 | case GEX: | 16 | case GEX: | |||||||||||
|
| 17 | return new Boolean(lhs >= rhs); | |||||||||||
17 | return new Boolean(lhs >= rhs); |
| | |||||||||||
18 | case NE: | 18 | case NE: | |||||||||||
|
| 19 | return new Boolean(lhs != rhs); | |||||||||||
19 | return new Boolean(lhs != rhs); |
| | |||||||||||
20 | case PLUS: | 20 | case PLUS: | |||||||||||
|
| 21 | return new Integer(lhs + rhs); | |||||||||||
21 | return new Long(lhs + rhs); |
| | |||||||||||
22 | case MINUS: | 22 | case MINUS: | |||||||||||
|
| 23 | return new Integer(lhs - rhs); | |||||||||||
23 | return new Long(lhs - rhs); |
| | |||||||||||
24 | case STAR: | 24 | case STAR: | |||||||||||
|
| 25 | return new Integer(lhs * rhs); | |||||||||||
25 | return new Long(lhs * rhs); |
| | |||||||||||
26 | case SLASH: | 26 | case SLASH: | |||||||||||
|
| 27 | return new Integer(lhs / rhs); | |||||||||||
27 | return new Long(lhs / rhs); |
| | |||||||||||
28 | case MOD: | 28 | case MOD: | |||||||||||
|
| 29 | return new Integer(lhs % rhs); | |||||||||||
29 | return new Long(lhs % rhs); |
| | |||||||||||
30 | case LSHIFT: | 30 | case LSHIFT: | |||||||||||
31 | case LSHIFTX: | 31 | case LSHIFTX: | |||||||||||
|
| 32 | return new Integer(lhs << rhs); | |||||||||||
32 | return new Long(lhs << rhs); |
| | |||||||||||
33 | case RSIGNEDSHIFT: | 33 | case RSIGNEDSHIFT: | |||||||||||
34 | case RSIGNEDSHIFTX: | 34 | case RSIGNEDSHIFTX: | |||||||||||
|
| 35 | return new Integer(lhs >> rhs); | |||||||||||
35 | return new Long(lhs >> rhs); |
| | |||||||||||
36 | case RUNSIGNEDSHIFT: | 36 | case RUNSIGNEDSHIFT: | |||||||||||
37 | case RUNSIGNEDSHIFTX: | 37 | case RUNSIGNEDSHIFTX: | |||||||||||
|
| 38 | return new Integer(lhs >>> rhs); | |||||||||||
38 | return new Long(lhs >>> rhs); |
| | |||||||||||
39 | case BIT_AND: | 39 | case BIT_AND: | |||||||||||
40 | case BIT_ANDX: | 40 | case BIT_ANDX: | |||||||||||
|
| 41 | return new Integer(lhs & rhs); | |||||||||||
41 | return new Long(lhs & rhs); |
| | |||||||||||
42 | case BIT_OR: | 42 | case BIT_OR: | |||||||||||
43 | case BIT_ORX: | 43 | case BIT_ORX: | |||||||||||
|
| 44 | return new Integer(lhs | rhs); | |||||||||||
44 | return new Long(lhs | rhs); |
| | |||||||||||
45 | case XOR: | 45 | case XOR: | |||||||||||
|
| 46 | return new Integer(lhs ^ rhs); | |||||||||||
46 | return new Long(lhs ^ rhs); |
| | |||||||||||
47 | default: | 47 | default: | |||||||||||
48 | throw new InterpreterError("Unimplemented binary long operator"); |
| 48 | throw new InterpreterError("Unimplemented binary integer operator"); |
Row | Violation |
---|---|
1 | Unmatched return new Boolean(lhs < rhs); |
2 | Unmatched return new Boolean(lhs < rhs); |
3 | Unmatched return new Boolean(lhs > rhs); |
4 | Unmatched return new Boolean(lhs > rhs); |
5 | Unmatched return new Boolean(lhs == rhs); |
6 | Unmatched return new Boolean(lhs == rhs); |
7 | Unmatched return new Boolean(lhs <= rhs); |
8 | Unmatched return new Boolean(lhs <= rhs); |
9 | Unmatched return new Boolean(lhs >= rhs); |
10 | Unmatched return new Boolean(lhs >= rhs); |
11 | Unmatched return new Boolean(lhs != rhs); |
12 | Unmatched return new Boolean(lhs != rhs); |
13 | Unmatched return new Integer(lhs + rhs); |
14 | Unmatched return new Long(lhs + rhs); |
15 | Unmatched return new Integer(lhs - rhs); |
16 | Unmatched return new Long(lhs - rhs); |
17 | Unmatched return new Integer(lhs * rhs); |
18 | Unmatched return new Long(lhs * rhs); |
19 | Unmatched return new Integer(lhs / rhs); |
20 | Unmatched return new Long(lhs / rhs); |
21 | Unmatched return new Integer(lhs % rhs); |
22 | Unmatched return new Long(lhs % rhs); |
23 | Unmatched return new Integer(lhs << rhs); |
24 | Unmatched return new Long(lhs << rhs); |
25 | Unmatched return new Integer(lhs >> rhs); |
26 | Unmatched return new Long(lhs >> rhs); |
27 | Unmatched return new Integer(lhs >>> rhs); |
28 | Unmatched return new Long(lhs >>> rhs); |
29 | Unmatched return new Integer(lhs & rhs); |
30 | Unmatched return new Long(lhs & rhs); |
31 | Unmatched return new Integer(lhs | rhs); |
32 | Unmatched return new Long(lhs | rhs); |
33 | Unmatched return new Integer(lhs ^ rhs); |
34 | Unmatched return new Long(lhs ^ rhs); |