提交 f495bdaa 编写于 作者: J jrose

8154475: Clean up lookup visibility

Reviewed-by: vlivanov, mhaupt, ahgross
上级 3ec33f0b
...@@ -158,7 +158,7 @@ class DirectMethodHandle extends MethodHandle { ...@@ -158,7 +158,7 @@ class DirectMethodHandle extends MethodHandle {
private static LambdaForm preparedLambdaForm(MemberName m) { private static LambdaForm preparedLambdaForm(MemberName m) {
assert(m.isInvocable()) : m; // call preparedFieldLambdaForm instead assert(m.isInvocable()) : m; // call preparedFieldLambdaForm instead
MethodType mtype = m.getInvocationType().basicType(); MethodType mtype = m.getInvocationType().basicType();
assert(!m.isMethodHandleInvoke() || "invokeBasic".equals(m.getName())) : m; assert(!m.isMethodHandleInvoke()) : m;
int which; int which;
switch (m.getReferenceKind()) { switch (m.getReferenceKind()) {
case REF_invokeVirtual: which = LF_INVVIRTUAL; break; case REF_invokeVirtual: which = LF_INVVIRTUAL; break;
......
...@@ -1034,7 +1034,7 @@ class LambdaForm { ...@@ -1034,7 +1034,7 @@ class LambdaForm {
this.member = member; this.member = member;
this.resolvedHandle = resolvedHandle; this.resolvedHandle = resolvedHandle;
// The following assert is almost always correct, but will fail for corner cases, such as PrivateInvokeTest. // The following assert is almost always correct, but will fail for corner cases, such as PrivateInvokeTest.
//assert(!isInvokeBasic()); //assert(!isInvokeBasic(member));
} }
NamedFunction(MethodType basicInvokerType) { NamedFunction(MethodType basicInvokerType) {
assert(basicInvokerType == basicInvokerType.basicType()) : basicInvokerType; assert(basicInvokerType == basicInvokerType.basicType()) : basicInvokerType;
...@@ -1045,13 +1045,13 @@ class LambdaForm { ...@@ -1045,13 +1045,13 @@ class LambdaForm {
// necessary to pass BigArityTest // necessary to pass BigArityTest
this.member = Invokers.invokeBasicMethod(basicInvokerType); this.member = Invokers.invokeBasicMethod(basicInvokerType);
} }
assert(isInvokeBasic()); assert(isInvokeBasic(member));
} }
private boolean isInvokeBasic() { private static boolean isInvokeBasic(MemberName member) {
return member != null && return member != null &&
member.isMethodHandleInvoke() && member.getDeclaringClass() == MethodHandle.class &&
"invokeBasic".equals(member.getName()); "invokeBasic".equals(member.getName());
} }
// The next 3 constructors are used to break circular dependencies on MH.invokeStatic, etc. // The next 3 constructors are used to break circular dependencies on MH.invokeStatic, etc.
...@@ -1191,7 +1191,7 @@ class LambdaForm { ...@@ -1191,7 +1191,7 @@ class LambdaForm {
assert(mh.type().basicType() == MethodType.genericMethodType(arity).changeReturnType(rtype)) assert(mh.type().basicType() == MethodType.genericMethodType(arity).changeReturnType(rtype))
: Arrays.asList(mh, rtype, arity); : Arrays.asList(mh, rtype, arity);
MemberName member = mh.internalMemberName(); MemberName member = mh.internalMemberName();
if (member != null && member.getName().equals("invokeBasic") && member.isMethodHandleInvoke()) { if (isInvokeBasic(member)) {
assert(arity > 0); assert(arity > 0);
assert(a[0] instanceof MethodHandle); assert(a[0] instanceof MethodHandle);
MethodHandle mh2 = (MethodHandle) a[0]; MethodHandle mh2 = (MethodHandle) a[0];
......
...@@ -341,7 +341,6 @@ import java.util.Objects; ...@@ -341,7 +341,6 @@ import java.util.Objects;
} }
/** Utility method to query if this member is a method handle invocation (invoke or invokeExact). /** 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() { public boolean isMethodHandleInvoke() {
final int bits = MH_INVOKE_MODS &~ Modifier.PUBLIC; final int bits = MH_INVOKE_MODS &~ Modifier.PUBLIC;
...@@ -356,7 +355,6 @@ import java.util.Objects; ...@@ -356,7 +355,6 @@ import java.util.Objects;
switch (name) { switch (name) {
case "invoke": case "invoke":
case "invokeExact": case "invokeExact":
case "invokeBasic": // internal sig-poly method
return true; return true;
default: default:
return false; return false;
......
...@@ -864,8 +864,6 @@ assertEquals("", (String) MH_newString.invokeExact()); ...@@ -864,8 +864,6 @@ assertEquals("", (String) MH_newString.invokeExact());
return invoker(type); return invoker(type);
if ("invokeExact".equals(name)) if ("invokeExact".equals(name))
return exactInvoker(type); return exactInvoker(type);
if ("invokeBasic".equals(name))
return basicInvoker(type);
assert(!MemberName.isMethodHandleInvokeName(name)); assert(!MemberName.isMethodHandleInvokeName(name));
return null; return null;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册