8154475: Clean up lookup visibility
Reviewed-by: vlivanov, mhaupt, ahgross
This commit is contained in:
parent
b8549d7f13
commit
a4ff82596a
@ -155,7 +155,7 @@ class DirectMethodHandle extends MethodHandle {
|
||||
private static LambdaForm preparedLambdaForm(MemberName m) {
|
||||
assert(m.isInvocable()) : m; // call preparedFieldLambdaForm instead
|
||||
MethodType mtype = m.getInvocationType().basicType();
|
||||
assert(!m.isMethodHandleInvoke() || "invokeBasic".equals(m.getName())) : m;
|
||||
assert(!m.isMethodHandleInvoke()) : m;
|
||||
int which;
|
||||
switch (m.getReferenceKind()) {
|
||||
case REF_invokeVirtual: which = LF_INVVIRTUAL; break;
|
||||
|
@ -1049,7 +1049,7 @@ class LambdaForm {
|
||||
this.member = member;
|
||||
this.resolvedHandle = resolvedHandle;
|
||||
// The following assert is almost always correct, but will fail for corner cases, such as PrivateInvokeTest.
|
||||
//assert(!isInvokeBasic());
|
||||
//assert(!isInvokeBasic(member));
|
||||
}
|
||||
NamedFunction(MethodType basicInvokerType) {
|
||||
assert(basicInvokerType == basicInvokerType.basicType()) : basicInvokerType;
|
||||
@ -1060,13 +1060,13 @@ class LambdaForm {
|
||||
// necessary to pass BigArityTest
|
||||
this.member = Invokers.invokeBasicMethod(basicInvokerType);
|
||||
}
|
||||
assert(isInvokeBasic());
|
||||
assert(isInvokeBasic(member));
|
||||
}
|
||||
|
||||
private boolean isInvokeBasic() {
|
||||
private static boolean isInvokeBasic(MemberName member) {
|
||||
return member != null &&
|
||||
member.isMethodHandleInvoke() &&
|
||||
"invokeBasic".equals(member.getName());
|
||||
member.getDeclaringClass() == MethodHandle.class &&
|
||||
"invokeBasic".equals(member.getName());
|
||||
}
|
||||
|
||||
// The next 2 constructors are used to break circular dependencies on MH.invokeStatic, etc.
|
||||
@ -1204,7 +1204,7 @@ class LambdaForm {
|
||||
assert(mh.type().basicType() == MethodType.genericMethodType(arity).changeReturnType(rtype))
|
||||
: Arrays.asList(mh, rtype, arity);
|
||||
MemberName member = mh.internalMemberName();
|
||||
if (member != null && member.getName().equals("invokeBasic") && member.isMethodHandleInvoke()) {
|
||||
if (isInvokeBasic(member)) {
|
||||
assert(arity > 0);
|
||||
assert(a[0] instanceof MethodHandle);
|
||||
MethodHandle mh2 = (MethodHandle) a[0];
|
||||
|
@ -346,7 +346,6 @@ import static java.lang.invoke.MethodHandleStatics.newInternalError;
|
||||
}
|
||||
|
||||
/** Utility method to query if this member is a method handle invocation (invoke or invokeExact).
|
||||
* Also returns true for the non-public MH.invokeBasic.
|
||||
*/
|
||||
public boolean isMethodHandleInvoke() {
|
||||
final int bits = MH_INVOKE_MODS &~ Modifier.PUBLIC;
|
||||
@ -361,7 +360,6 @@ import static java.lang.invoke.MethodHandleStatics.newInternalError;
|
||||
switch (name) {
|
||||
case "invoke":
|
||||
case "invokeExact":
|
||||
case "invokeBasic": // internal sig-poly method
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
|
@ -951,8 +951,6 @@ assertEquals("", (String) MH_newString.invokeExact());
|
||||
return invoker(type);
|
||||
if ("invokeExact".equals(name))
|
||||
return exactInvoker(type);
|
||||
if ("invokeBasic".equals(name))
|
||||
return basicInvoker(type);
|
||||
assert(!MemberName.isMethodHandleInvokeName(name));
|
||||
return null;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user