Previous CloneSet | Next CloneSet | Back to Main Report |
Clone Mass | Clones in CloneSet | Parameter Count | Clone Similarity | Syntax Category [Sequence Length] |
---|---|---|---|---|
8 | 2 | 1 | 0.961 | executable_statement |
Clone Abstraction | Parameter Bindings |
Clone Instance (Click to see clone) | Line Count | Source Line | Source File |
---|---|---|---|
1 | 10 | 401 | plugins/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ParameterizedGenericMethodBinding.java |
2 | 8 | 413 | plugins/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ParameterizedGenericMethodBinding.java |
| ||||
{ TypeBinding substitutedBound = Scope.substitute(this, originalVariable.superclass); argument.collectSubstitutes(scope, substitutedBound, collectedSubstitutes, CONSTRAINT_SUPER); if (collectedSubstitutes.get(TypeBinding.VOID) != null) return null; // impossible substitution // JLS 15.12.2.8 claims reverse inference shouldn't occur, however it improves inference // e.g. given: <E extends Object, S extends Collection<E>> S test1(S param) // invocation: test1(new Vector<String>()) will infer: S=Vector<String> and with code below: E=String if (argAlreadyInferred) { substitutedBound.collectSubstitutes(scope, argument, collectedSubstitutes, CONSTRAINT_EXTENDS); if (collectedSubstitutes.get(TypeBinding.VOID) != null) return null; // impossible substitution } } |
| ||||
{ TypeBinding substitutedBound = Scope.substitute(this, originalVariable.superInterfaces[j]); argument.collectSubstitutes(scope, substitutedBound, collectedSubstitutes, CONSTRAINT_SUPER); if (collectedSubstitutes.get(TypeBinding.VOID) != null) return null; // impossible substitution // JLS 15.12.2.8 claims reverse inference shouldn't occur, however it improves inference if (argAlreadyInferred) { substitutedBound.collectSubstitutes(scope, argument, collectedSubstitutes, CONSTRAINT_EXTENDS); if (collectedSubstitutes.get(TypeBinding.VOID) != null) return null; // impossible substitution } } |
| |||
{ TypeBinding substitutedBound = Scope.substitute(this, [[#variablec1c06bc0]]); argument.collectSubstitutes(scope, substitutedBound, collectedSubstitutes, CONSTRAINT_SUPER); if (collectedSubstitutes.get(TypeBinding.VOID) != null) return null; // impossible substitution // JLS 15.12.2.8 claims reverse inference shouldn't occur, however it improves inference // e.g. given: <E extends Object, S extends Collection<E>> S test1(S param) // invocation: test1(new Vector<String>()) will infer: S=Vector<String> and with code below: E=String if (argAlreadyInferred) { substitutedBound.collectSubstitutes(scope, argument, collectedSubstitutes, CONSTRAINT_EXTENDS); if (collectedSubstitutes.get(TypeBinding.VOID) != null) return null; // impossible substitution } } |
CloneAbstraction |
Parameter Index | Clone Instance | Parameter Name | Value |
---|---|---|---|
1 | 1 | [[#c1c06bc0]] | originalVariable.superInterfaces[j] |
1 | 2 | [[#c1c06bc0]] | originalVariable.superclass |