@Override public PType caseAObjectPattern(AObjectPattern pattern) throws AnalysisException { return pattern.getType(); }
if (!question.ctxt.assistantFactory.getTypeComparator().isSubType(objval.getType(), pattern.getType()))
@Override public void caseAObjectPattern(AObjectPattern pattern, NewQuestion question) throws AnalysisException { if (pattern.getResolved()) { return; } else { pattern.setResolved(true); } try { af.createPPatternListAssistant().typeResolvePairs(pattern.getFields(), question.rootVisitor, question.question); pattern.setType(af.createPTypeAssistant().typeResolve(pattern.getType(), null, question.rootVisitor, question.question)); } catch (TypeCheckException e) { af.createPPatternAssistant().unResolve(pattern); throw e; } }
AClassType pattype = typeAssistant.getClassType(pattern.getType(), null); AClassType exptype = typeAssistant.getClassType(question.ptype, null);