mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 22:06:06 +00:00
[ASTImporter][NFC] Update ASTImporter internals docs
llvm-svn: 373895
This commit is contained in:
parent
579882ae44
commit
8f7fbed85e
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user