/** * Return the narrowest of two types/type lists. */ public synchronized List<PType> narrowest(List<PType> t1, List<PType> t2) { return allSubTypes(t1, t2, false) == Result.Yes ? t1 : t2; }
List<PType> supl = ((AProductType) sup).getTypes(); return allSubTypes(subl, supl, invignore); } else if (sub instanceof SMapType) AFunctionType supf = (AFunctionType) sup; return allSubTypes(subf.getParameters(), supf.getParameters(), invignore) == Result.Yes && searchSubType(subf.getResult(), supf.getResult(), invignore) == Result.Yes ? Result.Yes : Result.No; AOperationType supo = (AOperationType) sup; return allSubTypes(subo.getParameters(), supo.getParameters(), invignore) == Result.Yes && searchSubType(subo.getResult(), supo.getResult(), invignore) == Result.Yes ? Result.Yes : Result.No;