@Override public SSetType caseAUnionType(AUnionType type) throws AnalysisException { ILexLocation location = type.getLocation(); if (!type.getSetDone()) { type.setSetDone(true); // Mark early to avoid recursion. // type.setSetType(PTypeAssistantTC.getSet(AstFactory.newAUnknownType(location))); type.setSetType(af.createPTypeAssistant().getSet(AstFactory.newAUnknownType(location))); PTypeSet set = new PTypeSet(af); for (PType t : type.getTypes()) { if (af.createPTypeAssistant().isSet(t)) { // set.add(PTypeAssistantTC.getSet(t).getSetof()); set.add(t.apply(THIS).getSetof()); } } type.setSetType(set.isEmpty() ? null : AstFactory.newASetSetType(location, set.getType(location))); } return type.getSetType(); }
this.setSeqType(seqType_); this.setSetDone(setDone_); this.setSetType(setType_); this.setMapDone(mapDone_); this.setMapType(mapType_);