slint-ui/slint · error · std::io::Error

{path:?} is still loading

Error message

{path:?} is still loading

What it means

Error "{path:?} is still loading" thrown in slint-ui/slint.

Source

Thrown at internal/compiler/typeloader.rs:1010

        self.revision = self.revision.wrapping_add(1);
    }

    pub fn revision(&self) -> u64 {
        self.revision
    }

    /// Drop a document from the TypeLoader and invalidate all of its dependencies.
    /// Returns the list of all (transitive) dependencies.
    ///
    /// This forces the compiler to entirely reload the document from scratch.
    /// To only cause a re-analyze, but not a reparse, use [Self::invalidate_document]
    pub fn drop_document(&mut self, path: &Path) -> Result<HashSet<PathBuf>, std::io::Error> {
        let dependencies = self.invalidate_document(path);
        self.all_documents.docs.remove(path);
        self.bump_revision();

        if self.all_documents.currently_loading.contains_key(path) {
            Err(std::io::Error::new(ErrorKind::InvalidInput, format!("{path:?} is still loading")))
        } else {
            Ok(dependencies)
        }
    }

    /// Invalidate a document and all its dependencies.
    ///
    /// This will keep the CST of the document in cache, but mark that it needs to be re-analyzed
    /// to reconstruct its types.
    ///
    /// To entirely forget a document and cause a complete re-parse, use [Self::drop_document].
    pub fn invalidate_document(&mut self, path: &Path) -> HashSet<PathBuf> {
        if let Some((d, _)) = self.all_documents.docs.get_mut(path) {
            if let LoadedDocument::Document(doc) = d {
                for import in &doc.imports {
                    self.all_documents
                        .dependencies
                        .entry(Path::new(&import.file).into())

View on GitHub (pinned to 3fd8f2ec03)

Solutions

  1. Wait for the file to finish loading before requesting it again.
  2. Avoid re-entrant loads of the same file in the type loader.

When it happens

Trigger: Thrown at internal/compiler/typeloader.rs:1010 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of slint-ui/slint@3fd8f2ec03 (2026-08-19). Data as JSON: /api/errors/a779f6b3dca1b9d4. Report an issue: GitHub.