Skip to content

Remove dead [<Experimental>] from internal types in FileSystem.fs #19916

@T-Gro

Description

@T-Gro

Summary

Three internal classes in src/Compiler/Utilities/FileSystem.fs carry [<Experimental("This FCS API/Type is experimental and subject to change.")>] but are not exposed in the matching .fsi:

  • ByteArrayMemory (line 65)
  • SafeUnmanagedMemoryStream (line 154)
  • RawByteMemory (line 210)

These attributes are dead — consumers never see them (the .fsi hides the types entirely), and the new signature-conformance check (FS3888) skips them because they have no signature counterpart, so they don't surface as a diagnostic either.

Why open this

While dogfooding FS3888 in #19880 the four other public types in the same file (ByteMemory, IAssemblyLoader, DefaultAssemblyLoader, IFileSystem, DefaultFileSystem) had the same dead [<Experimental>] on the .fs only. They were cleaned up there because they did fire FS3888. These three impl-internal types were left alone to keep that PR minimal.

Suggested fix

Delete the three [<Experimental(...)>] attributes. One-line PR, no behavior change.

Refs

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    New

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions