11436-7-9

if (diagnostics == null) { return false; } else { result = false; diagnostics.add (createDiagnostic (Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_SUPER_TYPES_DUPLICATE, "_UI_EClassNoDuplicateSuperTypes_diagnostic", new Object [] { eGenericSuperTypes.indexOf(eGenericSuperType), index }, new Object[] { eClass, eGenericSuperType, eGenericSuperTypes.get(index) }, context)); }
if (diagnostics == null) { return false; } else { result = false; diagnostics.add (createDiagnostic (Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_ARGUMENTS_INCORRECT_NUMBER, "_UI_EGenericTypeIncorrectArguments_diagnostic", new Object [] { eClassifier.getName(), eTypeArgumentSize, eTypeParameterSize }, new Object[] { eGenericType }, context)); }

Clone fragments detected by clone detection tool
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/util/EcoreValidator.java |  | File path: /emf-2.4.1/src/org/eclipse/emf/ecore/util/EcoreValidator.java
Method name: `boolean validateEClass_ConsistentSuperTypes(EClass, DiagnosticChain, Map)` |  | Method name: `boolean validateEGenericType_ConsistentArguments(EGenericType, DiagnosticChain, Map)`
Number of AST nodes: 4 |  | Number of AST nodes: 4

1

    if (diagnostics == null)↵

1

    if (diagnostics == null)↵

2

              {↵

2

            ↵

3

      ↵

3

    {↵

4

              return false;↵

4

              return false;↵

5

              }↵

5

            }↵

6

              else↵

6

            else↵

7

              {↵

7

            ↵

8

      ↵

8

    {↵

9

              result = false;↵

9

              result = false;↵

10

                diagnostics.add↵

10

              diagnostics.add↵

11

                  (createDiagnostic↵

11

                (createDiagnostic↵

12

                    (Diagnostic.ERROR,↵

12

                  (Diagnostic.ERROR,↵

13

                     DIAGNOSTIC_SOURCE,↵

13

                   DIAGNOSTIC_SOURCE,↵

14

                     CONSISTENT_SUPER_TYPES_DUPLICATE,↵

14

                   CONSISTENT_↵

15

                     "_UI_EClassNoDuplicateSuperType↵

15

    ARGUMENTS_INCORRECT_NUMBER,↵

16

    s_diagnostic",↵

16

                   "_UI_EGenericTypeIncorrectArguments_diagnostic",↵

17

      ↵

17

     ↵

18

                   new Object [] { eGenericSuperTypes.indexOf(eGenericSuperType), index },↵

18

                   new Object [] { eClassifier.getName(), eTypeArgumentSize, eTypeParameterSize },↵

19

                     new Object[] { eClass, eGenericSuperType,  eGenericSuperTypes.get(index) },↵

19

                   new Object[] { eGenericType },↵

20

                     context));↵

20

                   context));↵

21

      ↵

22

            }

21

            }

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) | 0.2
Clones location | Clones are declared in the same class
Number of node comparisons | 17

1. {Non-refactorable}

   Mapping Summary
   Number of mapped statements | 4
   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) | 23.8
   Clone type | Type 2

   Mapped Statements
   ID | Statement |  | ID | Statement
   --- | --- | --- | --- | ---

   9

       if (diagnostics == null)

   20

       if (diagnostics == null)

   10

       return false;

   10 | return false;
   21 | return false;

   Preondition Violations
   Conditional return false;
   Conditional return false;

   21

       return false;

       else

       else

   11

       result = false;

   22

       result = false;

   12

       diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_SUPER_TYPES_DUPLICATE, "_UI_EClassNoDuplicateSuperTypes_diagnostic", new Object[] {eGenericSuperTypes.indexOf(eGenericSuperType), index}, new Object[] {eClass, eGenericSuperType, eGenericSuperTypes.get(index)}, context));

   12 | diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_SUPER_TYPES_DUPLICATE, "_UI_EClassNoDuplicateSuperTypes_diagnostic", new Object[] {eGenericSuperTypes.indexOf(eGenericSuperType), index}, new Object[] {eClass, eGenericSuperType, eGenericSuperTypes.get(index)}, context));
   23 | diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_ARGUMENTS_INCORRECT_NUMBER, "_UI_EGenericTypeIncorrectArguments_diagnostic", new Object[] {eClassifier.getName(), eTypeArgumentSize, eTypeParameterSize}, new Object[] {eGenericType}, context));

   Differences
   Expression1 | Expression2 | Difference
   --- | --- | ---
   CONSISTENT_SUPER_TYPES_DUPLICATE | CONSISTENT_ARGUMENTS_INCORRECT_NUMBER | VARIABLE_NAME_MISMATCH
   "_UI_EClassNoDuplicateSuperTypes_diagnostic" | "_UI_EGenericTypeIncorrectArguments_diagnostic" | LITERAL_VALUE_MISMATCH
   {eGenericSuperTypes.indexOf(eGenericSuperType),index} | {eClassifier.getName(),eTypeArgumentSize,eTypeParameterSize} | ARRAY_INITIALIZER_EXPRESSION_NUMBER_MISMATCH
   {eClass,eGenericSuperType,eGenericSuperTypes.get(index)} | {eGenericType} | ARRAY_INITIALIZER_EXPRESSION_NUMBER_MISMATCH

   23

       diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_ARGUMENTS_INCORRECT_NUMBER, "_UI_EGenericTypeIncorrectArguments_diagnostic", new Object[] {eClassifier.getName(), eTypeArgumentSize, eTypeParameterSize}, new Object[] {eGenericType}, context));

   Precondition Violations (2)
   Row | Violation
   --- | ---
   1 | Conditional return false;
   2 | Conditional return false;