@AstVisitor(nodes = AstNodes.ROOT) public void checkSameAsConstructor(Block root, MethodDefinition md, TypeDefinition td, MethodContext mc) { if (md.getName().equals(td.getSimpleName()) && md.getReturnType().isVoid() && !md.isDeprecated()) { int priority = 0; if (root.getBody().isEmpty()) { priority += 20; } else if (root.getBody().size() == 1 && Nodes.isOp(root.getBody().get(0), AstCode.AThrow)) { priority += 40; } if (td.getDeclaredMethods().stream().anyMatch( m -> m.isConstructor() && m.getErasedSignature().equals(md.getErasedSignature()))) { priority += 10; } mc.report("BadNameOfMethodSameAsConstructor", priority); } }
@ClassVisitor public void visitClass(TypeDefinition td, ClassContext cc) { if (td.isAnonymous() || td.isSynthetic()) return; String name = td.getSimpleName(); if (Character.isLetter(name.charAt(0)) && !Character.isUpperCase(name.charAt(0)) && name.indexOf('_') == -1) { cc.report("BadNameOfClass", td.isPublic() ? 0 : 15); } if (name.endsWith("Exception") && !Types.isInstance(td, "java/lang/Throwable")) { cc.report("BadNameOfClassException", td.isPublic() ? 0 : 15); } TypeReference superClass = td.getBaseType(); if (superClass != null && superClass.getSimpleName().equals(name)) { cc.report("BadNameOfClassSameAsSuperclass", td.isPublic() ? 0 : 15, Roles.SUPERCLASS.create(superClass)); } for (TypeReference iface : td.getExplicitInterfaces()) { if (iface.getSimpleName().equals(name)) { cc.report("BadNameOfClassSameAsInterface", td.isPublic() ? 0 : 15, Roles.INTERFACE.create(iface)); } } }
if (td.isAnonymous() && !td.isSynthetic() && !td.getSimpleName().contains("$_invokeMethod_") && Types .hasCompleteHierarchy(td)) { for(MethodDefinition md : td.getDeclaredMethods()) {
if (StringUtilities.equals(type.getSimpleName(), name)) { results = new LinkedHashSet<>(); results.add(type); if (StringUtilities.equals(declaredType.getSimpleName(), name)) { if (results == null) { results = new LinkedHashSet<>();
if (StringUtilities.equals(type.getSimpleName(), name)) { results = new LinkedHashSet<>(); results.add(type); if (StringUtilities.equals(declaredType.getSimpleName(), name)) { if (results == null) { results = new LinkedHashSet<>();
if (StringUtilities.equals(type.getSimpleName(), name)) { results = new LinkedHashSet<>(); results.add(type); if (StringUtilities.equals(declaredType.getSimpleName(), name)) { if (results == null) { results = new LinkedHashSet<>();
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()); } }
continue; if (md.getName().startsWith("jj") && td.getSimpleName().endsWith("TokenManager")) return false; int priority = 0;
&& td.getSimpleName().equals("ParseException")) return; mc.report("StringConcatInLoop", priority, store);
if (md.getName().equals("adjustBeginLineColumn") && td.getSimpleName().equals( "SimpleCharStream") || md.getName().startsWith("jj") && td.getSimpleName().endsWith( "TokenManager")) { return; if (var.getName().equals("offset") && md.getName().startsWith("zz") && (td.getSimpleName() .endsWith("Lexer") || td.getSimpleName().contains("Tokenizer"))) { return;
outerType = new SimpleType(resolvedOuterType.getSimpleName());
outerType = new SimpleType(resolvedOuterType.getSimpleName());
outerType = new SimpleType(resolvedOuterType.getSimpleName());
node.setTarget(firstArgument); final SimpleType type = new SimpleType(resolvedCreatedType.getSimpleName());
node.setTarget(firstArgument); final SimpleType type = new SimpleType(resolvedCreatedType.getSimpleName());
node.setTarget(firstArgument); final SimpleType type = new SimpleType(resolvedCreatedType.getSimpleName());
); astType.setName(type.getSimpleName()); astType.putUserData(Keys.TYPE_DEFINITION, type); astType.putUserData(Keys.TYPE_REFERENCE, type);
); astType.setName(type.getSimpleName()); astType.putUserData(Keys.TYPE_DEFINITION, type); astType.putUserData(Keys.TYPE_REFERENCE, type);
); astType.setName(type.getSimpleName()); astType.putUserData(Keys.TYPE_DEFINITION, type); astType.putUserData(Keys.TYPE_REFERENCE, type);
if(fd.getName().equals("errorCode") && td.getSimpleName().equals("TokenMgrError")) return; int priority = 0;