[RangeInfo] When reporting referenced decls, also report the types of these references.

This commit is contained in:
Xi Ge
2016-12-19 17:16:12 -08:00
parent 87a4b8a07e
commit ba930deff2
3 changed files with 81 additions and 20 deletions

View File

@@ -205,15 +205,23 @@ enum class RangeKind : int8_t{
MultiStatement,
};
struct ReferencedDecl {
ValueDecl *VD;
Type Ty;
ReferencedDecl(ValueDecl* VD, Type Ty) : VD(VD), Ty(Ty) {}
ReferencedDecl() : ReferencedDecl(nullptr, Type()) {}
bool operator==(const ReferencedDecl& other);
};
struct ResolvedRangeInfo {
RangeKind Kind;
Type Ty;
StringRef Content;
ArrayRef<ValueDecl*> DeclaredDecls;
ArrayRef<ValueDecl*> ReferencedDecls;
ArrayRef<ReferencedDecl> ReferencedDecls;
ResolvedRangeInfo(RangeKind Kind, Type Ty, StringRef Content,
ArrayRef<ValueDecl*> DeclaredDecls,
ArrayRef<ValueDecl*> ReferencedDecls): Kind(Kind),
ArrayRef<ReferencedDecl> ReferencedDecls): Kind(Kind),
Ty(Ty), Content(Content), DeclaredDecls(DeclaredDecls),
ReferencedDecls(ReferencedDecls) {}
ResolvedRangeInfo() :