@Override public MethodDefinition resolve() { return _baseMethod.resolve(); }
@Override public MethodDefinition resolve() { return _baseMethod.resolve(); }
@Override public MethodDefinition resolve() { return _genericDefinition.resolve(); }
@Override public MethodDefinition resolve() { return _genericDefinition.resolve(); }
@Override public MethodDefinition resolve() { return _genericDefinition.resolve(); }
@Override public MethodDefinition resolve() { return _baseMethod.resolve(); }
public static MethodDefinition getLambdaMethod(Lambda l) { Object arg = l.getCallSite().getBootstrapArguments().get(1); if (arg instanceof MethodHandle) { MethodDefinition lm = ((MethodHandle) arg).getMethod().resolve(); if (lm != null) return lm; } throw new InternalError("Unable to determine original method for lambda " + l); }
public static MethodReference erase(final MethodReference method) { if (method != null) { MethodReference baseMethod = method; final MethodDefinition resolvedMethod = baseMethod.resolve(); if (resolvedMethod != null) { baseMethod = resolvedMethod; } else if (baseMethod instanceof IGenericInstance) { baseMethod = (MethodReference) ((IGenericInstance) baseMethod).getGenericDefinition(); } if (baseMethod != null) { return new RawMethod(baseMethod); } } return method; }
public static Set<MethodDefinition> findSuperMethods(MethodReference mr) { MethodDefinition md = mr.resolve(); if(md == null) return null; TypeDefinition td = md.getDeclaringType(); Set<MethodDefinition> set = new HashSet<>(); collectSuperMethods(td, new MemberInfo(resolveToBridge(md)), set); return set; }
public static MethodDefinition findSuperMethod(MethodReference mr) { MethodDefinition md = mr.resolve(); if(md == null) return null; TypeDefinition td = md.getDeclaringType(); return findSuperMethod(td, new MemberInfo(resolveToBridge(md))); }
private static IMetadataResolver getResolver(final MethodBody body) { final MethodReference method = body.getMethod(); if (method != null) { final MethodDefinition resolvedMethod = method.resolve(); if (resolvedMethod != null) { final TypeDefinition declaringType = resolvedMethod.getDeclaringType(); if (declaringType != null) { return declaringType.getResolver(); } } } return MetadataSystem.instance(); }
private static IMetadataResolver getResolver(final MethodBody body) { final MethodReference method = body.getMethod(); if (method != null) { final MethodDefinition resolvedMethod = method.resolve(); if (resolvedMethod != null) { final TypeDefinition declaringType = resolvedMethod.getDeclaringType(); if (declaringType != null) { return declaringType.getResolver(); } } } return MetadataSystem.instance(); }
private static IMetadataResolver getResolver(final MethodBody body) { final MethodReference method = body.getMethod(); if (method != null) { final MethodDefinition resolvedMethod = method.resolve(); if (resolvedMethod != null) { final TypeDefinition declaringType = resolvedMethod.getDeclaringType(); if (declaringType != null) { return declaringType.getResolver(); } } } return MetadataSystem.instance(); }
private static IMetadataResolver getResolver(final MethodBody body) { final MethodReference method = body.getMethod(); if (method != null) { final MethodDefinition resolvedMethod = method.resolve(); if (resolvedMethod != null) { final TypeDefinition declaringType = resolvedMethod.getDeclaringType(); if (declaringType != null) { return declaringType.getResolver(); } } } return MetadataSystem.instance(); }
@Override public Void visitMethodGroupExpression(final MethodGroupExpression node, final Void data) { final MemberReference reference = node.getUserData(Keys.MEMBER_REFERENCE); if (reference instanceof MethodReference) { final MethodReference method = (MethodReference) reference; final MethodDefinition resolvedMethod = method.resolve(); final DynamicCallSite callSite = node.getUserData(Keys.DYNAMIC_CALL_SITE); if (resolvedMethod != null && resolvedMethod.isSynthetic() && callSite != null) { inlineLambda(node, resolvedMethod); return null; } } return super.visitMethodGroupExpression(node, data); }
@Override public Void visitMethodGroupExpression(final MethodGroupExpression node, final Void data) { final MemberReference reference = node.getUserData(Keys.MEMBER_REFERENCE); if (reference instanceof MethodReference) { final MethodReference method = (MethodReference) reference; final MethodDefinition resolvedMethod = method.resolve(); final DynamicCallSite callSite = node.getUserData(Keys.DYNAMIC_CALL_SITE); if (resolvedMethod != null && resolvedMethod.isSynthetic() && callSite != null) { inlineLambda(node, resolvedMethod); return null; } } return super.visitMethodGroupExpression(node, data); }
@Override public Void visitMethodGroupExpression(final MethodGroupExpression node, final Void data) { final MemberReference reference = node.getUserData(Keys.MEMBER_REFERENCE); if (reference instanceof MethodReference) { final MethodReference method = (MethodReference) reference; final MethodDefinition resolvedMethod = method.resolve(); final DynamicCallSite callSite = node.getUserData(Keys.DYNAMIC_CALL_SITE); if (resolvedMethod != null && resolvedMethod.isSynthetic() && callSite != null) { inlineLambda(node, resolvedMethod); return null; } } return super.visitMethodGroupExpression(node, data); }
private static boolean isSwitchMapMethod(final MethodReference method) { if (method == null) { return false; } final MethodDefinition definition = method instanceof MethodDefinition ? (MethodDefinition) method : method.resolve(); return definition != null && definition.isSynthetic() && definition.isStatic() && definition.isPackagePrivate() && StringUtilities.startsWith(definition.getName(), "$SWITCH_TABLE$") && MetadataResolver.areEquivalent(BuiltinTypes.Integer.makeArrayType(), definition.getReturnType()); }
private static boolean isSwitchMapMethod(final MethodReference method) { if (method == null) { return false; } final MethodDefinition definition = method instanceof MethodDefinition ? (MethodDefinition) method : method.resolve(); return definition != null && definition.isSynthetic() && definition.isStatic() && definition.isPackagePrivate() && StringUtilities.startsWith(definition.getName(), "$SWITCH_TABLE$") && MetadataResolver.areEquivalent(BuiltinTypes.Integer.makeArrayType(), definition.getReturnType()); }
private static boolean isSwitchMapMethod(final MethodReference method) { if (method == null) { return false; } final MethodDefinition definition = method instanceof MethodDefinition ? (MethodDefinition) method : method.resolve(); return definition != null && definition.isSynthetic() && definition.isStatic() && definition.isPackagePrivate() && StringUtilities.startsWith(definition.getName(), "$SWITCH_TABLE$") && MetadataResolver.areEquivalent(BuiltinTypes.Integer.makeArrayType(), definition.getReturnType()); }