private void UpdateStatistics()

in resharper/resharper-unity/src/Unity/Core/Psi/Modules/UnityExternalFilesModuleProcessor.cs [561:616]


        private void UpdateStatistics(ExternalFiles externalFiles)
        {
            var usageStatistics = myUsageStatistics.Value;
            foreach (var externalFile in externalFiles.AssetFiles)
            {
                UnityAssetInfoCollector.FileType? fileType = null;
                if (externalFile.Path.IsAsset())
                    fileType = UnityAssetInfoCollector.FileType.Asset;
                else if (externalFile.Path.IsPrefab())
                    fileType = UnityAssetInfoCollector.FileType.Prefab;
                else if (externalFile.Path.IsScene())
                    fileType = UnityAssetInfoCollector.FileType.Scene;
                else if (externalFile.Path.IsAnim())
                    fileType = UnityAssetInfoCollector.FileType.Anim;
                else if (externalFile.Path.IsController())
                    fileType = UnityAssetInfoCollector.FileType.Controller;

                if (fileType.HasValue)
                {
                    usageStatistics.AddStatistic(fileType.Value, externalFile.FileSystemData.FileLength,
                        externalFile.IsUserEditable);
                }
            }

            foreach (var externalFile in externalFiles.MetaFiles)
            {
                usageStatistics.AddStatistic(UnityAssetInfoCollector.FileType.Meta,
                    externalFile.FileSystemData.FileLength, externalFile.IsUserEditable);
            }

            foreach (var externalFile in externalFiles.IndexableFiles)
            {
                UnityAssetInfoCollector.FileType fileType;
                if (ReferenceEquals(externalFile.ProjectFileType, AsmDefProjectFileType.Instance))
                    fileType = UnityAssetInfoCollector.FileType.AsmDef;
                else if (ReferenceEquals(externalFile.ProjectFileType, AsmRefProjectFileType.Instance))
                    fileType = UnityAssetInfoCollector.FileType.AsmRef;
                else if (ReferenceEquals(externalFile.ProjectFileType, InputActionsProjectFileType.Instance))
                    fileType = UnityAssetInfoCollector.FileType.InputActions;
                else
                    continue;
                usageStatistics.AddStatistic(fileType, externalFile.FileSystemData.FileLength, externalFile.IsUserEditable);
            }

            foreach (var externalFile in externalFiles.KnownBinaryAssetFiles)
            {
                usageStatistics.AddStatistic(UnityAssetInfoCollector.FileType.KnownBinary,
                    externalFile.FileSystemData.FileLength, externalFile.IsUserEditable);
            }

            foreach (var externalFile in externalFiles.ExcludedByNameAssetFiles)
            {
                usageStatistics.AddStatistic(UnityAssetInfoCollector.FileType.ExcludedByName,
                    externalFile.FileSystemData.FileLength, externalFile.IsUserEditable);
            }
        }