This is an archive of the discontinued LLVM Phabricator instance.

[indexer] The relationship between the declarations in template specializations that 'override' declarations in the base template should be recorded
ClosedPublic

Authored by arphaman on Apr 13 2017, 8:34 AM.

Details

Summary

This is useful for "go to definition" feature for an IDE like Xcode. Consider the following example:

template<typename T>
struct Traits { 
  using EncodedAs = void; // 1
}; 

template<>
struct Traits<char> {
  using EncodedAs = int; // 2
};

This change will allow the IDE to take the user to EncodedAs at 1 if the user wishes to perform "go to definition" on EncodedAs at 2.

Diff Detail

Repository
rL LLVM

Event Timeline

arphaman created this revision.Apr 13 2017, 8:34 AM
arphaman updated this revision to Diff 95940.Apr 20 2017, 5:41 AM

Updated the relationship to be 'overrideOf | specializationOf' to differentiate it from regular 'overrideOf'.

benlangmuir accepted this revision.Apr 20 2017, 8:45 AM
This revision is now accepted and ready to land.Apr 20 2017, 8:45 AM
This revision was automatically updated to reflect the committed changes.