public IPsiSourceFile GetOrCreateSourceFile([NotNull] FileSystemPath path)
        {
            Assertion.Assert(path.IsAbsolute, "path.IsAbsolute");

            lock (_sourceFiles) {
                IPsiSourceFile sourceFile;
                if (!_sourceFiles.TryGetValue(path, out sourceFile) || sourceFile == null)
                {
                    sourceFile = new T4OutsideSolutionSourceFile(
                        _documentFactory, _projectFileExtensions, _psiProjectFileTypeCoordinator, null, path,
                        sf => sf.Path.ExistsFile, sf => new T4OutsideSolutionSourceFileProperties());
                    _sourceFiles[path] = sourceFile;
                }
                return(sourceFile);
            }
        }
        public IPsiSourceFile GetOrCreateSourceFile([NotNull] FileSystemPath path)
        {
            Assertion.Assert(path.IsAbsolute, "path.IsAbsolute");

            lock (_sourceFiles) {
                if (!_sourceFiles.TryGetValue(path, out IPsiSourceFile sourceFile) || sourceFile == null)
                {
                    sourceFile = new T4OutsideSolutionSourceFile(
                        _projectFileExtensions, _psiProjectFileTypeCoordinator, _psiModule, path,
                        sf => sf.Location.ExistsFile, sf => new T4OutsideSolutionSourceFileProperties(),
                        _documentManager, EmptyResolveContext.Instance);
                    _sourceFiles[path] = sourceFile;
                }
                return(sourceFile);
            }
        }