def rtype(self, crumbs=None): if crumbs is None: crumbs = [] if self.rtype in crumbs: return asttype.Same crumbs.append(self.rtype) calc_types = [calc.rtype(crumbs) for calc in self.calcs] return asttype.combine(calc_types)
def rtype(self, crumbs=None): if crumbs is None: crumbs = [] if self.rtype in crumbs: return asttype.Same crumbs.append(self.rtype) types = [self.left.rtype(crumbs), self.right.rtype(crumbs)] types = asttype.combine(types) if types != asttype.Number: raise Exception("One side of ArithPrefixOp is not a number") return types
def rtype(self, crumbs=None): if crumbs is None: crumbs = [] if self.rtype in crumbs: return asttype.Same crumbs.append(self.rtype) types = [self.conditionals.rtype(crumbs), self.expr_else.rtype(crumbs)] return asttype.combine(types)
def rtype(self, crumbs=None): types = [child.rtype(crumbs) for child in self.children] return asttype.combine(types)