protected override ICachedDeclaration2 FindDeclaration(IFile file, ICachedDeclaration2 candidateDeclaration)
 {
     if (Offset < TreeOffset.Zero)
     {
         return(null);
     }
     if (candidateDeclaration is T)
     {
         return(candidateDeclaration);
     }
     return(null);
 }
        protected override void AssignDeclaredElement(ICachedDeclaration2 declaration)
        {
            base.AssignDeclaredElement(declaration);

            var parameters = TypeElement?.TypeParameters;

            if (parameters == null || parameters.IsEmpty())
            {
                return;
            }

            var typeDeclaration           = (T)declaration;
            var typeParameterDeclarations = typeDeclaration.TypeParameters;
            var parametersCount           = Math.Min(parameters.Count, typeParameterDeclarations.Count);

            for (var i = 0; i < parametersCount; i++)
            {
                AssignToCachedDeclaration((ICachedDeclaration2)typeParameterDeclarations[i], parameters[i]);
            }
        }
示例#3
0
 protected override ICachedDeclaration2 FindDeclaration(IFile file, ICachedDeclaration2 candidateDeclaration)
 {
     return(null);
 }
示例#4
0
 protected override ICachedDeclaration2 FindDeclaration(IFile file, ICachedDeclaration2 candidateDeclaration) =>
 Offset >= TreeOffset.Zero && candidateDeclaration is T
 ? candidateDeclaration
 : null;