<div dir="ltr">Hi all,<div><br></div><div>I have the following code:</div><div>```</div><div><div>namespace a {                </div><div>class A {};                  </div><div>namespace b { class B { friend class A; };  }  // b                          </div><div>} // a                            </div></div><div>```</div><div>I expect that the friend "class A" refers to CXXRecordDecl "class <b>a::A</b>". However, it refers to an implicit CXXRecordDecl "class <b>a::b::A</b>" instead. Is this expected?</div><div><br></div><div>* Node dump of the ElaboratedType "class A" in the friend declaration:<br></div><div><div>```</div><div>ElaboratedType 0x7fbf27d39570 'class A' sugar</div><div>`-RecordType 0x7fbf27d39540 'class a::b::A'</div><div>  `-CXXRecord 0x7fbf27d394a8 'A'</div></div><div>```</div><div><br></div><div>* AST dump:</div><div>```</div><div>....</div><div><div>`-NamespaceDecl 0x7f1f79f4f050 </home/ioeric/llvm-build/test.cc:1:1, line:6:1> line:1:11 a</div><div>  |-CXXRecordDecl 0x7f1f79f4f0b8 <line:2:1, col:10> col:7 <b>class A</b> definition</div><div>  | `-CXXRecordDecl 0x7f1f79f4f1d0 <col:1, col:7> col:7 implicit class A</div><div>  `-NamespaceDecl 0x7f1f79f4f288 <line:3:1, line:5:1> line:3:11 b</div><div>    `-CXXRecordDecl 0x7f1f79f4f2f0 <line:4:1, col:27> col:7 class B definition</div><div>      |-CXXRecordDecl 0x7f1f79f4f410 <col:1, col:7> col:7 implicit class B</div><div>      `-FriendDecl 0x7f1f79f4f5c0 <col:11, col:24> col:18<b> 'class A':'class a::b::A'</b></div></div><div>```</div><div><br></div><div>Thanks,</div><div>Eric</div></div>