@MethodVisitor public boolean checkMethod(MethodDefinition md) { return (md.isPublic() || md.isProtected()) && !md.getParameters().isEmpty(); }
static boolean isClassMethodCandidate(final MethodDefinition m) { return m != null && m.isSynthetic() && m.isStatic() && m.isPackagePrivate() && m.getParameters().size() == 1 && CommonTypeReferences.Class.isEquivalentTo(m.getReturnType()) && CommonTypeReferences.String.isEquivalentTo(m.getParameters().get(0).getParameterType()); }
Frame(FrameContext fc, Frame closure) { this.sources = new IdentityHashMap<>(); this.fieldValues = fc.getInitialFields(); this.fc = fc; this.initial = new IdentityHashMap<>(); for(ParameterDefinition pd : fc.md.getParameters()) { putInitial(pd); } ParameterDefinition thisParam = fc.md.getBody().getThisParameter(); if(thisParam != null) { putInitial(thisParam); } if(closure != null) { initial.putAll(closure.initial); sources.putAll(closure.sources); } }
@MethodVisitor public boolean check(MethodDefinition md, TypeDefinition td) { if(md.isSynthetic()) return false; if(md.getName().equals("compare") && md.getParameters().size() == 2 && md.getReturnType().getSimpleType() == JvmType.Integer && Types.isInstance(td, "java/util/Comparator")) return true; if(md.getName().equals("compareTo") && md.getParameters().size() == 1 && md.getReturnType().getSimpleType() == JvmType.Integer && Types.isInstance(td, "java/lang/Comparable")) return true; return false; }
public boolean checkMethod(MethodDefinition md) { if(!md.getReturnType().isArray() && !TYPE_TO_WARNING.containsKey(md.getReturnType().getInternalName())) return false; if(md.getName().equals("getName") && md.getReturnType().getSignature().equals("[B") && md.getParameters().size() == 1 && Types.isInstance(md.getDeclaringType(), "java/sql/ResultSet")) return false; return true; }
public StringBuilder appendErasedDescription(final StringBuilder sb) { if (hasGenericParameters() && !isGenericDefinition()) { final MethodDefinition definition = resolve(); if (definition != null) { return definition.appendErasedDescription(sb); } } for (final javax.lang.model.element.Modifier modifier : Flags.asModifierSet(getModifiers() & ~Flags.ACC_VARARGS)) { sb.append(modifier.toString()); sb.append(' '); } final List<ParameterDefinition> parameterTypes = getParameters(); StringBuilder s = getReturnType().appendErasedDescription(sb); s.append(' '); s.append(getName()); s.append('('); for (int i = 0, n = parameterTypes.size(); i < n; ++i) { if (i != 0) { s.append(", "); } s = parameterTypes.get(i).getParameterType().appendErasedDescription(s); } s.append(')'); return s; }
public StringBuilder appendErasedDescription(final StringBuilder sb) { if (hasGenericParameters() && !isGenericDefinition()) { final MethodDefinition definition = resolve(); if (definition != null) { return definition.appendErasedDescription(sb); } } for (final javax.lang.model.element.Modifier modifier : Flags.asModifierSet(getModifiers() & ~Flags.ACC_VARARGS)) { sb.append(modifier.toString()); sb.append(' '); } final List<ParameterDefinition> parameterTypes = getParameters(); StringBuilder s = getReturnType().appendErasedDescription(sb); s.append(' '); s.append(getName()); s.append('('); for (int i = 0, n = parameterTypes.size(); i < n; ++i) { if (i != 0) { s.append(", "); } s = parameterTypes.get(i).getParameterType().appendErasedDescription(s); } s.append(')'); return s; }
public StringBuilder appendErasedDescription(final StringBuilder sb) { if (hasGenericParameters() && !isGenericDefinition()) { final MethodDefinition definition = resolve(); if (definition != null) { return definition.appendErasedDescription(sb); } } for (final javax.lang.model.element.Modifier modifier : Flags.asModifierSet(getModifiers() & ~Flags.ACC_VARARGS)) { sb.append(modifier.toString()); sb.append(' '); } final List<ParameterDefinition> parameterTypes = getParameters(); StringBuilder s = getReturnType().appendErasedDescription(sb); s.append(' '); s.append(getName()); s.append('('); for (int i = 0, n = parameterTypes.size(); i < n; ++i) { if (i != 0) { s.append(", "); } s = parameterTypes.get(i).getParameterType().appendErasedDescription(s); } s.append(')'); return s; }
if (method.getParameters().isEmpty() && MetadataResolver.areEquivalent(currentType.makeArrayType(), method.getReturnType())) { method.getParameters().size() == 1) { final ParameterDefinition pd = method.getParameters().get(0);
public static MethodDefinition resolveToBridge(MethodDefinition md) { if (md.isBridgeMethod()) { return md; } for (MethodDefinition candidate : md.getDeclaringType().getDeclaredMethods()) { if (candidate.getName().equals(md.getName()) && candidate.isBridgeMethod()) { List<ParameterDefinition> params = candidate.getParameters(); if (params.size() == md.getParameters().size()) { MethodBody body = candidate.getBody(); if (body != null) { for (Instruction instr : body.getInstructions()) { if (instr.getOperandCount() == 1) { Object operand = instr.getOperand(0); if (operand instanceof MethodReference) { MethodReference mr = (MethodReference) operand; if (mr.getName().equals(md.getName()) && mr.getErasedSignature().equals(md .getErasedSignature()) && mr.getDeclaringType().isEquivalentTo(md .getDeclaringType())) { return candidate; } } } } } } } } return md; }
final boolean isVarArgs = resolved != null && resolved.isVarArgs(); final TypeReference declaringType = (resolved != null ? resolved : method).getDeclaringType(); final int parameterCount = (resolved != null ? resolved.getParameters() : method.getParameters()).size();
final boolean isVarArgs = resolved != null && resolved.isVarArgs(); final TypeReference declaringType = (resolved != null ? resolved : method).getDeclaringType(); final int parameterCount = (resolved != null ? resolved.getParameters() : method.getParameters()).size();
pred = and(pred, w -> !mi.equals(w.getAnnotation(Roles.METHOD)) || methodPred.test(w)); for(ParameterDefinition pd : md.getParameters()) { suppressed = getSuppressed(pd.getAnnotations()); if(!suppressed.isEmpty()) {
@AstVisitor(nodes = AstNodes.EXPRESSIONS) public void visit(Expression expr, NodeChain nc, MethodContext mc, MethodDefinition md, Mutability m) { FieldDefinition fd = getField(expr, md); if (fd == null) return; Expression value = Exprs.getChild(expr, expr.getArguments().size() - 1); ParameterDefinition pd = getParameter(value); if (pd == null) return; if (!Types.isMutable(fd.getFieldType()) && !m.isKnownMutable(fd.getFieldType())) return; int priority = 0; if (md.isProtected() || fd.isProtected()) priority += 10; if (md.isVarArgs() && pd.getPosition() == md.getParameters().size() - 1) priority += 10; if (nc.getParent() == null && nc.getRoot().getBody().size() == 1) priority += 15; else if (!fd.isFinal()) priority += 3; String type = fd.isStatic() ? "ExposeMutableStaticFieldViaParameter" : "ExposeMutableFieldViaParameter"; mc.report(type, priority, expr, Roles.FIELD_TYPE.create(fd.getFieldType())); }
final List<ParameterDefinition> pDefinitions = constructor.getParameters(); final AstNodeCollection<ParameterDeclaration> pDeclarations = node.getParameters();
final List<ParameterDefinition> parameters = method.getParameters();
private ConstructorDeclaration createConstructor(final MethodDefinition method) { final ConstructorDeclaration astMethod = new ConstructorDeclaration(); EntityDeclaration.setModifiers( astMethod, Flags.asModifierSet(scrubAccessModifiers(method.getFlags() & Flags.ConstructorFlags)) ); astMethod.setName(method.getDeclaringType().getName()); astMethod.getParameters().addAll(createParameters(method.getParameters())); astMethod.setBody(createMethodBody(method, astMethod.getParameters())); astMethod.putUserData(Keys.METHOD_DEFINITION, method); astMethod.putUserData(Keys.MEMBER_REFERENCE, method); for (final TypeReference thrownType : method.getThrownTypes()) { astMethod.addChild(convertType(thrownType), Roles.THROWN_TYPE); } return astMethod; }
final List<ParameterDefinition> parameters = method.getParameters();
private ConstructorDeclaration createConstructor(final MethodDefinition method) { final ConstructorDeclaration astMethod = new ConstructorDeclaration(); EntityDeclaration.setModifiers( astMethod, Flags.asModifierSet(scrubAccessModifiers(method.getFlags() & Flags.ConstructorFlags)) ); astMethod.setName(method.getDeclaringType().getName()); astMethod.getParameters().addAll(createParameters(method.getParameters())); astMethod.setBody(createMethodBody(method, astMethod.getParameters())); astMethod.putUserData(Keys.METHOD_DEFINITION, method); astMethod.putUserData(Keys.MEMBER_REFERENCE, method); for (final TypeReference thrownType : method.getThrownTypes()) { astMethod.addChild(convertType(thrownType), Roles.THROWN_TYPE); } return astMethod; }
private ConstructorDeclaration createConstructor(final MethodDefinition method) { final ConstructorDeclaration astMethod = new ConstructorDeclaration(); EntityDeclaration.setModifiers( astMethod, Flags.asModifierSet(scrubAccessModifiers(method.getFlags() & Flags.ConstructorFlags)) ); astMethod.setName(method.getDeclaringType().getName()); astMethod.getParameters().addAll(createParameters(method.getParameters())); astMethod.getTypeParameters().addAll(createTypeParameters(method.getGenericParameters())); astMethod.setBody(createMethodBody(method, astMethod.getParameters())); astMethod.putUserData(Keys.METHOD_DEFINITION, method); astMethod.putUserData(Keys.MEMBER_REFERENCE, method); for (final CustomAnnotation annotation : method.getAnnotations()) { astMethod.getAnnotations().add(createAnnotation(annotation)); } for (final TypeReference thrownType : method.getThrownTypes()) { astMethod.addChild(convertType(thrownType), Roles.THROWN_TYPE); } return astMethod; }