Skip to content

Commit 9f56551

Browse files
egorzhdanhyp
authored andcommitted
[cxx-interop] Add a test for static operator()
Extracted from #76235. Co-authored-by: Alex Lorenz <[email protected]>
1 parent e292f2f commit 9f56551

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

test/Interop/Cxx/operators/Inputs/member-inline.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,15 @@ class HasStaticOperatorCallBase {
482482
static int operator()(int x) { return x + 42; }
483483
};
484484

485+
class HasStaticOperatorCallBaseNonTrivial: public NonTrivial {
486+
public:
487+
HasStaticOperatorCallBaseNonTrivial() {}
488+
HasStaticOperatorCallBaseNonTrivial(const HasStaticOperatorCallBaseNonTrivial &self) : NonTrivial(self) {}
489+
HasStaticOperatorCallBaseNonTrivial(HasStaticOperatorCallBaseNonTrivial &&self) : NonTrivial(self) {}
490+
491+
static int operator()(const NonTrivial &arg) { return arg.f + 42; }
492+
};
493+
485494
class HasStaticOperatorCallDerived : public HasStaticOperatorCallBase {};
486495

487496
class HasStaticOperatorCallWithConstOperator {

test/Interop/Cxx/operators/member-inline.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,13 @@ OperatorsTestSuite.test("HasStaticOperatorCallBase.call") {
443443
expectEqual(43, res)
444444
}
445445

446+
OperatorsTestSuite.test("HasStaticOperatorCallBase2.call") {
447+
let m = NonTrivial()
448+
let h = HasStaticOperatorCallBaseNonTrivial()
449+
let res = h(m)
450+
expectEqual(48, res)
451+
}
452+
446453
OperatorsTestSuite.test("HasStaticOperatorCallDerived.call") {
447454
let h = HasStaticOperatorCallDerived()
448455
let res = h(0)

0 commit comments

Comments
 (0)