Example #1
0
 def test_identity_function(self):
     m = cpp_ast.Module('test')
     name_def_x = cpp_ast.NameDef(m, self.fake_span, 'x')
     name_ref_x = cpp_ast.NameRef(m, self.fake_span, 'x', name_def_x)
     type_u32 = cpp_ast.BuiltinTypeAnnotation(m, self.fake_span,
                                              cpp_ast.BuiltinType.U32)
     param_x = cpp_ast.Param(m, name_def_x, type_u32)
     name_def_f = cpp_ast.NameDef(m, self.fake_span, 'f')
     params = (param_x, )
     f = cpp_ast.Function(m,
                          self.fake_span,
                          name_def_f, (),
                          params,
                          type_u32,
                          name_ref_x,
                          public=False)
     self.assertEqual(str(f), 'fn f(x: u32) -> u32 {\n  x\n}')
Example #2
0
 def _generate_param(self) -> ast.Param:
     identifier = self.gensym()
     type_ = self._generate_bits_type()
     name_def = ast.NameDef(self.m, self.fake_span, identifier)
     return ast.Param(self.m, name_def, type_)