public override IList <IAttributeInstance> GetAttributeInstances(IClrTypeName clrName)
        {
            if (AttributeClassNames.IsEmpty())
            {
                return(EmptyList <IAttributeInstance> .Instance);
            }

            if (!(GetDeclaration()?.GetFSharpSymbol() is FSharpEntity entity))
            {
                return(EmptyList <IAttributeInstance> .Instance);
            }

            var psiModule   = GetPsiModule();
            var entityAttrs = entity.Attributes;

            if (entityAttrs.Count == 0)
            {
                return(EmptyList <IAttributeInstance> .Instance);
            }

            var result = new FrugalLocalList <IAttributeInstance>();

            foreach (var fcsAttribute in entityAttrs)
            {
                if (new ClrTypeName(fcsAttribute.AttributeType.QualifiedBaseName).Equals(clrName))
                {
                    result.Add(new FSharpAttributeInstance(fcsAttribute, psiModule));
                }
            }

            return(result.ResultingList());
        }
    private IList<IDeclaration> GetPartialDeclarations([CanBeNull] IPsiSourceFile sourceFile)
    {
      var containingType = GetContainingType();
      if (containingType == null)
        return EmptyList<IDeclaration>.InstanceList;

      var declaration = GetDeclaration();
      if (declaration == null)
        return EmptyList<IDeclaration>.InstanceList;

      var list = new FrugalLocalList<IDeclaration>();
      var declarations =
        sourceFile != null
          ? containingType.GetDeclarationsIn(sourceFile)
          : containingType.GetDeclarations();

      foreach (var partDeclaration in declarations)
      {
        if (!(partDeclaration is IFSharpTypeElementDeclaration typeDeclaration))
          continue;

        foreach (var member in typeDeclaration.MemberDeclarations)
          if (member.DeclaredName == declaration.DeclaredName && Equals(this, member.DeclaredElement))
            list.Add(member);
      }

      return list.ResultingList();
    }