/trunk/Examples/test-suite/evil_diamond_prop.i

# · Swig · 40 lines · 32 code · 8 blank · 0 comment · 0 complexity · 75648f56e215e12734af9fa6d8e13e46 MD5 · raw file

  1. %module(ruby_minherit="1") evil_diamond_prop
  2. %warnfilter(SWIGWARN_RUBY_WRONG_NAME) foo; // Ruby, wrong class name
  3. %warnfilter(SWIGWARN_RUBY_WRONG_NAME) bar; // Ruby, wrong class name
  4. %warnfilter(SWIGWARN_RUBY_WRONG_NAME) baz; // Ruby, wrong class name
  5. %warnfilter(SWIGWARN_RUBY_WRONG_NAME,
  6. SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
  7. SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
  8. SWIGWARN_D_MULTIPLE_INHERITANCE,
  9. SWIGWARN_PHP_MULTIPLE_INHERITANCE) spam; // Ruby, wrong class name - C# & Java, PHP multiple inheritance
  10. %inline %{
  11. class foo {
  12. public:
  13. int _foo;
  14. foo() : _foo(1) {}
  15. };
  16. class bar : public foo {
  17. public:
  18. int _bar;
  19. bar() : _bar(2) {}
  20. };
  21. class baz : public foo {
  22. public:
  23. int _baz;
  24. baz() : _baz(3) {}
  25. };
  26. class spam : public bar, public baz {
  27. public:
  28. int _spam;
  29. spam() : _spam(4) {}
  30. };
  31. foo *test(foo *f) { return f; }
  32. %}