Type SubscriptOperation::type() const { Type lt = leftType(); if (Subscriptable* s = lt->tryType<Subscriptable>()) return s->subscriptsTo(rightType()); return Type(); }
void writeMatch(refMatch match) { refBuffer buffer = makeBuffer(stdout, 0); writeFormat(buffer, "[Match"); writeBlank(buffer); writingObject(buffer, leftLayer(match)); writeBlank(buffer); writingObject(buffer, leftType(match)); writeBlank(buffer); writingObject(buffer, rightLayer(match)); writeBlank(buffer); writingObject(buffer, rightType(match)); writeChar(buffer, ']'); writeBuffer(buffer); free(buffer); }