Open
Description
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