diff --git a/lib/ClangImporter/ImportDecl.cpp b/lib/ClangImporter/ImportDecl.cpp index 0f0bb352fae07..c340db3564883 100644 --- a/lib/ClangImporter/ImportDecl.cpp +++ b/lib/ClangImporter/ImportDecl.cpp @@ -2191,11 +2191,7 @@ namespace { MD->overwriteAccess(AccessLevel::Private); } else if (cxxOperatorKind == clang::OverloadedOperatorKind::OO_PlusPlus) { - auto selfTy = result->getSelfInterfaceType(); - auto returnTy = - MD->getResultInterfaceType()->getAnyPointerElementType(); - if (cxxMethod->param_empty() && - selfTy->getCanonicalType() == returnTy->getCanonicalType()) { + if (cxxMethod->param_empty()) { // This is a pre-increment operator. We synthesize a // non-mutating function called `successor() -> Self`. FuncDecl *successorFunc = synthesizer.makeSuccessorFunc(MD); diff --git a/test/Interop/Cxx/operators/member-inline-typechecker.swift b/test/Interop/Cxx/operators/member-inline-typechecker.swift index 4d1399a82ebc0..fc92b2e0392e5 100644 --- a/test/Interop/Cxx/operators/member-inline-typechecker.swift +++ b/test/Interop/Cxx/operators/member-inline-typechecker.swift @@ -43,6 +43,3 @@ let diffTypesResultDoubleByVal: Double = diffTypesArrayByVal[0.5] let postIncrement = HasPostIncrementOperator() postIncrement.successor() // expected-error {{value of type 'HasPostIncrementOperator' has no member 'successor'}} - -let anotherReturnType = HasPreIncrementOperatorWithAnotherReturnType() -anotherReturnType.successor() // expected-error {{value of type 'HasPreIncrementOperatorWithAnotherReturnType' has no member 'successor'}}