[ASTImporter][NFC] Update ASTImporter internals docs

llvm-svn: 373895
This commit is contained in:
Gabor Marton 2019-10-07 11:15:18 +00:00
parent 579882ae44
commit 8f7fbed85e

View File

@ -1519,11 +1519,11 @@ statements are true:
- A and X are nodes from the same ASTContext.
- B and Y are nodes from the same ASTContext.
- A and B may or may not be from the same ASTContext.
- if A == X (pointer equivalency) then (there is a cycle during the traverse)
- if A == X and B == Y (pointer equivalency) then (there is a cycle during the
traverse)
- A and B are structurally equivalent if and only if
- B and Y are part of the same redeclaration chain,
- All dependent nodes on the path from <A,B> to <X,Y> are structurally
equivalent.
@ -1563,15 +1563,6 @@ the whole redeclaration chain of the function. The most recent version of the
declarations - regardless if they are definitions or prototypes - in the order
as they appear in the "from" context.
.. Structural eq requires proper redecl chains
Another reason why we must maintain and import redeclaration chains properly is
that the :ref:`Structural Equivalency <structural-eq>` check would report false
positive in-equivalencies otherwise. We must not allow having two (or more)
independent redeclaration chains of structurally equivalent declarations.
Structural equivalency identifies the chains with the canonical declaration,
that becomes different for independent chains.
.. One definition
If we have an existing definition in the "to" context, then we cannot import