public static boolean isSyntheticInit(JCTree stat) {
        if (stat.getTag() == JCTree.EXEC) {
            JCExpressionStatement exec = (JCExpressionStatement)stat;
            if (exec.expr.getTag() == JCTree.ASSIGN) {
                JCAssign assign = (JCAssign)exec.expr;
                if (assign.lhs.getTag() == JCTree.SELECT) {
                    JCFieldAccess select = (JCFieldAccess)assign.lhs;
                    if (select.sym != null &&
                        (select.sym.flags() & SYNTHETIC) != 0) {
                        Name selected = name(select.selected);
                        if (selected != null && selected == selected.table._this)
                            return true;
                    }
                }
            }
        }
        return false;
    }