File tree Expand file tree Collapse file tree 3 files changed +26
-0
lines changed Expand file tree Collapse file tree 3 files changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -2234,6 +2234,9 @@ namespace {
22342234
22352235 // Make the actual member operator private.
22362236 MD->overwriteAccess (AccessLevel::Private);
2237+
2238+ // Make sure the synthesized decl can be found by lookupDirect.
2239+ result->addMemberToLookupTable (opFuncDecl);
22372240 }
22382241
22392242 if (cxxMethod->getDeclName ().isIdentifier ()) {
Original file line number Diff line number Diff line change @@ -38,4 +38,18 @@ struct ReturnsNonNullValue {
3838 }
3939};
4040
41+ struct HasOperatorExclaim {
42+ int value ;
43+
44+ HasOperatorExclaim operator !() const { return {- value }; }
45+ };
46+
47+ struct HasOperatorEqualEqual {
48+ int value ;
49+
50+ bool operator == (const HasOperatorEqualEqual & other ) const {
51+ return value == other .value ;
52+ }
53+ };
54+
4155#endif // TEST_INTEROP_CXX_CLASS_INPUTS_PROTOCOL_CONFORMANCE_H
Original file line number Diff line number Diff line change @@ -26,3 +26,12 @@ protocol HasReturnNonNull {
2626}
2727
2828extension ReturnsNonNullValue : HasReturnNonNull { }
29+
30+
31+ protocol Invertable {
32+ static prefix func !( obj: Self ) -> Self
33+ }
34+
35+ extension HasOperatorExclaim : Invertable { }
36+
37+ extension HasOperatorEqualEqual : Equatable { }
You can’t perform that action at this time.
0 commit comments