@Override public boolean matches(ClassTree classTree, VisitorState state) { return classTree.getModifiers().getFlags().contains(ABSTRACT) || (ASTHelpers.getSymbol(classTree).flags() & Flags.INTERFACE) != 0; } };
@Override public boolean matches(ClassTree classTree, VisitorState state) { return classTree.getModifiers().getFlags().contains(ABSTRACT) || (ASTHelpers.getSymbol(classTree).flags() & Flags.INTERFACE) != 0; } };
public void markAbstractIfNeeded(Types types) { if (types.enter.getEnv(this) != null && (flags() & ENUM) != 0 && types.supertype(type).tsym == types.syms.enumSym && (flags() & (FINAL | ABSTRACT)) == 0) { if (types.firstUnimplementedAbstract(this) != null) // add the ABSTRACT flag to an enum flags_field |= ABSTRACT; } } }
boolean checkForSerial(ClassSymbol c) { if ((c.flags() & ABSTRACT) == 0) { return true; } else { return c.members().anyMatch(anyNonAbstractOrDefaultMethod); } }
public IntersectionClassType(List<Type> bounds, ClassSymbol csym, boolean allInterfaces) { super(Type.noType, List.<Type>nil(), csym); this.allInterfaces = allInterfaces; Assert.check((csym.flags() & COMPOUND) != 0); supertype_field = bounds.head; interfaces_field = bounds.tail; Assert.check(supertype_field.tsym.completer != null || !supertype_field.isInterface(), supertype_field); }
Type attribIdentAsEnumType(Env<AttrContext> env, JCIdent id) { Assert.check((env.enclClass.sym.flags() & ENUM) != 0); id.type = env.info.scope.owner.type; id.sym = env.info.scope.owner; return id.type; }
/** Check that an auxiliary class is not accessed from any other file than its own. */ void checkForBadAuxiliaryClassAccess(DiagnosticPosition pos, Env<AttrContext> env, ClassSymbol c) { if (lint.isEnabled(Lint.LintCategory.AUXILIARYCLASS) && (c.flags() & AUXILIARY) != 0 && rs.isAccessible(env, c) && !fileManager.isSameFile(c.sourcefile, env.toplevel.sourcefile)) { log.warning(pos, "auxiliary.class.accessed.from.outside.of.its.source.file", c, c.sourcefile); } }
public ElementKind getKind() { long flags = flags(); if ((flags & ANNOTATION) != 0) return ElementKind.ANNOTATION_TYPE; else if ((flags & INTERFACE) != 0) return ElementKind.INTERFACE; else if ((flags & ENUM) != 0) return ElementKind.ENUM; else return ElementKind.CLASS; }
public ElementKind getKind() { long flags = flags(); if ((flags & ANNOTATION) != 0) return ElementKind.ANNOTATION_TYPE; else if ((flags & INTERFACE) != 0) return ElementKind.INTERFACE; else if ((flags & ENUM) != 0) return ElementKind.ENUM; else return ElementKind.CLASS; }
public ElementKind getKind() { long flags = flags(); if ((flags & ANNOTATION) != 0) return ElementKind.ANNOTATION_TYPE; else if ((flags & INTERFACE) != 0) return ElementKind.INTERFACE; else if ((flags & ENUM) != 0) return ElementKind.ENUM; else return ElementKind.CLASS; }
public boolean needsHeader(ClassSymbol c) { if (c.isLocal() || (c.flags() & Flags.SYNTHETIC) != 0) return false; if (checkAll) return needsHeader(c.outermostClass(), true); else return needsHeader(c, false); }
/** Check that an auxiliary class is not accessed from any other file than its own. */ void checkForBadAuxiliaryClassAccess(DiagnosticPosition pos, Env<AttrContext> env, ClassSymbol c) { if (lint.isEnabled(Lint.LintCategory.AUXILIARYCLASS) && (c.flags() & AUXILIARY) != 0 && rs.isAccessible(env, c) && !fileManager.isSameFile(c.sourcefile, env.toplevel.sourcefile)) { log.warning(pos, "auxiliary.class.accessed.from.outside.of.its.source.file", c, c.sourcefile); } }
Type attribIdentAsEnumType(Env<AttrContext> env, JCIdent id) { Assert.check((env.enclClass.sym.flags() & ENUM) != 0); id.type = env.info.scope.owner.type; id.sym = env.info.scope.owner; return id.type; }
public ElementKind getKind() { long flags = flags(); if ((flags & ANNOTATION) != 0) return ElementKind.ANNOTATION_TYPE; else if ((flags & INTERFACE) != 0) return ElementKind.INTERFACE; else if ((flags & ENUM) != 0) return ElementKind.ENUM; else return ElementKind.CLASS; }
boolean checkForSerial(ClassSymbol c) { if ((c.flags() & ABSTRACT) == 0) { return true; } else { return c.members().anyMatch(anyNonAbstractOrDefaultMethod); } }
public boolean needsHeader(ClassSymbol c) { if (c.isLocal() || (c.flags() & Flags.SYNTHETIC) != 0) return false; if (checkAll) return needsHeader(c.outermostClass(), true); else return needsHeader(c, false); }
@Override public Set<Modifier> getModifiers() { long flags = flags(); return Flags.asModifierSet(flags & ~DEFAULT); }
public IntersectionClassType(List<Type> bounds, ClassSymbol csym, boolean allInterfaces) { super(Type.noType, List.<Type>nil(), csym); this.allInterfaces = allInterfaces; Assert.check((csym.flags() & COMPOUND) != 0); supertype_field = bounds.head; interfaces_field = bounds.tail; Assert.check(supertype_field.tsym.completer != null || !supertype_field.isInterface(), supertype_field); }
@Override public ClassType inline(Inliner inliner) throws CouldNotResolveImportException { ClassSymbol classSymbol = inliner.resolveClass(fullyQualifiedClass()); boolean isNonStaticInnerClass = classSymbol.owner instanceof ClassSymbol && (classSymbol.flags() & STATIC) == 0; Type owner = isNonStaticInnerClass ? classSymbol.owner.type : Type.noType; return new ClassType(owner, inliner.<Type>inlineList(typeArguments()), classSymbol); } }
@Override public ClassType inline(Inliner inliner) throws CouldNotResolveImportException { ClassSymbol classSymbol = inliner.resolveClass(fullyQualifiedClass()); boolean isNonStaticInnerClass = classSymbol.owner instanceof ClassSymbol && (classSymbol.flags() & STATIC) == 0; Type owner = isNonStaticInnerClass ? classSymbol.owner.type : Type.noType; return new ClassType(owner, inliner.<Type>inlineList(typeArguments()), classSymbol); } }