@SuppressWarnings("fallthrough") void letInit(JCTree tree) { tree = TreeInfo.skipParens(tree); if (tree.hasTag(IDENT) || tree.hasTag(SELECT)) { Symbol sym = TreeInfo.symbol(tree); if (currentTree != null && sym.kind == VAR && sym.owner.kind == MTH && ((VarSymbol)sym).pos < currentTree.getStartPosition()) { switch (currentTree.getTag()) { case CLASSDEF: if (!allowEffectivelyFinalInInnerClasses) { reportInnerClsNeedsFinalError(tree, sym); break; } case LAMBDA: reportEffectivelyFinalError(tree, sym); } } } }
@SuppressWarnings("fallthrough") void letInit(JCTree tree) { tree = TreeInfo.skipParens(tree); if (tree.hasTag(IDENT) || tree.hasTag(SELECT)) { Symbol sym = TreeInfo.symbol(tree); if (currentTree != null && sym.kind == VAR && sym.owner.kind == MTH && ((VarSymbol)sym).pos < currentTree.getStartPosition()) { switch (currentTree.getTag()) { case CLASSDEF: if (!allowEffectivelyFinalInInnerClasses) { reportInnerClsNeedsFinalError(tree, sym); break; } case LAMBDA: reportEffectivelyFinalError(tree, sym); } } } }
@SuppressWarnings("fallthrough") void checkEffectivelyFinal(DiagnosticPosition pos, VarSymbol sym) { if (currentTree != null && sym.owner.kind == MTH && sym.pos < currentTree.getStartPosition()) { switch (currentTree.getTag()) { case CLASSDEF: if (!allowEffectivelyFinalInInnerClasses) { if ((sym.flags() & FINAL) == 0) { reportInnerClsNeedsFinalError(pos, sym); } break; } case LAMBDA: if ((sym.flags() & (EFFECTIVELY_FINAL | FINAL)) == 0) { reportEffectivelyFinalError(pos, sym); } } } }
@SuppressWarnings("fallthrough") void checkEffectivelyFinal(DiagnosticPosition pos, VarSymbol sym) { if (currentTree != null && sym.owner.kind == MTH && sym.pos < currentTree.getStartPosition()) { switch (currentTree.getTag()) { case CLASSDEF: if (!allowEffectivelyFinalInInnerClasses) { if ((sym.flags() & FINAL) == 0) { reportInnerClsNeedsFinalError(pos, sym); } break; } case LAMBDA: if ((sym.flags() & (EFFECTIVELY_FINAL | FINAL)) == 0) { reportEffectivelyFinalError(pos, sym); } } } }