File tree Expand file tree Collapse file tree 3 files changed +53
-0
lines changed Expand file tree Collapse file tree 3 files changed +53
-0
lines changed Original file line number Diff line number Diff line change @@ -102,6 +102,24 @@ public void TestUncompilableCode()
102102#pragma warning restore 0219
103103 }
104104
105+ private class OverriddenInManaged : Baz
106+ {
107+ public override int Type => 10 ;
108+ }
109+
110+ [ Test ]
111+ public void TestDer ( )
112+ {
113+ using ( var der = new OverriddenInManaged ( ) )
114+ {
115+ using ( var hasDer = new HasOverriddenInManaged ( ) )
116+ {
117+ hasDer . SetOverriddenInManaged ( der ) ;
118+ Assert . That ( hasDer . CallOverriddenInManaged ( ) , Is . EqualTo ( 10 ) ) ;
119+ }
120+ }
121+ }
122+
105123 [ Test ]
106124 public void TestReturnCharPointer ( )
107125 {
Original file line number Diff line number Diff line change @@ -329,6 +329,11 @@ void Baz::setMethod(ProtectedNestedEnum value)
329329{
330330}
331331
332+ int Baz::type () const
333+ {
334+ return -1 ;
335+ }
336+
332337AbstractProprietor::~AbstractProprietor ()
333338{
334339}
@@ -865,6 +870,24 @@ AbstractWithProperty::~AbstractWithProperty()
865870{
866871}
867872
873+ HasOverriddenInManaged::HasOverriddenInManaged ()
874+ {
875+ }
876+
877+ HasOverriddenInManaged::~HasOverriddenInManaged ()
878+ {
879+ }
880+
881+ void HasOverriddenInManaged::setOverriddenInManaged (Baz* value)
882+ {
883+ overriddenInManaged = value;
884+ }
885+
886+ int HasOverriddenInManaged::callOverriddenInManaged ()
887+ {
888+ return overriddenInManaged->type ();
889+ }
890+
868891IgnoredType PropertyWithIgnoredType::ignoredType ()
869892{
870893 return _ignoredType;
Original file line number Diff line number Diff line change @@ -161,6 +161,7 @@ class DLL_API Baz : public Foo, public Bar
161161 int takesQux (const Qux& qux);
162162 Qux returnQux ();
163163 void setMethod (ProtectedNestedEnum value);
164+ int type () const override ;
164165
165166 typedef bool (*FunctionTypedef)(const void *);
166167 FunctionTypedef functionTypedef;
@@ -537,6 +538,17 @@ class DLL_API IgnoredTypeInheritingNonIgnoredWithNoEmptyCtor : public P
537538{
538539};
539540
541+ class DLL_API HasOverriddenInManaged
542+ {
543+ public:
544+ HasOverriddenInManaged ();
545+ ~HasOverriddenInManaged ();
546+ void setOverriddenInManaged (Baz *value);
547+ int callOverriddenInManaged ();
548+ private:
549+ Baz* overriddenInManaged = 0 ;
550+ };
551+
540552class DLL_API PropertyWithIgnoredType
541553{
542554public:
You can’t perform that action at this time.
0 commit comments