summaryrefslogtreecommitdiff
path: root/Examples/test-suite/evil_diamond_prop.i
blob: 2dac6eab7631e1792ab40e2d37c5de544fcf1ba4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
%module(ruby_minherit="1") evil_diamond_prop

%warnfilter(SWIGWARN_RUBY_WRONG_NAME) foo;		// Ruby, wrong class name
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) bar;		// Ruby, wrong class name
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) baz;		// Ruby, wrong class name
%warnfilter(SWIGWARN_RUBY_WRONG_NAME,
	    SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
	    SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
	    SWIGWARN_D_MULTIPLE_INHERITANCE,
	    SWIGWARN_PHP_MULTIPLE_INHERITANCE) spam;	// Ruby, wrong class name - C# & Java, PHP multiple inheritance

%inline %{

class foo { 
  public:
    int _foo;
    foo() : _foo(1) {}
};

class bar : public foo {
  public:
    int _bar;
    bar() : _bar(2) {}
};

class baz : public foo {
  public:
    int _baz;
    baz() : _baz(3) {}
};

class spam : public bar, public baz {
  public:
    int _spam;
    spam() : _spam(4) {}
};

foo *test(foo *f) { return f; }
%}