[CXX Interoperability] Stop re-importing FuncDecl when FuncDecl is imported before parent record #59607
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We saw a test case failing when 2 records contain the same operator. This occurs because when the first operator is called, we import the record associated with that operator but we also import the function for the 2nd record. So if we have 2 records
Foo
andBar
and both implementoperator-
, after callingFoo
'soperator-
we would have importedFoo
Foo.operator-
Bar.operator-
Then when we call
Bar.operator-
we try importingBar
record & then import the operator again. So that ends up withFoo
Foo.operator-
Bar.operator-
Bar
Bar.operator-
which causes there to be 2 imports of the same operator (
FuncDecl
)This patch checks to see if the
FuncDecl
was previously imported and returns early if it has beenThanks @egorzhdan and @zoecarver for helping me debug this one :p