| Previous CloneSet | Next CloneSet | Back to Main Report |
| Clone Mass | Clones in CloneSet | Parameter Count | Clone Similarity | Syntax Category [Sequence Length] |
|---|---|---|---|---|
| 24 | 2 | 0 | 1.000 | statement_sequence[5] |
| Clone Abstraction | Parameter Bindings |
| Clone Instance (Click to see clone) | Line Count | Source Line | Source File |
|---|---|---|---|
| 1 | 24 | 445 | plugins/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java |
| 2 | 24 | 329 | plugins/org.eclipse.jdt.core/eval/org/eclipse/jdt/internal/eval/CodeSnippetMessageSend.java |
| ||||
checkInvocationArguments(scope, this.receiver, actualReceiverType, binding, this.arguments, argumentTypes, argsContainCast, this );
//-------message send that are known to fail at compile time-----------
if (binding.isAbstract()) {
if (receiver.isSuper()) {
scope.problemReporter().cannotDireclyInvokeAbstractMethod(this, binding);
}
// abstract private methods cannot occur nor abstract static............
}
if (isMethodUseDeprecated(binding, scope, true))
scope.problemReporter().deprecatedMethod(binding, this );
// from 1.5 compliance on, array#clone() returns the array type (but binding still shows Object)
if (actualReceiverType.isArrayType() &&
this.binding.parameters == Binding.NO_PARAMETERS &&
scope.compilerOptions().complianceLevel >= ClassFileConstants.JDK1_5 &&
CharOperation.equals(this.binding.selector, CLONE)) {
this.resolvedType = actualReceiverType;
}
else {
TypeBinding returnType = this.binding.returnType;
if (returnType != null) returnType = returnType.capture(scope, this.sourceEnd);
this.resolvedType = returnType;
}
return this.resolvedType;
|
| ||||
checkInvocationArguments(scope, this.receiver, actualReceiverType, binding, this.arguments, argumentTypes, argsContainCast, this );
//-------message send that are known to fail at compile time-----------
if (binding.isAbstract()) {
if (receiver.isSuper()) {
scope.problemReporter().cannotDireclyInvokeAbstractMethod(this, binding);
}
// abstract private methods cannot occur nor abstract static............
}
if (isMethodUseDeprecated(binding, scope, true))
scope.problemReporter().deprecatedMethod(binding, this );
// from 1.5 compliance on, array#clone() returns the array type (but binding still shows Object)
if (actualReceiverType.isArrayType() &&
this.binding.parameters == Binding.NO_PARAMETERS &&
scope.compilerOptions().complianceLevel >= ClassFileConstants.JDK1_5 &&
CharOperation.equals(this.binding.selector, CLONE)) {
this.resolvedType = actualReceiverType;
}
else {
TypeBinding returnType = this.binding.returnType;
if (returnType != null) returnType = returnType.capture(scope, this.sourceEnd);
this.resolvedType = returnType;
}
return this.resolvedType;
|
| |||
checkInvocationArguments(scope, this.receiver, actualReceiverType, binding, this.arguments, argumentTypes, argsContainCast, this );
//-------message send that are known to fail at compile time-----------
if (binding.isAbstract()) {
if (receiver.isSuper()) {
scope.problemReporter().cannotDireclyInvokeAbstractMethod(this, binding);
}
// abstract private methods cannot occur nor abstract static............
}
if (isMethodUseDeprecated(binding, scope, true))
scope.problemReporter().deprecatedMethod(binding, this );
// from 1.5 compliance on, array#clone() returns the array type (but binding still shows Object)
if (actualReceiverType.isArrayType() && this.binding.parameters == Binding.NO_PARAMETERS && scope.compilerOptions().complianceLevel >= ClassFileConstants.JDK1_5 && CharOperation.equals(this.binding.selector, CLONE)) {
this.resolvedType = actualReceiverType;
}
else {
TypeBinding returnType = this.binding.returnType;
if (returnType != null)
returnType = returnType.capture(scope, this.sourceEnd);
this.resolvedType = returnType;
}
return this.resolvedType;
|
| CloneAbstraction |
| Parameter Index | Clone Instance | Parameter Name | Value |
|---|---|---|---|
| None | |||