So far the CloneDetector only respected the class of each statement when searching for clones. This means that nodes that differ in any other attribute are falsely considered to be clones of each other as long as they had the same statement class. As an example, the statements a > b and a < b are currently considered to be clones of each other, even though they are obviously different.
This patch refines the way the CloneDetector collects data from each statement by providing methods for each class that will read the class-specific
attributes. These attributes are for example the operator kind for BinaryOperator statements which would prevent the false-positive result from the example above.