def test_same_eq_argument_types_list(self): a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'), constraint=ast.EqualExpr(ast.ListExpr([]), ast.ListExpr([]), 3)), '') convention_set = self.wrap_convention_in_set(a) error_log = checker.TypeChecker.check(convention_set) assert not error_log.contain_errors()
def test_valid_list_argument_types(self): a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'), constraint=ast.InExpr(ast.StringExpr('t'), ast.ListExpr([ast.StringExpr('p')]))), '') convention_set = self.wrap_convention_in_set(a) error_log = checker.TypeChecker.check(convention_set) assert not error_log.contain_errors()
def visitList_(self, ctx): result = [] for child in ctx.children: if type(child) is Parser.cocoParser.List_elementContext: element = self.visitList_element(child) result.append(element) return ast.ListExpr(result)
def test_valid_contains_all_argument_types(self): a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'), constraint=ast.ContainsAllExpr( ast.VariableExpr.DEFAULT, ast.ListExpr([ast.Node(ast.NodeTypeDescriptor(type_='a'))]))), '') convention_set = self.wrap_convention_in_set(a) error_log = checker.TypeChecker.check(convention_set) assert not error_log.contain_errors()
def test_list_with_diff_elements(self): a = ast.ForbidConvention(ast.Node(descriptor=ast.NodeTypeDescriptor(type_='property'), constraint=ast.EqualExpr(ast.ListExpr([ast.IntegerExpr(1), ast.StringExpr('')]), ast.IntegerExpr(2))), '') convention_set = self.wrap_convention_in_set(a) error_log = checker.TypeChecker.check(convention_set) assert error_log.contain_errors() assert len(error_log.get_errors()) == 1