src/java.base/share/classes/java/lang/invoke/MethodType.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/java.base/share/classes/java/lang/invoke/MethodType.java Fri Sep 5 17:12:41 2014
--- new/src/java.base/share/classes/java/lang/invoke/MethodType.java Fri Sep 5 17:12:41 2014
*** 771,790 ****
--- 771,801 ----
sj.add(ptypes[i].getSimpleName());
}
return sj.toString();
}
+ /** True if the old return type can always be viewed (w/o casting) under new return type,
+ * and the new parameters can be viewed (w/o casting) under the old parameter types.
+ */
/*non-public*/
! boolean isViewableAs(MethodType newType, boolean keepInterfaces) {
! if (!VerifyType.isNullConversion(returnType(), newType.returnType(), true))
! if (!VerifyType.isNullConversion(returnType(), newType.returnType(), keepInterfaces))
return false;
+ return parametersAreViewableAs(newType, keepInterfaces);
+ }
+ /** True if the new parameters can be viewed (w/o casting) under the old parameter types. */
+ /*non-public*/
+ boolean parametersAreViewableAs(MethodType newType, boolean keepInterfaces) {
+ if (form == newType.form && form.erasedType == this)
+ return true; // my reference parameters are all Object
+ if (ptypes == newType.ptypes)
+ return true;
int argc = parameterCount();
if (argc != newType.parameterCount())
return false;
for (int i = 0; i < argc; i++) {
! if (!VerifyType.isNullConversion(newType.parameterType(i), parameterType(i), true))
! if (!VerifyType.isNullConversion(newType.parameterType(i), parameterType(i), keepInterfaces))
return false;
}
return true;
}
/*non-public*/
src/java.base/share/classes/java/lang/invoke/MethodType.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File