Skip to content

C# 14 Preview 3 massive errors for nested functional extensions #78135

Open
@tomschrot

Description

@tomschrot

C# 14 Preview 3 massive errors for nested functional extensions:
(Linux Mint 22.1, VS Code 1.99.2)

Playing around with extensions, I get tons of errors for:

Program:

var sb =
        new StringBuilder("Info: ")
            .Snip    ( 1 )
            .Inspect ( c => Console.Write(c) );

Extension:
it compiles but will crash removing the foreach - comments below?!

namespace Extensions;

#nullable enable

public static class Test
{
    extension (StringBuilder sb)
    {
        //-------------------------------------------------------------------------

        public StringBuilder Snip (int n = 1)
        {
            var pos = sb.Length - int.Abs (n);

            if ( pos > 0 )
                sb.Remove (pos, n);

            return sb;
        }
        //-------------------------------------------------------------------------

        public StringBuilder Call (Action onCall)
        {
            onCall?.Invoke();
            return sb;
        }
        //-------------------------------------------------------------------------

        public StringBuilder Inspect (Action<char> onChar)
            =>
                sb.Call ( () =>
                {
                    // foreach (char c in sb.ToString())
                    //     onChar(c);
                });

        //-------------------------------------------------------------------------
    }
}
#nullable restore


    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error : Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.Cci.MetadataWriter.CheckNameLength(String name, INamedEntity errorEntity)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.Cci.MetadataWriter.PopulateFieldTableRows()
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.Cci.MetadataWriter.PopulateTypeSystemTables(Int32[] methodBodyOffsets, PooledBlobBuilder& mappedFieldDataWriter, PooledBlobBuilder& resourceWriter, BlobBuilder dynamicAnalysisData, Blob& mvidFixup)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.Cci.MetadataWriter.BuildMetadataAndIL(PdbWriter nativePdbWriterOpt, BlobBuilder ilBuilder, PooledBlobBuilder& mappedFieldDataBuilder, PooledBlobBuilder& managedResourceDataBuilder, Blob& mvidFixup, Blob& mvidStringFixup)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.Cci.PeWriter.WritePeToStream(EmitContext context, CommonMessageProvider messageProvider, Func`1 getPeStream, Func`1 getPortablePdbStreamOpt, PdbWriter nativePdbWriterOpt, String pdbPathOpt, Boolean metadataOnly, Boolean isDeterministic, Boolean emitTestCoverageData, Nullable`1 privateKeyOpt, CancellationToken cancellationToken)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.Compilation.SerializePeToStream(CommonPEModuleBuilder moduleBeingBuilt, DiagnosticBag metadataDiagnostics, CommonMessageProvider messageProvider, Func`1 getPeStream, Func`1 getMetadataPeStreamOpt, Func`1 getPortablePdbStreamOpt, PdbWriter nativePdbWriterOpt, String pdbPathOpt, RebuildData rebuildData, Boolean metadataOnly, Boolean includePrivateMembers, Boolean isDeterministic, Boolean emitTestCoverageData, Nullable`1 privateKeyOpt, CancellationToken cancellationToken)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.Compilation.SerializeToPeStream(CommonPEModuleBuilder moduleBeingBuilt, EmitStreamProvider peStreamProvider, EmitStreamProvider metadataPEStreamProvider, EmitStreamProvider pdbStreamProvider, RebuildData rebuildData, Func`2 testSymWriterFactory, DiagnosticBag diagnostics, EmitOptions emitOptions, Nullable`1 privateKeyOpt, CancellationToken cancellationToken)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CommonCompiler.CompileAndEmit(TouchedFileLogger touchedFilesLogger, Compilation& compilation, ImmutableArray`1 analyzers, ImmutableArray`1 generators, ImmutableArray`1 additionalTextFiles, AnalyzerConfigSet analyzerConfigSet, ImmutableArray`1 sourceFileAnalyzerConfigOptions, ImmutableArray`1 embeddedTexts, DiagnosticBag diagnostics, ErrorLogger errorLogger, CancellationToken cancellationToken, CancellationTokenSource& analyzerCts, AnalyzerDriver& analyzerDriver, Nullable`1& generatorTimingInfo)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CommonCompiler.RunCore(TextWriter consoleOutput, ErrorLogger errorLogger, CancellationToken cancellationToken)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CommonCompiler.Run(TextWriter consoleOutput, CancellationToken cancellationToken)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.CommandLine.Csc.Run(String[] args, BuildPaths buildPaths, TextWriter textWriter, IAnalyzerAssemblyLoader analyzerLoader)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CommandLine.BuildClient.RunCompilation(IEnumerable`1 originalArguments, BuildPaths buildPaths, TextWriter textWriter, String pipeName)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CommandLine.BuildClient.Run(IEnumerable`1 arguments, RequestLanguage language, CompileFunc compileFunc, CompileOnServerFunc compileOnServerFunc, ICompilerServerLogger logger)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.CommandLine.Program.MainCore(String[] args)
    /home/user/.dotnet/sdk/10.0.100-preview.3.25201.16/Roslyn/Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main(String[] args)

Erstellen von fehlerhaft mit 16 Fehler(n) in 6,9s

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions