%module typemap_self

// This typemap should be ignored for self?
%typemap(in) A* (A* ptr) {
  if (SWIG_ConvertPtr($input, (void**) &ptr, $1_descriptor, 0) != -1) {
    $1 = ptr;
  } else {
    $1 = new A();
  }
 }

// Simple but unsecure current fix
//%apply SWIGTYPE* {A* self}


%inline %{
  class A;
  
  int foo(A* self) 
  {
    return 0;
  }
  
  struct A
  {
    static int bar(int, A* self)
    {
      return 1;
    }
    
    int val;
    
    
    int foo(A* self, A* b) 
    {
      return 1;
    }
  };
  
  struct B
  {
    B(A*) 
    {
    }
  };
  
%}
