!7 p-exp { makeBotIfMain(); } answer { if (isIdentifier(s)) ret checkStandardFunctionForSafety(s); } sS checkStandardFunctionForSafety(S fname) { S listName = "JavaX Identifier Safety"; Set identifiers = setMinus(tok_allIdentifiers(textOfStandardFunction(fname)), fname); // TODO: should lock on map Set statuses = treeSet(); final SS map = mechHashMap(listName); bool changes = false; for (S id : identifiers) { S status = map.get(id); if (status == null) if (mapPut_trueIfChanged(map, id, status = "?")) set changes; statuses.add(status); } S status = or2(joinWithComma(statuses), "?"); if (mapPut_trueIfChanged(map, fname, status)) set changes; if (changes) uploadMechMap(listName, map); ret status; }