local void scobindTestCheckUnique(Stab stab, Symbol sym) { SymeList sl = stabGetMeanings(stab, ablogFalse(), sym); testIntEqual("unique", 1, listLength(Syme)(sl)); testPointerEqual("name", sym, symeId(car(sl))); }
local void testSymeSExpr() { String aSimpleDomain = "+++Comment\nDom: Category == with {f: () -> () ++ f\n}"; StringList lines = listList(String)(1, aSimpleDomain); AbSynList code = listCons(AbSyn)(stdtypes(), abqParseLines(lines)); AbSyn absyn = abNewSequenceL(sposNone, code); initFile(); Stab stab = stabFile(); abPutUse(absyn, AB_Use_NoValue); scopeBind(stab, absyn); typeInfer(stab, absyn); testTrue("Declare is sefo", abIsSefo(absyn)); testIntEqual("Error Count", 0, comsgErrorCount()); SymeList symes = stabGetMeanings(stab, ablogFalse(), symInternConst("Dom")); testIntEqual("unique meaning", 1, listLength(Syme)(symes)); Syme syme = car(symes); SExpr sx = symeSExprAList(syme); finiFile(); }
TfCond tfCondNew() { TfCond tfcond = (TfCond) stoAlloc(OB_Other, sizeof(*tfcond)); tfcond->conditions = listNil(TfCondElt); tfcond->containsEmpty = false; tfcond->known = ablogFalse(); return tfcond; }
TfCondElt tfCondEltNew(Stab stab, AbSynList absynList) { return tfCondEltNewFull(stab, absynList, ablogFalse()); }