@Override protected StringBuilder appendName(final StringBuilder sb, final boolean fullName, final boolean dottedName) { if (fullName) { final TypeDefinition declaringType = getDeclaringType(); if (declaringType != null) { return declaringType.appendName(sb, true, false).append('.').append(getName()); } } return sb.append(_name); }
@Override protected StringBuilder appendName(final StringBuilder sb, final boolean fullName, final boolean dottedName) { if (fullName) { final TypeDefinition declaringType = getDeclaringType(); if (declaringType != null) { return declaringType.appendName(sb, true, false).append('.').append(getName()); } } return sb.append(_name); }
@Override protected StringBuilder appendName(final StringBuilder sb, final boolean fullName, final boolean dottedName) { if (fullName) { final TypeDefinition declaringType = getDeclaringType(); if (declaringType != null) { return declaringType.appendName(sb, true, false).append('.').append(getName()); } } return sb.append(_name); }
@Override public String toString() { return fd.getDeclaringType() + "." + fd.getName()+" : "+fd.getSignature(); } }
@Override public boolean equals(final Object obj) { if (obj instanceof FieldDefinition) { final FieldDefinition other = (FieldDefinition) obj; return StringUtilities.equals(getName(), other.getName()) && typeNamesMatch(getDeclaringType(), other.getDeclaringType()); } return false; }
@Override public boolean equals(final Object obj) { if (obj instanceof FieldDefinition) { final FieldDefinition other = (FieldDefinition) obj; return StringUtilities.equals(getName(), other.getName()) && typeNamesMatch(getDeclaringType(), other.getDeclaringType()); } return false; }
@Override public boolean equals(final Object obj) { if (obj instanceof FieldDefinition) { final FieldDefinition other = (FieldDefinition) obj; return StringUtilities.equals(getName(), other.getName()) && typeNamesMatch(getDeclaringType(), other.getDeclaringType()); } return false; }
public void decompileField(final FieldDefinition field, final ITextOutput output, final DecompilationOptions options) { writeCommentLine(output, typeToString(field.getDeclaringType(), true) + "." + field.getName()); }
public void decompileField(final FieldDefinition field, final ITextOutput output, final DecompilationOptions options) { writeCommentLine(output, typeToString(field.getDeclaringType(), true) + "." + field.getName()); }
public void decompileField(final FieldDefinition field, final ITextOutput output, final DecompilationOptions options) { writeCommentLine(output, typeToString(field.getDeclaringType(), true) + "." + field.getName()); }
public static AccessLevel of(FieldDefinition fd) { TypeDefinition td = fd.getDeclaringType(); return ofFlags(td.getFlags()).min(ofFlags(fd.getFlags())); } }
private static boolean isThisOrOuterThisReference(final Expression e) { if (e == null || e.isNull()) { return false; } if (e instanceof ThisReferenceExpression && ((ThisReferenceExpression) e).getTarget().isNull()) { return true; } if (e instanceof MemberReferenceExpression) { final MemberReference m = e.getUserData(Keys.MEMBER_REFERENCE); if (m instanceof FieldReference) { final FieldDefinition resolvedField = ((FieldReference) m).resolve(); if (resolvedField != null && resolvedField.isSynthetic() && resolvedField.getDeclaringType().isInnerClass() && resolvedField.getDeclaringType().getDeclaringType() != null && resolvedField.getDeclaringType().getDeclaringType().isEquivalentTo(resolvedField.getFieldType())) { return true; } } } return false; }
@AstVisitor(nodes=AstNodes.EXPRESSIONS) public void visitCode(Expression expr, NodeChain nc, MethodContext mc, MethodDefinition md, TypeDefinition td) { if(expr.getCode() == AstCode.PutField) { FieldDefinition fd = ((FieldReference) expr.getOperand()).resolve(); if (fd.getDeclaringType().isEquivalentTo(td) && !nc.isSynchronized() && !Flags.testAny(fd.getFlags(), Flags.VOLATILE) && reportedFields.add(fd)) { mc.report("MutableServletField", 0, expr); } } } }
private void checkSingleMethod(FieldContext fc, FieldDefinition fd, FieldRecord fieldRecord, int flags) { if (fullyAnalyzed && Flags.testAny(flags, FieldStats.READ) && !Flags.testAny(flags, FieldStats.READ_PACKAGE | FieldStats.READ_OUTSIDE | FieldStats.WRITE_PACKAGE | FieldStats.WRITE_OUTSIDE) && fieldRecord != null && fieldRecord.usedInSingleMethod && fieldRecord.firstWrite != null) { // javacc-generated if(fd.getName().startsWith("jj_") && fd.getDeclaringType().getSimpleName().endsWith("Parser") && fieldRecord.firstWrite.md.getName().equals("generateParseException")) return; int priority = AccessLevel.of(fd).select(10, 3, 1, 0); if(!fd.isStatic()) priority += 5; if(fieldRecord.firstWrite.md.isConstructor()) priority += 5; if(fd.getFieldType().isPrimitive()) priority += 3; fc.report("FieldUsedInSingleMethod", priority, fieldRecord.firstWrite.getAnnotations()); } }
final TypeReference valueType = field.getDeclaringType().getResolver().lookupType(typeDescriptor);
final TypeReference valueType = field.getDeclaringType().getResolver().lookupType(typeDescriptor);
final TypeReference valueType = field.getDeclaringType().getResolver().lookupType(typeDescriptor);
expr.getCode() == AstCode.GetField || expr.getCode() == AstCode.GetStatic) { FieldDefinition fd = ((FieldReference) expr.getOperand()).resolve(); if(fd != null && !fd.isSynthetic() && fd.getDeclaringType().isEquivalentTo(td)) { FieldRecord fieldRecord = fields.computeIfAbsent(fd.getName(), n -> new FieldRecord()); if(Nodes.isFieldRead(expr)) {
FieldDefinition fd = fr.resolve(); if (fd != null && fd.isEnumConstant()) { return new EnumConstant(fd.getDeclaringType().getInternalName(), fd.getName());
StringUtilities.equals(resolvedField.getDeclaringType().getInternalName(), _context.getCurrentType().getInternalName())) {