dotnet / dotnet/docfx

"System.ArgumentNullException: Value cannot be null." on create metadata

Open
#7,880 4 comments 0 reactions 0 assignees View on GitHub
dotnet
Dominant language
C#
Stars
4.4k
Forks
890
Avg merge
2h 11m
Merged PRs (30d)
10

Description

**Operating System**: (`Windows` or `Linux` or `MacOS`)
Windows 10 19044

**DocFX Version Used**:
v2.59.0

**other versions/tools**:
cygwin 2917
visual studio community 16.11.9

**Template used**: (`default` or `statictoc` or contain custom template)
default

**Steps to Reproduce**:

1. extract attached testcase
2. run "docfx.exe metadata docfx.json"

**Notes**:
- test class JSONObject.cs has been stripped to minimal reproducible case, note it may no longer compile without errors in VS. but even the fully implemented class throws the error.
- arbitrary testing: error does not occur when removing "using System.Collections;"
- arbitrary testing: error does not occur when changing "IEnumerator IEnumerable.GetEnumerator()" to just "IEnumerator GetEnumerator()"

**Expected Behavior**:
Documentation is generated.

**Actual Behavior**:
Output:
$ /cygdrive/c/Users/wkresse/Downloads/docfx/docfx.exe metadata docfx.json
[22-02-09 04:45:03.629]Info:[ExtractMetadata]Using msbuild C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin as inner compiler.
[22-02-09 04:45:03.796]Info:[ExtractMetadata]Loading projects...
[22-02-09 04:45:03.818]Info:[ExtractMetadata]Generating metadata for each project...
[22-02-09 04:45:04.713]Error:Error extracting metadata for C:/Users/wkresse/Desktop/projects/RepoCollector_Packages - Unity2021.2/NNN Packages/_Documentation/do
cfx_nullref_testcase/src/JSONObject.cs: System.ArgumentNullException: Value cannot be null.
Parameter name: text
at Microsoft.CodeAnalysis.Text.SourceText.From(String text, Encoding encoding, SourceHashAlgorithm checksumAlgorithm)
at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.MakeSourceText(String text, Int32 offset)
at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseName(String text, Int32 offset, Boolean consumeFullText)
at Microsoft.DocAsCode.Metadata.ManagedReference.CSYamlModelGenerator.GetMethodSyntax(IMethodSymbol symbol, IFilterVisitor filterVisitor)
at Microsoft.DocAsCode.Metadata.ManagedReference.CSYamlModelGenerator.GetSyntaxContent(MemberType typeKind, ISymbol symbol, SymbolVisitorAdapter adapter)
at Microsoft.DocAsCode.Metadata.ManagedReference.CompositeYamlModelGenerator.GenerateSyntax(MemberType type, ISymbol symbol, SyntaxDetail syntax, SymbolVisit
orAdapter adapter)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitMethod(IMethodSymbol symbol)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitNamedType(INamedTypeSymbol symbol)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitDescendants[T](IEnumerable`1 children, Func`2 getChildren, Func`2 filter)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitNamespace(INamespaceSymbol symbol)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitDescendants[T](IEnumerable`1 children, Func`2 getChildren, Func`2 filter)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitAssembly(IAssemblySymbol symbol)
at Microsoft.DocAsCode.Metadata.ManagedReference.RoslynMetadataExtractor.Extract(ExtractMetadataOptions options)
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.GetMetadataFromProjectLevelCache(IBuildController controller, IInputParameters key)
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.d__13.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.d__11.MoveNext()
[22-02-09 04:45:04.715]Info:Completed in 1107,8578 milliseconds

Build failed.
[22-02-09 04:45:04.719]Error:Error extracting metadata for C:/Users/wkresse/Desktop/projects/RepoCollector_Packages - Unity2021.2/NNN Packages/_Documentation/do
cfx_nullref_testcase/src/JSONObject.cs: System.ArgumentNullException: Value cannot be null.
Parameter name: text
at Microsoft.CodeAnalysis.Text.SourceText.From(String text, Encoding encoding, SourceHashAlgorithm checksumAlgorithm)
at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.MakeSourceText(String text, Int32 offset)
at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseName(String text, Int32 offset, Boolean consumeFullText)
at Microsoft.DocAsCode.Metadata.ManagedReference.CSYamlModelGenerator.GetMethodSyntax(IMethodSymbol symbol, IFilterVisitor filterVisitor)
at Microsoft.DocAsCode.Metadata.ManagedReference.CSYamlModelGenerator.GetSyntaxContent(MemberType typeKind, ISymbol symbol, SymbolVisitorAdapter adapter)
at Microsoft.DocAsCode.Metadata.ManagedReference.CompositeYamlModelGenerator.GenerateSyntax(MemberType type, ISymbol symbol, SyntaxDetail syntax, SymbolVisit
orAdapter adapter)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitMethod(IMethodSymbol symbol)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitNamedType(INamedTypeSymbol symbol)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitDescendants[T](IEnumerable`1 children, Func`2 getChildren, Func`2 filter)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitNamespace(INamespaceSymbol symbol)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitDescendants[T](IEnumerable`1 children, Func`2 getChildren, Func`2 filter)
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitAssembly(IAssemblySymbol symbol)
at Microsoft.DocAsCode.Metadata.ManagedReference.RoslynMetadataExtractor.Extract(ExtractMetadataOptions options)
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.GetMetadataFromProjectLevelCache(IBuildController controller, IInputParameters key)
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.d__13.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.d__11.MoveNext()
0 Warning(s)
1 Error(s)

[docfx_nullref_testcase.zip](https://github.com/dotnet/docfx/files/8034650/docfx_nullref_testcase.zip)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.