private static void initUnionType(AUnionType result) { result.setSetDone(false); result.setSeqDone(false); result.setMapDone(false); result.setRecDone(false); result.setNumDone(false); result.setFuncDone(false); result.setOpDone(false); result.setClassDone(false); result.setProdCard(-1); result.setExpanded(false); }
/** * Creates a new tree field only constructor {@code AUnionType TAG=union} node with the given nodes as children. * @deprecated This method should not be used, use AstFactory instead. * The basic child nodes are removed from their previous parents. * @param infinite_ the {@link Boolean} node for the {@code infinite} child of this {@link AUnionType} node * @param expanded_ the {@link Boolean} node for the {@code expanded} child of this {@link AUnionType} node */ public AUnionType(ILexLocation location_, Boolean resolved_, Boolean infinite_, Boolean expanded_) { super(location_,resolved_,null); this.setInfinite(infinite_); this.setExpanded(expanded_); this.setSeqDone(false); this.setSetDone(false); this.setMapDone(false); this.setProdCard(0); this.setFuncDone(false); this.setOpDone(false); this.setNumDone(false); this.setRecDone(false); this.setClassDone(false); }
@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.setSeqDone(seqDone_); this.setSeqType(seqType_); this.setSetDone(setDone_); this.setSetType(setType_); this.setMapDone(mapDone_);