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()
102
102
#pragma warning restore 0219
103
103
}
104
104
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
+
105
123
[ Test ]
106
124
public void TestReturnCharPointer ( )
107
125
{
Original file line number Diff line number Diff line change @@ -329,6 +329,11 @@ void Baz::setMethod(ProtectedNestedEnum value)
329
329
{
330
330
}
331
331
332
+ int Baz::type () const
333
+ {
334
+ return -1 ;
335
+ }
336
+
332
337
AbstractProprietor::~AbstractProprietor ()
333
338
{
334
339
}
@@ -865,6 +870,24 @@ AbstractWithProperty::~AbstractWithProperty()
865
870
{
866
871
}
867
872
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
+
868
891
IgnoredType PropertyWithIgnoredType::ignoredType ()
869
892
{
870
893
return _ignoredType;
Original file line number Diff line number Diff line change @@ -161,6 +161,7 @@ class DLL_API Baz : public Foo, public Bar
161
161
int takesQux (const Qux& qux);
162
162
Qux returnQux ();
163
163
void setMethod (ProtectedNestedEnum value);
164
+ int type () const override ;
164
165
165
166
typedef bool (*FunctionTypedef)(const void *);
166
167
FunctionTypedef functionTypedef;
@@ -537,6 +538,17 @@ class DLL_API IgnoredTypeInheritingNonIgnoredWithNoEmptyCtor : public P
537
538
{
538
539
};
539
540
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
+
540
552
class DLL_API PropertyWithIgnoredType
541
553
{
542
554
public:
You can’t perform that action at this time.
0 commit comments