Lines 905-913
Link Here
|
905 |
if (elaboratedSpecifier.isFriend()) { |
905 |
if (elaboratedSpecifier.isFriend()) { |
906 |
pdomName.setIsFriendSpecifier(true); |
906 |
pdomName.setIsFriendSpecifier(true); |
907 |
PDOMName enclClassName= (PDOMName) pdomName.getEnclosingDefinition(); |
907 |
PDOMName enclClassName= (PDOMName) pdomName.getEnclosingDefinition(); |
908 |
PDOMBinding enclClassBinding= enclClassName.getBinding(); |
908 |
if (enclClassName != null) |
909 |
if (enclClassBinding instanceof PDOMCPPClassType) { |
909 |
{ |
910 |
((PDOMCPPClassType)enclClassBinding).addFriend(new PDOMCPPFriend(this, pdomName)); |
910 |
PDOMBinding enclClassBinding= enclClassName.getBinding(); |
|
|
911 |
if (enclClassBinding instanceof PDOMCPPClassType) { |
912 |
((PDOMCPPClassType)enclClassBinding).addFriend(new PDOMCPPFriend(this, pdomName)); |
913 |
} |
911 |
} |
914 |
} |
912 |
} |
915 |
} |
913 |
} else if (parentNode instanceof ICPPASTFunctionDeclarator) { |
916 |
} else if (parentNode instanceof ICPPASTFunctionDeclarator) { |
Lines 917-925
Link Here
|
917 |
if (((ICPPASTDeclSpecifier)grandparentNode.getDeclSpecifier()).isFriend()) { |
920 |
if (((ICPPASTDeclSpecifier)grandparentNode.getDeclSpecifier()).isFriend()) { |
918 |
pdomName.setIsFriendSpecifier(true); |
921 |
pdomName.setIsFriendSpecifier(true); |
919 |
PDOMName enclClassName= (PDOMName) pdomName.getEnclosingDefinition(); |
922 |
PDOMName enclClassName= (PDOMName) pdomName.getEnclosingDefinition(); |
920 |
PDOMBinding enclClassBinding= enclClassName.getBinding(); |
923 |
if (enclClassName != null) |
921 |
if (enclClassBinding instanceof PDOMCPPClassType) { |
924 |
{ |
922 |
((PDOMCPPClassType)enclClassBinding).addFriend(new PDOMCPPFriend(this, pdomName)); |
925 |
PDOMBinding enclClassBinding= enclClassName.getBinding(); |
|
|
926 |
if (enclClassBinding instanceof PDOMCPPClassType) { |
927 |
((PDOMCPPClassType)enclClassBinding).addFriend(new PDOMCPPFriend(this, pdomName)); |
928 |
} |
923 |
} |
929 |
} |
924 |
} |
930 |
} |
925 |
} |
931 |
} |
Lines 965-974
Link Here
|
965 |
} |
971 |
} |
966 |
if (pdomName.isFriendSpecifier()) { |
972 |
if (pdomName.isFriendSpecifier()) { |
967 |
PDOMName enclClassName= (PDOMName) pdomName.getEnclosingDefinition(); |
973 |
PDOMName enclClassName= (PDOMName) pdomName.getEnclosingDefinition(); |
968 |
PDOMBinding enclClassBinding= enclClassName.getBinding(); |
974 |
if (enclClassName != null) |
969 |
if (enclClassBinding instanceof PDOMCPPClassType) { |
975 |
{ |
970 |
PDOMCPPClassType ownerClass = (PDOMCPPClassType)enclClassBinding; |
976 |
PDOMBinding enclClassBinding= enclClassName.getBinding(); |
971 |
ownerClass.removeFriend(pdomName); |
977 |
if (enclClassBinding instanceof PDOMCPPClassType) { |
|
|
978 |
PDOMCPPClassType ownerClass = (PDOMCPPClassType)enclClassBinding; |
979 |
ownerClass.removeFriend(pdomName); |
980 |
} |
972 |
} |
981 |
} |
973 |
} |
982 |
} |
974 |
} |
983 |
} |