this.owner = owner; this.selector = selector; this.optimize &= (unit.global.target == Global.TARGET_JVM);
    protected void initialize( Tree selector, Symbol owner, Type resultType) {        this.mk = new PatternNodeCreator( unit, infer, owner );        this.cf = new CodeFactory( unit, infer, selector.pos );        this.root = mk.ConstrPat(selector.pos, selector.type.widen());        this.root.and = mk.Header(selector.pos,                                  selector.type.widen(),                                  gen.Ident(selector.pos, root.symbol())                                  .setType(selector.type.widen()));        this.resultVar = new TermSymbol(selector.pos,                                        fresh.newName(RESULT_N),                                        owner,                                        Modifiers.MUTABLE);        this.resultVar.setType(resultType);	    }