if (symbol.owner().isStaticOwner()) return true; if (symbol.isInitializer()) return true;
if (!symbol.isLabel() && symbol.isInitializer()) return true; if (!symbol.isLabel() && symbol.isStatic()) return true;
    private boolean function(Tree tree) {        Symbol symbol = tree.symbol();        assert symbol != null && symbol.isTerm(): show(tree);        assert symbol.isMethod(): show(tree);        switch (tree) {        case Select(Tree qualifier, _):            return selection(tree);        case Ident(_):            if (symbol.owner().isStaticOwner()) return true;            if (symbol.isInitializer()) return true;            assert labels.contains(symbol): show(tree);            assert symbol.owner() == currentMember(): show(tree);            return true;        default:            throw Debug.abort("illegal case", tree);        }    }