Full Code of icsharpcode/ILSpy for AI

master 5eebf1408a47 cached
1740 files
10.6 MB
2.9M tokens
17593 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (11,502K chars total). Download the full file to get everything.
Repository: icsharpcode/ILSpy
Branch: master
Commit: 5eebf1408a47
Files: 1740
Total size: 10.6 MB

Directory structure:
gitextract_h8aaa6eu/

├── .editorconfig
├── .git-blame-ignore-revs
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── feature_request.md
│   │   └── wrong_decompilation.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── build-frontends.yml
│       ├── build-ilspy.yml
│       ├── codeql-analysis.yml
│       ├── generate-bom.yml
│       ├── lock.yml
│       └── scorecard.yml
├── .gitignore
├── .gitmodules
├── .tgitconfig
├── BuildTools/
│   ├── ILSpy.AddIn.VS2022.vsix.filelist
│   ├── ILSpy.AddIn.vsix.filelist
│   ├── ILSpy.msi.filelist
│   ├── bom-classify-encodings.ps1
│   ├── bom-strip.ps1
│   ├── create-filelists.ps1
│   ├── format.bat
│   ├── ghactions-install.ps1
│   ├── pre-commit
│   ├── sort-resx.ps1
│   └── update-assemblyinfo.ps1
├── Directory.Build.props
├── Directory.Packages.props
├── ICSharpCode.BamlDecompiler/
│   ├── Baml/
│   │   ├── BamlContext.cs
│   │   ├── BamlDocument.cs
│   │   ├── BamlNode.cs
│   │   ├── BamlReader.cs
│   │   ├── BamlRecords.cs
│   │   ├── BamlWriter.cs
│   │   ├── KnownMembers.cs
│   │   ├── KnownThings.cs
│   │   ├── KnownThings.g.cs
│   │   ├── KnownThings.gen.cs
│   │   └── KnownTypes.cs
│   ├── BamlConnectionId.cs
│   ├── BamlDecompilationResult.cs
│   ├── BamlDecompilerSettings.cs
│   ├── BamlDecompilerTypeSystem.cs
│   ├── BamlElement.cs
│   ├── Handlers/
│   │   ├── Blocks/
│   │   │   ├── ConstructorParametersHandler.cs
│   │   │   ├── DocumentHandler.cs
│   │   │   ├── ElementHandler.cs
│   │   │   ├── KeyElementStartHandler.cs
│   │   │   ├── PropertyArrayHandler.cs
│   │   │   ├── PropertyComplexHandler.cs
│   │   │   ├── PropertyDictionaryHandler.cs
│   │   │   └── PropertyListHandler.cs
│   │   └── Records/
│   │       ├── AssemblyInfoHandler.cs
│   │       ├── AttributeInfoHandler.cs
│   │       ├── ConnectionIdHandler.cs
│   │       ├── ConstructorParameterTypeHandler.cs
│   │       ├── ContentPropertyHandler.cs
│   │       ├── DefAttributeHandler.cs
│   │       ├── DefAttributeKeyStringHandler.cs
│   │       ├── DefAttributeKeyTypeHandler.cs
│   │       ├── DeferableContentStartHandler.cs
│   │       ├── LineNumberAndPositionHandler.cs
│   │       ├── LinePositionHandler.cs
│   │       ├── LiteralContentHandler.cs
│   │       ├── OptimizedStaticResourceHandler.cs
│   │       ├── PIMappingHandler.cs
│   │       ├── PresentationOptionsAttributeHandler.cs
│   │       ├── PropertyCustomHandler.cs
│   │       ├── PropertyHandler.cs
│   │       ├── PropertyTypeReferenceHandler.cs
│   │       ├── PropertyWithConverterHandler.cs
│   │       ├── PropertyWithExtensionHandler.cs
│   │       ├── PropertyWithStaticResourceIdHandler.cs
│   │       ├── StaticResourceIdHandler.cs
│   │       ├── StaticResourceStartHandler.cs
│   │       ├── TextHandler.cs
│   │       ├── TextWithConverterHandler.cs
│   │       ├── TypeInfoHandler.cs
│   │       └── XmlnsPropertyHandler.cs
│   ├── ICSharpCode.BamlDecompiler.csproj
│   ├── IHandlers.cs
│   ├── IRewritePass.cs
│   ├── PackageReadme.md
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Rewrite/
│   │   ├── AttributeRewritePass.cs
│   │   ├── ConnectionIdRewritePass.cs
│   │   ├── DocumentRewritePass.cs
│   │   ├── MarkupExtensionRewritePass.cs
│   │   └── XClassRewritePass.cs
│   ├── Xaml/
│   │   ├── NamespaceMap.cs
│   │   ├── XamlExtension.cs
│   │   ├── XamlPathDeserializer.cs
│   │   ├── XamlProperty.cs
│   │   ├── XamlResourceKey.cs
│   │   ├── XamlType.cs
│   │   └── XamlUtils.cs
│   ├── XamlContext.cs
│   ├── XamlDecompiler.cs
│   ├── XmlnsDictionary.cs
│   └── packages.lock.json
├── ICSharpCode.Decompiler/
│   ├── CSharp/
│   │   ├── Annotations.cs
│   │   ├── CSharpDecompiler.cs
│   │   ├── CSharpLanguageVersion.cs
│   │   ├── CallBuilder.cs
│   │   ├── ExpressionBuilder.cs
│   │   ├── OutputVisitor/
│   │   │   ├── CSharpAmbience.cs
│   │   │   ├── CSharpFormattingOptions.cs
│   │   │   ├── CSharpOutputVisitor.cs
│   │   │   ├── FormattingOptionsFactory.cs
│   │   │   ├── GenericGrammarAmbiguityVisitor.cs
│   │   │   ├── ITokenWriter.cs
│   │   │   ├── InsertMissingTokensDecorator.cs
│   │   │   ├── InsertParenthesesVisitor.cs
│   │   │   ├── InsertRequiredSpacesDecorator.cs
│   │   │   ├── InsertSpecialsDecorator.cs
│   │   │   └── TextWriterTokenWriter.cs
│   │   ├── ProjectDecompiler/
│   │   │   ├── IProjectFileWriter.cs
│   │   │   ├── IProjectInfoProvider.cs
│   │   │   ├── ProjectFileWriterDefault.cs
│   │   │   ├── ProjectFileWriterSdkStyle.cs
│   │   │   ├── TargetFramework.cs
│   │   │   ├── TargetServices.cs
│   │   │   └── WholeProjectDecompiler.cs
│   │   ├── RecordDecompiler.cs
│   │   ├── RequiredNamespaceCollector.cs
│   │   ├── Resolver/
│   │   │   ├── AliasNamespaceResolveResult.cs
│   │   │   ├── AliasTypeResolveResult.cs
│   │   │   ├── AwaitResolveResult.cs
│   │   │   ├── CSharpConversions.cs
│   │   │   ├── CSharpInvocationResolveResult.cs
│   │   │   ├── CSharpOperators.cs
│   │   │   ├── CSharpResolver.cs
│   │   │   ├── DynamicInvocationResolveResult.cs
│   │   │   ├── DynamicMemberResolveResult.cs
│   │   │   ├── LambdaResolveResult.cs
│   │   │   ├── Log.cs
│   │   │   ├── MemberLookup.cs
│   │   │   ├── MethodGroupResolveResult.cs
│   │   │   ├── NameLookupMode.cs
│   │   │   ├── OverloadResolution.cs
│   │   │   ├── OverloadResolutionErrors.cs
│   │   │   └── TypeInference.cs
│   │   ├── SequencePointBuilder.cs
│   │   ├── StatementBuilder.cs
│   │   ├── Syntax/
│   │   │   ├── AstNode.cs
│   │   │   ├── AstNodeCollection.cs
│   │   │   ├── AstType.cs
│   │   │   ├── CSharpModifierToken.cs
│   │   │   ├── CSharpTokenNode.cs
│   │   │   ├── ComposedType.cs
│   │   │   ├── DepthFirstAstVisitor.cs
│   │   │   ├── DocumentationReference.cs
│   │   │   ├── Expressions/
│   │   │   │   ├── AnonymousMethodExpression.cs
│   │   │   │   ├── AnonymousTypeCreateExpression.cs
│   │   │   │   ├── ArrayCreateExpression.cs
│   │   │   │   ├── ArrayInitializerExpression.cs
│   │   │   │   ├── AsExpression.cs
│   │   │   │   ├── AssignmentExpression.cs
│   │   │   │   ├── BaseReferenceExpression.cs
│   │   │   │   ├── BinaryOperatorExpression.cs
│   │   │   │   ├── CastExpression.cs
│   │   │   │   ├── CheckedExpression.cs
│   │   │   │   ├── ConditionalExpression.cs
│   │   │   │   ├── DeclarationExpression.cs
│   │   │   │   ├── DefaultValueExpression.cs
│   │   │   │   ├── DirectionExpression.cs
│   │   │   │   ├── ErrorExpression.cs
│   │   │   │   ├── Expression.cs
│   │   │   │   ├── IdentifierExpression.cs
│   │   │   │   ├── IndexerExpression.cs
│   │   │   │   ├── InterpolatedStringExpression.cs
│   │   │   │   ├── InvocationExpression.cs
│   │   │   │   ├── IsExpression.cs
│   │   │   │   ├── LambdaExpression.cs
│   │   │   │   ├── MemberReferenceExpression.cs
│   │   │   │   ├── NamedArgumentExpression.cs
│   │   │   │   ├── NamedExpression.cs
│   │   │   │   ├── NullReferenceExpression.cs
│   │   │   │   ├── ObjectCreateExpression.cs
│   │   │   │   ├── OutVarDeclarationExpression.cs
│   │   │   │   ├── ParenthesizedExpression.cs
│   │   │   │   ├── PointerReferenceExpression.cs
│   │   │   │   ├── PrimitiveExpression.cs
│   │   │   │   ├── QueryExpression.cs
│   │   │   │   ├── RecursivePatternExpression.cs
│   │   │   │   ├── SizeOfExpression.cs
│   │   │   │   ├── StackAllocExpression.cs
│   │   │   │   ├── SwitchExpression.cs
│   │   │   │   ├── ThisReferenceExpression.cs
│   │   │   │   ├── ThrowExpression.cs
│   │   │   │   ├── TupleExpression.cs
│   │   │   │   ├── TypeOfExpression.cs
│   │   │   │   ├── TypeReferenceExpression.cs
│   │   │   │   ├── UnaryOperatorExpression.cs
│   │   │   │   ├── UncheckedExpression.cs
│   │   │   │   ├── UndocumentedExpression.cs
│   │   │   │   └── WithInitializerExpression.cs
│   │   │   ├── FunctionPointerAstType.cs
│   │   │   ├── GeneralScope/
│   │   │   │   ├── Attribute.cs
│   │   │   │   ├── AttributeSection.cs
│   │   │   │   ├── Comment.cs
│   │   │   │   ├── Constraint.cs
│   │   │   │   ├── DelegateDeclaration.cs
│   │   │   │   ├── ExternAliasDeclaration.cs
│   │   │   │   ├── NamespaceDeclaration.cs
│   │   │   │   ├── PreProcessorDirective.cs
│   │   │   │   ├── TypeDeclaration.cs
│   │   │   │   ├── TypeParameterDeclaration.cs
│   │   │   │   ├── UsingAliasDeclaration.cs
│   │   │   │   └── UsingDeclaration.cs
│   │   │   ├── IAnnotatable.cs
│   │   │   ├── IAstVisitor.cs
│   │   │   ├── Identifier.cs
│   │   │   ├── IdentifierExpressionBackreference.cs
│   │   │   ├── InvocationAstType.cs
│   │   │   ├── MemberType.cs
│   │   │   ├── Modifiers.cs
│   │   │   ├── NodeType.cs
│   │   │   ├── PatternMatching/
│   │   │   │   ├── AnyNode.cs
│   │   │   │   ├── AnyNodeOrNull.cs
│   │   │   │   ├── Backreference.cs
│   │   │   │   ├── BacktrackingInfo.cs
│   │   │   │   ├── Choice.cs
│   │   │   │   ├── INode.cs
│   │   │   │   ├── Match.cs
│   │   │   │   ├── NamedNode.cs
│   │   │   │   ├── OptionalNode.cs
│   │   │   │   ├── Pattern.cs
│   │   │   │   └── Repeat.cs
│   │   │   ├── PrimitiveType.cs
│   │   │   ├── Role.cs
│   │   │   ├── Roles.cs
│   │   │   ├── SimpleType.cs
│   │   │   ├── Statements/
│   │   │   │   ├── BlockStatement.cs
│   │   │   │   ├── BreakStatement.cs
│   │   │   │   ├── CheckedStatement.cs
│   │   │   │   ├── ContinueStatement.cs
│   │   │   │   ├── DoWhileStatement.cs
│   │   │   │   ├── EmptyStatement.cs
│   │   │   │   ├── ExpressionStatement.cs
│   │   │   │   ├── FixedStatement.cs
│   │   │   │   ├── ForStatement.cs
│   │   │   │   ├── ForeachStatement.cs
│   │   │   │   ├── GotoStatement.cs
│   │   │   │   ├── IfElseStatement.cs
│   │   │   │   ├── LabelStatement.cs
│   │   │   │   ├── LocalFunctionDeclarationStatement.cs
│   │   │   │   ├── LockStatement.cs
│   │   │   │   ├── ReturnStatement.cs
│   │   │   │   ├── Statement.cs
│   │   │   │   ├── SwitchStatement.cs
│   │   │   │   ├── ThrowStatement.cs
│   │   │   │   ├── TryCatchStatement.cs
│   │   │   │   ├── UncheckedStatement.cs
│   │   │   │   ├── UnsafeStatement.cs
│   │   │   │   ├── UsingStatement.cs
│   │   │   │   ├── VariableDeclarationStatement.cs
│   │   │   │   ├── WhileStatement.cs
│   │   │   │   ├── YieldBreakStatement.cs
│   │   │   │   └── YieldReturnStatement.cs
│   │   │   ├── SyntaxExtensions.cs
│   │   │   ├── SyntaxTree.cs
│   │   │   ├── TextLocation.cs
│   │   │   ├── TokenRole.cs
│   │   │   ├── TupleAstType.cs
│   │   │   ├── TypeMembers/
│   │   │   │   ├── Accessor.cs
│   │   │   │   ├── ConstructorDeclaration.cs
│   │   │   │   ├── DestructorDeclaration.cs
│   │   │   │   ├── EntityDeclaration.cs
│   │   │   │   ├── EnumMemberDeclaration.cs
│   │   │   │   ├── EventDeclaration.cs
│   │   │   │   ├── ExtensionDeclaration.cs
│   │   │   │   ├── FieldDeclaration.cs
│   │   │   │   ├── FixedFieldDeclaration.cs
│   │   │   │   ├── FixedVariableInitializer.cs
│   │   │   │   ├── IndexerDeclaration.cs
│   │   │   │   ├── MethodDeclaration.cs
│   │   │   │   ├── OperatorDeclaration.cs
│   │   │   │   ├── ParameterDeclaration.cs
│   │   │   │   ├── PropertyDeclaration.cs
│   │   │   │   └── VariableInitializer.cs
│   │   │   ├── TypeSystemAstBuilder.cs
│   │   │   └── VariableDesignation.cs
│   │   ├── Transforms/
│   │   │   ├── AddCheckedBlocks.cs
│   │   │   ├── AddXmlDocumentationTransform.cs
│   │   │   ├── CombineQueryExpressions.cs
│   │   │   ├── ContextTrackingVisitor.cs
│   │   │   ├── CustomPatterns.cs
│   │   │   ├── DeclareVariables.cs
│   │   │   ├── EscapeInvalidIdentifiers.cs
│   │   │   ├── FixNameCollisions.cs
│   │   │   ├── FlattenSwitchBlocks.cs
│   │   │   ├── IAstTransform.cs
│   │   │   ├── IntroduceExtensionMethods.cs
│   │   │   ├── IntroduceQueryExpressions.cs
│   │   │   ├── IntroduceUnsafeModifier.cs
│   │   │   ├── IntroduceUsingDeclarations.cs
│   │   │   ├── NormalizeBlockStatements.cs
│   │   │   ├── PatternStatementTransform.cs
│   │   │   ├── PrettifyAssignments.cs
│   │   │   ├── RemoveCLSCompliantAttribute.cs
│   │   │   ├── ReplaceMethodCallsWithOperators.cs
│   │   │   ├── TransformContext.cs
│   │   │   └── TransformFieldAndConstructorInitializers.cs
│   │   ├── TranslatedExpression.cs
│   │   ├── TranslatedStatement.cs
│   │   ├── TranslationContext.cs
│   │   └── TypeSystem/
│   │       ├── CSharpTypeResolveContext.cs
│   │       └── UsingScope.cs
│   ├── DebugInfo/
│   │   ├── AsyncDebugInfo.cs
│   │   ├── DebugInfoGenerator.cs
│   │   ├── IDebugInfoProvider.cs
│   │   ├── ImportScopeInfo.cs
│   │   ├── KnownGuids.cs
│   │   ├── PortablePdbWriter.cs
│   │   └── SequencePoint.cs
│   ├── DecompilationProgress.cs
│   ├── DecompileRun.cs
│   ├── DecompilerException.cs
│   ├── DecompilerSettings.cs
│   ├── Disassembler/
│   │   ├── DisassemblerHelpers.cs
│   │   ├── DisassemblerSignatureTypeProvider.cs
│   │   ├── IEntityProcessor.cs
│   │   ├── ILParser.cs
│   │   ├── ILStructure.cs
│   │   ├── MethodBodyDisassembler.cs
│   │   ├── OpCodeInfo.cs
│   │   ├── ReflectionDisassembler.cs
│   │   └── SortByNameProcessor.cs
│   ├── Documentation/
│   │   ├── GetPotentiallyNestedClassTypeReference.cs
│   │   ├── IdStringMemberReference.cs
│   │   ├── IdStringProvider.cs
│   │   ├── XmlDocLoader.cs
│   │   ├── XmlDocumentationElement.cs
│   │   └── XmlDocumentationProvider.cs
│   ├── FlowAnalysis/
│   │   ├── ControlFlowNode.cs
│   │   ├── DataFlowVisitor.cs
│   │   ├── DefiniteAssignmentVisitor.cs
│   │   ├── Dominance.cs
│   │   └── ReachingDefinitionsVisitor.cs
│   ├── Humanizer/
│   │   ├── LICENSE
│   │   ├── StringHumanizeExtensions.cs
│   │   ├── Vocabularies.cs
│   │   └── Vocabulary.cs
│   ├── ICSharpCode.Decompiler.csproj
│   ├── ICSharpCode.Decompiler.snk
│   ├── IL/
│   │   ├── BlockBuilder.cs
│   │   ├── ControlFlow/
│   │   │   ├── AsyncAwaitDecompiler.cs
│   │   │   ├── AwaitInCatchTransform.cs
│   │   │   ├── AwaitInFinallyTransform.cs
│   │   │   ├── ConditionDetection.cs
│   │   │   ├── ControlFlowGraph.cs
│   │   │   ├── ControlFlowSimplification.cs
│   │   │   ├── DetectPinnedRegions.cs
│   │   │   ├── ExitPoints.cs
│   │   │   ├── LoopDetection.cs
│   │   │   ├── RemoveRedundantReturn.cs
│   │   │   ├── StateRangeAnalysis.cs
│   │   │   ├── SwitchAnalysis.cs
│   │   │   ├── SwitchDetection.cs
│   │   │   ├── SymbolicExecution.cs
│   │   │   └── YieldReturnDecompiler.cs
│   │   ├── ILAmbience.cs
│   │   ├── ILAstWritingOptions.cs
│   │   ├── ILInstructionExtensions.cs
│   │   ├── ILReader.cs
│   │   ├── ILTypeExtensions.cs
│   │   ├── ILVariable.cs
│   │   ├── InstructionFlags.cs
│   │   ├── InstructionOutputExtensions.cs
│   │   ├── Instructions/
│   │   │   ├── Await.cs
│   │   │   ├── BinaryNumericInstruction.cs
│   │   │   ├── Block.cs
│   │   │   ├── BlockContainer.cs
│   │   │   ├── Branch.cs
│   │   │   ├── CallIndirect.cs
│   │   │   ├── CallInstruction.cs
│   │   │   ├── Comp.cs
│   │   │   ├── CompoundAssignmentInstruction.cs
│   │   │   ├── Conv.cs
│   │   │   ├── DeconstructInstruction.cs
│   │   │   ├── DeconstructResultInstruction.cs
│   │   │   ├── DefaultValue.cs
│   │   │   ├── DynamicInstructions.cs
│   │   │   ├── ExpressionTreeCast.cs
│   │   │   ├── ILFunction.cs
│   │   │   ├── ILInstruction.cs
│   │   │   ├── ILVariableCollection.cs
│   │   │   ├── IfInstruction.cs
│   │   │   ├── InstructionCollection.cs
│   │   │   ├── IsInst.cs
│   │   │   ├── LdFlda.cs
│   │   │   ├── LdLen.cs
│   │   │   ├── Leave.cs
│   │   │   ├── LockInstruction.cs
│   │   │   ├── LogicInstructions.cs
│   │   │   ├── MatchInstruction.cs
│   │   │   ├── MemoryInstructions.cs
│   │   │   ├── NullCoalescingInstruction.cs
│   │   │   ├── NullableInstructions.cs
│   │   │   ├── PatternMatching.cs
│   │   │   ├── SimpleInstruction.cs
│   │   │   ├── StLoc.cs
│   │   │   ├── StringToInt.cs
│   │   │   ├── SwitchInstruction.cs
│   │   │   ├── TryInstruction.cs
│   │   │   ├── UnaryInstruction.cs
│   │   │   └── UsingInstruction.cs
│   │   ├── Instructions.cs
│   │   ├── Instructions.tt
│   │   ├── Patterns/
│   │   │   ├── AnyNode.cs
│   │   │   ├── ListMatch.cs
│   │   │   └── Match.cs
│   │   ├── PointerArithmeticOffset.cs
│   │   ├── PrimitiveType.cs
│   │   ├── SemanticHelper.cs
│   │   ├── SlotInfo.cs
│   │   ├── StackType.cs
│   │   └── Transforms/
│   │       ├── AssignVariableNames.cs
│   │       ├── BlockTransform.cs
│   │       ├── CachedDelegateInitialization.cs
│   │       ├── CombineExitsTransform.cs
│   │       ├── CopyPropagation.cs
│   │       ├── DeconstructionTransform.cs
│   │       ├── DelegateConstruction.cs
│   │       ├── DetectCatchWhenConditionBlocks.cs
│   │       ├── DynamicCallSiteTransform.cs
│   │       ├── DynamicIsEventAssignmentTransform.cs
│   │       ├── EarlyExpressionTransforms.cs
│   │       ├── ExpressionTransforms.cs
│   │       ├── FixRemainingIncrements.cs
│   │       ├── HighLevelLoopTransform.cs
│   │       ├── IILTransform.cs
│   │       ├── ILExtraction.cs
│   │       ├── ILInlining.cs
│   │       ├── IndexRangeTransform.cs
│   │       ├── InlineArrayTransform.cs
│   │       ├── InlineReturnTransform.cs
│   │       ├── InterpolatedStringTransform.cs
│   │       ├── IntroduceDynamicTypeOnLocals.cs
│   │       ├── IntroduceNativeIntTypeOnLocals.cs
│   │       ├── IntroduceRefReadOnlyModifierOnLocals.cs
│   │       ├── LdLocaDupInitObjTransform.cs
│   │       ├── LocalFunctionDecompiler.cs
│   │       ├── LockTransform.cs
│   │       ├── NamedArgumentTransform.cs
│   │       ├── NullCoalescingTransform.cs
│   │       ├── NullPropagationTransform.cs
│   │       ├── NullableLiftingTransform.cs
│   │       ├── PatternMatchingTransform.cs
│   │       ├── ProxyCallReplacer.cs
│   │       ├── ReduceNestingTransform.cs
│   │       ├── RemoveDeadVariableInit.cs
│   │       ├── RemoveInfeasiblePathTransform.cs
│   │       ├── RemoveUnconstrainedGenericReferenceTypeCheck.cs
│   │       ├── SplitVariables.cs
│   │       ├── StatementTransform.cs
│   │       ├── Stepper.cs
│   │       ├── SwitchOnNullableTransform.cs
│   │       ├── SwitchOnStringTransform.cs
│   │       ├── TransformArrayInitializers.cs
│   │       ├── TransformAssignment.cs
│   │       ├── TransformCollectionAndObjectInitializers.cs
│   │       ├── TransformDisplayClassUsage.cs
│   │       ├── TransformExpressionTrees.cs
│   │       ├── TupleTransform.cs
│   │       ├── UserDefinedLogicTransform.cs
│   │       └── UsingTransform.cs
│   ├── Instrumentation/
│   │   └── DecompilerEventSource.cs
│   ├── Metadata/
│   │   ├── AssemblyReferences.cs
│   │   ├── CodeMappingInfo.cs
│   │   ├── CustomAttributeDecoder.cs
│   │   ├── DotNetCorePathFinder.cs
│   │   ├── DotNetCorePathFinderExtensions.cs
│   │   ├── EnumUnderlyingTypeResolveException.cs
│   │   ├── ExportedTypeMetadata.cs
│   │   ├── FindTypeDecoder.cs
│   │   ├── FullTypeNameSignatureDecoder.cs
│   │   ├── ILOpCodes.cs
│   │   ├── ILOpCodes.tt
│   │   ├── LightJson/
│   │   │   ├── JsonArray.cs
│   │   │   ├── JsonObject.cs
│   │   │   ├── JsonValue.cs
│   │   │   ├── JsonValueType.cs
│   │   │   └── Serialization/
│   │   │       ├── JsonParseException.cs
│   │   │       ├── JsonReader.cs
│   │   │       ├── TextPosition.cs
│   │   │       └── TextScanner.cs
│   │   ├── MemberReferenceMetadata.cs
│   │   ├── MetadataExtensions.cs
│   │   ├── MetadataFile.cs
│   │   ├── MetadataGenericContext.cs
│   │   ├── MetadataTokenHelpers.cs
│   │   ├── MethodSemanticsLookup.cs
│   │   ├── ModuleReferenceMetadata.cs
│   │   ├── OperandType.cs
│   │   ├── PEFile.cs
│   │   ├── PropertyAndEventBackingFieldLookup.cs
│   │   ├── ReferenceLoadInfo.cs
│   │   ├── Resource.cs
│   │   ├── SignatureBlobComparer.cs
│   │   ├── TypeReferenceMetadata.cs
│   │   ├── UniversalAssemblyResolver.cs
│   │   ├── UnresolvedAssemblyNameReference.cs
│   │   └── WebCilFile.cs
│   ├── NRExtensions.cs
│   ├── NRTAttributes.cs
│   ├── Output/
│   │   ├── IAmbience.cs
│   │   ├── ITextOutput.cs
│   │   ├── PlainTextOutput.cs
│   │   ├── TextOutputWriter.cs
│   │   └── TextTokenWriter.cs
│   ├── PackageReadme.md
│   ├── PartialTypeInfo.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   └── DecompilerVersionInfo.template.cs
│   ├── SRMExtensions.cs
│   ├── SRMHacks.cs
│   ├── Semantics/
│   │   ├── AmbiguousResolveResult.cs
│   │   ├── ArrayAccessResolveResult.cs
│   │   ├── ArrayCreateResolveResult.cs
│   │   ├── ByReferenceResolveResult.cs
│   │   ├── ConstantResolveResult.cs
│   │   ├── Conversion.cs
│   │   ├── ConversionResolveResult.cs
│   │   ├── ErrorResolveResult.cs
│   │   ├── ForEachResolveResult.cs
│   │   ├── InitializedObjectResolveResult.cs
│   │   ├── InterpolatedStringResolveResult.cs
│   │   ├── InvocationResolveResult.cs
│   │   ├── LocalResolveResult.cs
│   │   ├── MemberResolveResult.cs
│   │   ├── NamedArgumentResolveResult.cs
│   │   ├── NamespaceResolveResult.cs
│   │   ├── OperatorResolveResult.cs
│   │   ├── OutVarResolveResult.cs
│   │   ├── ResolveResult.cs
│   │   ├── SizeOfResolveResult.cs
│   │   ├── ThisResolveResult.cs
│   │   ├── ThrowResolveResult.cs
│   │   ├── TupleResolveResult.cs
│   │   ├── TypeIsResolveResult.cs
│   │   ├── TypeOfResolveResult.cs
│   │   ├── TypeResolveResult.cs
│   │   └── UnknownMemberResolveResult.cs
│   ├── SingleFileBundle.cs
│   ├── Solution/
│   │   ├── ProjectId.cs
│   │   ├── ProjectItem.cs
│   │   └── SolutionCreator.cs
│   ├── TypeSystem/
│   │   ├── Accessibility.cs
│   │   ├── ApplyAttributeTypeVisitor.cs
│   │   ├── ArrayType.cs
│   │   ├── AssemblyQualifiedTypeName.cs
│   │   ├── ByReferenceType.cs
│   │   ├── ComHelper.cs
│   │   ├── DecompilerTypeSystem.cs
│   │   ├── ExtensionInfo.cs
│   │   ├── FullTypeName.cs
│   │   ├── FunctionPointerType.cs
│   │   ├── GenericContext.cs
│   │   ├── IAssembly.cs
│   │   ├── IAttribute.cs
│   │   ├── ICodeContext.cs
│   │   ├── ICompilation.cs
│   │   ├── IDecompilerTypeSystem.cs
│   │   ├── IEntity.cs
│   │   ├── IEvent.cs
│   │   ├── IField.cs
│   │   ├── IFreezable.cs
│   │   ├── IInterningProvider.cs
│   │   ├── IMember.cs
│   │   ├── IMethod.cs
│   │   ├── INamedElement.cs
│   │   ├── INamespace.cs
│   │   ├── IParameter.cs
│   │   ├── IParameterizedMember.cs
│   │   ├── IProperty.cs
│   │   ├── ISupportsInterning.cs
│   │   ├── ISymbol.cs
│   │   ├── IType.cs
│   │   ├── ITypeDefinition.cs
│   │   ├── ITypeDefinitionOrUnknown.cs
│   │   ├── ITypeParameter.cs
│   │   ├── ITypeReference.cs
│   │   ├── IVariable.cs
│   │   ├── Implementation/
│   │   │   ├── AbstractFreezable.cs
│   │   │   ├── AbstractType.cs
│   │   │   ├── AbstractTypeParameter.cs
│   │   │   ├── AttributeListBuilder.cs
│   │   │   ├── BaseTypeCollector.cs
│   │   │   ├── CustomAttribute.cs
│   │   │   ├── DecimalConstantHelper.cs
│   │   │   ├── DecoratedType.cs
│   │   │   ├── DefaultAssemblyReference.cs
│   │   │   ├── DefaultAttribute.cs
│   │   │   ├── DefaultParameter.cs
│   │   │   ├── DefaultTypeParameter.cs
│   │   │   ├── DefaultVariable.cs
│   │   │   ├── DummyTypeParameter.cs
│   │   │   ├── FakeMember.cs
│   │   │   ├── GetMembersHelper.cs
│   │   │   ├── KnownAttributes.cs
│   │   │   ├── KnownTypeCache.cs
│   │   │   ├── LocalFunctionMethod.cs
│   │   │   ├── MergedNamespace.cs
│   │   │   ├── MetadataEvent.cs
│   │   │   ├── MetadataField.cs
│   │   │   ├── MetadataMethod.cs
│   │   │   ├── MetadataNamespace.cs
│   │   │   ├── MetadataParameter.cs
│   │   │   ├── MetadataProperty.cs
│   │   │   ├── MetadataTypeDefinition.cs
│   │   │   ├── MetadataTypeParameter.cs
│   │   │   ├── MinimalCorlib.cs
│   │   │   ├── NestedTypeReference.cs
│   │   │   ├── NullabilityAnnotatedType.cs
│   │   │   ├── PinnedType.cs
│   │   │   ├── SimpleCompilation.cs
│   │   │   ├── SpecializedEvent.cs
│   │   │   ├── SpecializedField.cs
│   │   │   ├── SpecializedMember.cs
│   │   │   ├── SpecializedMethod.cs
│   │   │   ├── SpecializedParameter.cs
│   │   │   ├── SpecializedProperty.cs
│   │   │   ├── SyntheticRangeIndexer.cs
│   │   │   ├── ThreeState.cs
│   │   │   ├── TypeParameterReference.cs
│   │   │   ├── TypeWithElementType.cs
│   │   │   └── UnknownType.cs
│   │   ├── InheritanceHelper.cs
│   │   ├── IntersectionType.cs
│   │   ├── KnownTypeReference.cs
│   │   ├── MetadataModule.cs
│   │   ├── ModifiedType.cs
│   │   ├── NormalizeTypeVisitor.cs
│   │   ├── Nullability.cs
│   │   ├── NullableType.cs
│   │   ├── ParameterListComparer.cs
│   │   ├── ParameterizedType.cs
│   │   ├── PointerType.cs
│   │   ├── ReferenceResolvingException.cs
│   │   ├── ReflectionHelper.cs
│   │   ├── ReflectionNameParseException.cs
│   │   ├── SimpleTypeResolveContext.cs
│   │   ├── SpecialType.cs
│   │   ├── TaskType.cs
│   │   ├── TopLevelTypeName.cs
│   │   ├── TupleType.cs
│   │   ├── TypeKind.cs
│   │   ├── TypeParameterSubstitution.cs
│   │   ├── TypeProvider.cs
│   │   ├── TypeSystemExtensions.cs
│   │   ├── TypeUtils.cs
│   │   ├── TypeVisitor.cs
│   │   └── VarArgInstanceMethod.cs
│   ├── Util/
│   │   ├── BitOperations.cs
│   │   ├── BitSet.cs
│   │   ├── BusyManager.cs
│   │   ├── CSharpPrimitiveCast.cs
│   │   ├── CacheManager.cs
│   │   ├── CallbackOnDispose.cs
│   │   ├── CollectionExtensions.cs
│   │   ├── DelegateComparer.cs
│   │   ├── EmptyList.cs
│   │   ├── ExtensionMethods.cs
│   │   ├── FileUtility.cs
│   │   ├── GraphTraversal.cs
│   │   ├── Index.cs
│   │   ├── Interval.cs
│   │   ├── KeyComparer.cs
│   │   ├── LazyInit.cs
│   │   ├── LongDict.cs
│   │   ├── LongSet.cs
│   │   ├── MultiDictionary.cs
│   │   ├── Platform.cs
│   │   ├── ProjectedList.cs
│   │   ├── ReferenceComparer.cs
│   │   ├── ResXResourceWriter.cs
│   │   ├── ResourcesFile.cs
│   │   ├── TreeTraversal.cs
│   │   ├── UnicodeNewline.cs
│   │   ├── UnionFind.cs
│   │   └── Win32Resources.cs
│   └── packages.lock.json
├── ICSharpCode.Decompiler.PowerShell/
│   ├── Demo.ps1
│   ├── ErrorIds.cs
│   ├── GetDecompiledProjectCmdlet.cs
│   ├── GetDecompiledSourceCmdlet.cs
│   ├── GetDecompiledTypesCmdlet.cs
│   ├── GetDecompilerCmdlet.cs
│   ├── GetDecompilerVersion.cs
│   ├── GetTargetFramework.cs
│   ├── ICSharpCode.Decompiler.PowerShell.csproj
│   ├── NullAttributes.cs
│   ├── README.md
│   ├── TypesParser.cs
│   └── manifest.psd1
├── ICSharpCode.Decompiler.TestRunner/
│   ├── ICSharpCode.Decompiler.TestRunner.csproj
│   └── Program.cs
├── ICSharpCode.Decompiler.Tests/
│   ├── .editorconfig
│   ├── CorrectnessTestRunner.cs
│   ├── DataFlowTest.cs
│   ├── DisassemblerPrettyTestRunner.cs
│   ├── Helpers/
│   │   ├── CodeAssert.cs
│   │   ├── RemoveCompilerAttribute.cs
│   │   ├── RoslynToolset.cs
│   │   ├── SdkUtility.cs
│   │   ├── Tester.VB.cs
│   │   ├── Tester.cs
│   │   └── TestsAssemblyOutput.cs
│   ├── ICSharpCode.Decompiler.Tests.csproj
│   ├── ILPrettyTestRunner.cs
│   ├── Output/
│   │   ├── CSharpAmbienceTests.cs
│   │   ├── ILAmbienceTests.cs
│   │   └── InsertParenthesesVisitorTests.cs
│   ├── PdbGenerationTestRunner.cs
│   ├── PrettyTestRunner.cs
│   ├── ProjectDecompiler/
│   │   ├── TargetFrameworkTests.cs
│   │   └── WholeProjectDecompilerTests.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── RoundtripAssembly.cs
│   ├── Semantics/
│   │   ├── ConversionTests.cs
│   │   ├── ExplicitConversionTest.cs
│   │   └── OverloadResolutionTests.cs
│   ├── TestAssemblyResolver.cs
│   ├── TestCases/
│   │   ├── Correctness/
│   │   │   ├── Async.cs
│   │   │   ├── BitNot.il
│   │   │   ├── Capturing.cs
│   │   │   ├── ComInterop.cs
│   │   │   ├── Comparisons.cs
│   │   │   ├── CompoundAssignment.cs
│   │   │   ├── ConditionalAttr.cs
│   │   │   ├── ControlFlow.cs
│   │   │   ├── Conversions.cs
│   │   │   ├── DecimalFields.cs
│   │   │   ├── DeconstructionTests.cs
│   │   │   ├── DynamicTests.cs
│   │   │   ├── ExpressionTrees.cs
│   │   │   ├── FloatingPointArithmetic.cs
│   │   │   ├── Generics.cs
│   │   │   ├── HelloWorld.cs
│   │   │   ├── InitializerTests.cs
│   │   │   ├── Jmp.il
│   │   │   ├── LINQRaytracer.cs
│   │   │   ├── Loops.cs
│   │   │   ├── MemberLookup.cs
│   │   │   ├── MiniJSON.cs
│   │   │   ├── NonGenericConstrainedCallVirt.il
│   │   │   ├── NullPropagation.cs
│   │   │   ├── NullableTests.cs
│   │   │   ├── OverloadResolution.cs
│   │   │   ├── PropertiesAndEvents.cs
│   │   │   ├── Readme.txt
│   │   │   ├── StackTests.il
│   │   │   ├── StackTypes.il
│   │   │   ├── StringConcat.cs
│   │   │   ├── Switch.cs
│   │   │   ├── TrickyTypes.cs
│   │   │   ├── UndocumentedExpressions.cs
│   │   │   ├── Uninit.vb
│   │   │   ├── UnsafeCode.cs
│   │   │   ├── Using.cs
│   │   │   ├── ValueTypeCall.cs
│   │   │   └── YieldReturn.cs
│   │   ├── Disassembler/
│   │   │   └── Pretty/
│   │   │       ├── .gitignore
│   │   │       ├── GenericConstraints.il
│   │   │       ├── InterfaceImplAttributes.il
│   │   │       ├── SecurityDeclarations.il
│   │   │       ├── SortMembers.expected.il
│   │   │       └── SortMembers.il
│   │   ├── ILPretty/
│   │   │   ├── .gitignore
│   │   │   ├── CS1xSwitch_Debug.cs
│   │   │   ├── CS1xSwitch_Debug.il
│   │   │   ├── CS1xSwitch_Release.cs
│   │   │   ├── CS1xSwitch_Release.il
│   │   │   ├── CallIndirect.cs
│   │   │   ├── CallIndirect.il
│   │   │   ├── ConstantBlobs.cs
│   │   │   ├── ConstantBlobs.il
│   │   │   ├── DirectCallToExplicitInterfaceImpl.cs
│   │   │   ├── DirectCallToExplicitInterfaceImpl.il
│   │   │   ├── EmptyBodies.cs
│   │   │   ├── EmptyBodies.il
│   │   │   ├── EvalOrder.cs
│   │   │   ├── EvalOrder.il
│   │   │   ├── ExtensionEncodingV1.cs
│   │   │   ├── ExtensionEncodingV1.il
│   │   │   ├── ExtensionEncodingV2.cs
│   │   │   ├── ExtensionEncodingV2.il
│   │   │   ├── FSharpLoops.fs
│   │   │   ├── FSharpLoops_Debug.cs
│   │   │   ├── FSharpLoops_Debug.il
│   │   │   ├── FSharpLoops_Release.cs
│   │   │   ├── FSharpLoops_Release.il
│   │   │   ├── FSharpUsing.fs
│   │   │   ├── FSharpUsing_Debug.cs
│   │   │   ├── FSharpUsing_Debug.il
│   │   │   ├── FSharpUsing_Release.cs
│   │   │   ├── FSharpUsing_Release.il
│   │   │   ├── GuessAccessors.cs
│   │   │   ├── GuessAccessors.il
│   │   │   ├── Issue1038.cs
│   │   │   ├── Issue1038.il
│   │   │   ├── Issue1047.cs
│   │   │   ├── Issue1047.il
│   │   │   ├── Issue1145.cs
│   │   │   ├── Issue1145.il
│   │   │   ├── Issue1157.cs
│   │   │   ├── Issue1157.il
│   │   │   ├── Issue1256.cs
│   │   │   ├── Issue1256.il
│   │   │   ├── Issue1323.cs
│   │   │   ├── Issue1323.il
│   │   │   ├── Issue1325.cs
│   │   │   ├── Issue1325.il
│   │   │   ├── Issue1325.vb
│   │   │   ├── Issue1389.cs
│   │   │   ├── Issue1389.il
│   │   │   ├── Issue1454.cs
│   │   │   ├── Issue1454.il
│   │   │   ├── Issue1681.cs
│   │   │   ├── Issue1681.il
│   │   │   ├── Issue1918.cs
│   │   │   ├── Issue1918.il
│   │   │   ├── Issue1922.cs
│   │   │   ├── Issue1922.il
│   │   │   ├── Issue2104.cs
│   │   │   ├── Issue2104.il
│   │   │   ├── Issue2260SwitchString.cs
│   │   │   ├── Issue2260SwitchString.il
│   │   │   ├── Issue2443.cs
│   │   │   ├── Issue2443.il
│   │   │   ├── Issue3344CkFinite.cs
│   │   │   ├── Issue3344CkFinite.il
│   │   │   ├── Issue3421.cs
│   │   │   ├── Issue3421.il
│   │   │   ├── Issue3442.cs
│   │   │   ├── Issue3442.il
│   │   │   ├── Issue3465.cs
│   │   │   ├── Issue3465.il
│   │   │   ├── Issue3466.cs
│   │   │   ├── Issue3466.il
│   │   │   ├── Issue3504.cs
│   │   │   ├── Issue3504.il
│   │   │   ├── Issue3524.cs
│   │   │   ├── Issue3524.il
│   │   │   ├── Issue3552.cs
│   │   │   ├── Issue3552.il
│   │   │   ├── Issue379.cs
│   │   │   ├── Issue379.il
│   │   │   ├── Issue646.cs
│   │   │   ├── Issue646.il
│   │   │   ├── Issue684.cs
│   │   │   ├── Issue684.il
│   │   │   ├── Issue959.cs
│   │   │   ├── Issue959.il
│   │   │   ├── Issue982.cs
│   │   │   ├── Issue982.il
│   │   │   ├── MonoFixed.cs
│   │   │   ├── MonoFixed.il
│   │   │   ├── SequenceOfNestedIfs.cs
│   │   │   ├── SequenceOfNestedIfs.il
│   │   │   ├── UnknownTypes.cs
│   │   │   ├── UnknownTypes.il
│   │   │   ├── Unsafe.cs
│   │   │   ├── Unsafe.il
│   │   │   ├── WeirdEnums.cs
│   │   │   └── WeirdEnums.il
│   │   ├── PdbGen/
│   │   │   ├── .gitignore
│   │   │   ├── CustomPdbId.xml
│   │   │   ├── ForLoopTests.xml
│   │   │   ├── HelloWorld.xml
│   │   │   ├── LambdaCapturing.xml
│   │   │   ├── Members.xml
│   │   │   └── ProgressReporting.xml
│   │   ├── Pretty/
│   │   │   ├── .gitignore
│   │   │   ├── AnonymousTypes.cs
│   │   │   ├── AssemblyCustomAttributes.cs
│   │   │   ├── Async.cs
│   │   │   ├── AsyncForeach.cs
│   │   │   ├── AsyncMain.cs
│   │   │   ├── AsyncStreams.cs
│   │   │   ├── AsyncUsing.cs
│   │   │   ├── AutoProperties.cs
│   │   │   ├── CS72_PrivateProtected.cs
│   │   │   ├── CS73_StackAllocInitializers.cs
│   │   │   ├── CS9_ExtensionGetEnumerator.cs
│   │   │   ├── CheckedUnchecked.cs
│   │   │   ├── Comparisons.cs
│   │   │   ├── CompoundAssignmentTest.cs
│   │   │   ├── ConstantsTests.cs
│   │   │   ├── ConstructorInitializers.cs
│   │   │   ├── CovariantReturns.cs
│   │   │   ├── CustomAttributeConflicts.cs
│   │   │   ├── CustomAttributeSamples.cs
│   │   │   ├── CustomAttributes.cs
│   │   │   ├── CustomAttributes2.cs
│   │   │   ├── CustomShortCircuitOperators.cs
│   │   │   ├── CustomTaskType.cs
│   │   │   ├── DeconstructionTests.cs
│   │   │   ├── DelegateConstruction.cs
│   │   │   ├── Discards.cs
│   │   │   ├── DynamicTests.cs
│   │   │   ├── EnumTests.cs
│   │   │   ├── ExceptionHandling.cs
│   │   │   ├── ExpandParamsArgumentsDisabled.cs
│   │   │   ├── ExpressionTrees.cs
│   │   │   ├── ExtensionProperties.cs
│   │   │   ├── FileScopedNamespaces.cs
│   │   │   ├── FixProxyCalls.cs
│   │   │   ├── FunctionPointers.cs
│   │   │   ├── Generics.cs
│   │   │   ├── GloballyQualifiedTypeInStringInterpolation.cs
│   │   │   ├── HelloWorld.cs
│   │   │   ├── IndexRangeTest.cs
│   │   │   ├── InitializerTests.cs
│   │   │   ├── InlineArrayTests.cs
│   │   │   ├── InlineAssignmentTest.cs
│   │   │   ├── InterfaceTests.cs
│   │   │   ├── Issue1080.cs
│   │   │   ├── Issue3406.cs
│   │   │   ├── Issue3439.cs
│   │   │   ├── Issue3442.cs
│   │   │   ├── Issue3452.cs
│   │   │   ├── Issue3483.cs
│   │   │   ├── Issue3541.cs
│   │   │   ├── Issue3571_A.cs
│   │   │   ├── Issue3571_B.cs
│   │   │   ├── Issue3571_C.cs
│   │   │   ├── Issue3576.cs
│   │   │   ├── Issue3584.cs
│   │   │   ├── Issue3598.cs
│   │   │   ├── Issue3610.cs
│   │   │   ├── Issue3611.cs
│   │   │   ├── LiftedOperators.cs
│   │   │   ├── LocalFunctions.cs
│   │   │   ├── Lock.cs
│   │   │   ├── Loops.cs
│   │   │   ├── MemberTests.cs
│   │   │   ├── MetadataAttributes.cs
│   │   │   ├── MultidimensionalArray.cs
│   │   │   ├── NamedArguments.cs
│   │   │   ├── NativeInts.cs
│   │   │   ├── NullPropagation.cs
│   │   │   ├── NullableRefTypes.cs
│   │   │   ├── Operators.cs
│   │   │   ├── OptionalArguments.cs
│   │   │   ├── OptionalArgumentsDisabled.cs
│   │   │   ├── OutVariables.cs
│   │   │   ├── PInvoke.cs
│   │   │   ├── ParamsCollections.cs
│   │   │   ├── PatternMatching.cs
│   │   │   ├── PointerArithmetic.cs
│   │   │   ├── PropertiesAndEvents.cs
│   │   │   ├── QualifierTests.cs
│   │   │   ├── QueryExpressions.cs
│   │   │   ├── Readme.txt
│   │   │   ├── Records.cs
│   │   │   ├── ReduceNesting.cs
│   │   │   ├── RefFields.cs
│   │   │   ├── RefLocalsAndReturns.cs
│   │   │   ├── ShortCircuit.cs
│   │   │   ├── StaticAbstractInterfaceMembers.cs
│   │   │   ├── StringInterpolation.cs
│   │   │   ├── Structs.cs
│   │   │   ├── Switch.cs
│   │   │   ├── SwitchExpressions.cs
│   │   │   ├── ThrowExpressions.cs
│   │   │   ├── TupleTests.cs
│   │   │   ├── TypeAnalysisTests.cs
│   │   │   ├── TypeMemberTests.cs
│   │   │   ├── UnsafeCode.cs
│   │   │   ├── UserDefinedConversions.cs
│   │   │   ├── Using.cs
│   │   │   ├── UsingVariables.cs
│   │   │   ├── ValueTypes.cs
│   │   │   ├── VariableNaming.cs
│   │   │   ├── VariableNamingWithoutSymbols.cs
│   │   │   ├── WellKnownConstants.cs
│   │   │   └── YieldReturn.cs
│   │   ├── Ugly/
│   │   │   ├── .gitignore
│   │   │   ├── AggressiveScalarReplacementOfAggregates.Expected.cs
│   │   │   ├── AggressiveScalarReplacementOfAggregates.cs
│   │   │   ├── AggressiveScalarReplacementOfAggregates.net40.roslyn.il
│   │   │   ├── AggressiveScalarReplacementOfAggregates.opt.net40.roslyn.il
│   │   │   ├── AggressiveScalarReplacementOfAggregates.opt.roslyn.il
│   │   │   ├── AggressiveScalarReplacementOfAggregates.roslyn.il
│   │   │   ├── NoArrayInitializers.Expected.cs
│   │   │   ├── NoArrayInitializers.cs
│   │   │   ├── NoArrayInitializers.net40.roslyn.il
│   │   │   ├── NoArrayInitializers.opt.net40.roslyn.il
│   │   │   ├── NoArrayInitializers.opt.roslyn.il
│   │   │   ├── NoArrayInitializers.roslyn.il
│   │   │   ├── NoDecimalConstants.Expected.cs
│   │   │   ├── NoDecimalConstants.cs
│   │   │   ├── NoDecimalConstants.net40.roslyn.il
│   │   │   ├── NoDecimalConstants.opt.net40.roslyn.il
│   │   │   ├── NoDecimalConstants.opt.roslyn.il
│   │   │   ├── NoDecimalConstants.roslyn.il
│   │   │   ├── NoExtensionMethods.Expected.cs
│   │   │   ├── NoExtensionMethods.cs
│   │   │   ├── NoExtensionMethods.net40.roslyn.il
│   │   │   ├── NoExtensionMethods.opt.net40.roslyn.il
│   │   │   ├── NoExtensionMethods.opt.roslyn.il
│   │   │   ├── NoExtensionMethods.roslyn.il
│   │   │   ├── NoForEachStatement.Expected.cs
│   │   │   ├── NoForEachStatement.cs
│   │   │   ├── NoForEachStatement.il
│   │   │   ├── NoForEachStatement.net40.roslyn.il
│   │   │   ├── NoForEachStatement.opt.il
│   │   │   ├── NoForEachStatement.opt.net40.roslyn.il
│   │   │   ├── NoForEachStatement.opt.roslyn.il
│   │   │   ├── NoForEachStatement.roslyn.il
│   │   │   ├── NoLocalFunctions.Expected.cs
│   │   │   ├── NoLocalFunctions.cs
│   │   │   ├── NoLocalFunctions.net40.roslyn.il
│   │   │   ├── NoLocalFunctions.opt.net40.roslyn.il
│   │   │   ├── NoLocalFunctions.opt.roslyn.il
│   │   │   ├── NoLocalFunctions.roslyn.il
│   │   │   ├── NoNewOfT.Expected.cs
│   │   │   ├── NoNewOfT.cs
│   │   │   ├── NoNewOfT.il
│   │   │   ├── NoNewOfT.net40.roslyn.il
│   │   │   ├── NoNewOfT.opt.il
│   │   │   ├── NoNewOfT.opt.net40.roslyn.il
│   │   │   ├── NoNewOfT.opt.roslyn.il
│   │   │   ├── NoNewOfT.roslyn.il
│   │   │   ├── NoPropertiesAndEvents.Expected.cs
│   │   │   ├── NoPropertiesAndEvents.cs
│   │   │   ├── NoPropertiesAndEvents.il
│   │   │   ├── NoPropertiesAndEvents.net40.roslyn.il
│   │   │   ├── NoPropertiesAndEvents.opt.il
│   │   │   ├── NoPropertiesAndEvents.opt.net40.roslyn.il
│   │   │   ├── NoPropertiesAndEvents.opt.roslyn.il
│   │   │   └── NoPropertiesAndEvents.roslyn.il
│   │   └── VBPretty/
│   │       ├── .gitignore
│   │       ├── Async.cs
│   │       ├── Async.vb
│   │       ├── Issue1906.cs
│   │       ├── Issue1906.vb
│   │       ├── Issue2192.cs
│   │       ├── Issue2192.vb
│   │       ├── Select.cs
│   │       ├── Select.vb
│   │       ├── VBAutomaticEvents.cs
│   │       ├── VBAutomaticEvents.vb
│   │       ├── VBCompoundAssign.cs
│   │       ├── VBCompoundAssign.vb
│   │       ├── VBNonGenericForEach.cs
│   │       ├── VBNonGenericForEach.vb
│   │       ├── VBPropertiesTest.cs
│   │       ├── VBPropertiesTest.vb
│   │       ├── YieldReturn.cs
│   │       └── YieldReturn.vb
│   ├── TestTraceListener.cs
│   ├── TypeSystem/
│   │   ├── ReflectionHelperTests.cs
│   │   ├── TypeSystemLoaderTests.cs
│   │   └── TypeSystemTestCase.cs
│   ├── UglyTestRunner.cs
│   ├── Util/
│   │   ├── BitSetTests.cs
│   │   ├── FileUtilityTests.cs
│   │   ├── IntervalTests.cs
│   │   └── LongSetTests.cs
│   └── VBPrettyTestRunner.cs
├── ICSharpCode.ILSpyCmd/
│   ├── AsContainer/
│   │   ├── Dockerfile
│   │   ├── DockerfileForAutomation
│   │   └── README.md
│   ├── DotNetToolUpdateChecker.cs
│   ├── ICSharpCode.ILSpyCmd.csproj
│   ├── IlspyCmdProgram.cs
│   ├── ProgramExitCodes.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   └── launchSettings.json
│   ├── README.md
│   ├── TypesParser.cs
│   ├── ValidationAttributes.cs
│   └── packages.lock.json
├── ICSharpCode.ILSpyX/
│   ├── Abstractions/
│   │   ├── ILanguage.cs
│   │   └── ITreeNode.cs
│   ├── Analyzers/
│   │   ├── AnalyzerContext.cs
│   │   ├── AnalyzerHelpers.cs
│   │   ├── AnalyzerScope.cs
│   │   ├── Builtin/
│   │   │   ├── AttributeAppliedToAnalyzer.cs
│   │   │   ├── EventImplementedByAnalyzer.cs
│   │   │   ├── EventOverriddenByAnalyzer.cs
│   │   │   ├── FieldAccessAnalyzer.cs
│   │   │   ├── FindTypeInAttributeDecoder.cs
│   │   │   ├── MemberImplementsInterfaceAnalyzer.cs
│   │   │   ├── MethodImplementedByAnalyzer.cs
│   │   │   ├── MethodOverriddenByAnalyzer.cs
│   │   │   ├── MethodUsedByAnalyzer.cs
│   │   │   ├── MethodUsesAnalyzer.cs
│   │   │   ├── MethodVirtualUsedByAnalyzer.cs
│   │   │   ├── PropertyImplementedByAnalyzer.cs
│   │   │   ├── PropertyOverriddenByAnalyzer.cs
│   │   │   ├── TypeExposedByAnalyzer.cs
│   │   │   ├── TypeExtensionMethodsAnalyzer.cs
│   │   │   ├── TypeInstantiatedByAnalyzer.cs
│   │   │   └── TypeUsedByAnalyzer.cs
│   │   ├── ExportAnalyzerAttribute.cs
│   │   └── IAnalyzer.cs
│   ├── ApiVisibility.cs
│   ├── AssemblyList.cs
│   ├── AssemblyListManager.cs
│   ├── AssemblyListSnapshot.cs
│   ├── Extensions/
│   │   └── CollectionExtensions.cs
│   ├── FileLoaders/
│   │   ├── ArchiveFileLoader.cs
│   │   ├── BundleFileLoader.cs
│   │   ├── FileLoaderRegistry.cs
│   │   ├── LoadResult.cs
│   │   ├── MetadataFileLoader.cs
│   │   ├── PEFileLoader.cs
│   │   ├── WebCilFileLoader.cs
│   │   └── XamarinCompressedFileLoader.cs
│   ├── ICSharpCode.ILSpyX.csproj
│   ├── LanguageVersion.cs
│   ├── LoadedAssembly.cs
│   ├── LoadedAssemblyExtensions.cs
│   ├── LoadedPackage.cs
│   ├── MermaidDiagrammer/
│   │   ├── ClassDiagrammer.cs
│   │   ├── ClassDiagrammerFactory.cs
│   │   ├── EmbeddedResource.cs
│   │   ├── Extensions/
│   │   │   ├── StringExtensions.cs
│   │   │   └── TypeExtensions.cs
│   │   ├── Factory.BuildTypes.cs
│   │   ├── Factory.FlatMembers.cs
│   │   ├── Factory.Relationships.cs
│   │   ├── Factory.TypeIds.cs
│   │   ├── Factory.TypeNames.cs
│   │   ├── GenerateHtmlDiagrammer.cs
│   │   ├── Generator.Run.cs
│   │   ├── ReadMe.md
│   │   ├── XmlDocumentationFormatter.cs
│   │   └── html/
│   │       ├── .eslintrc.js
│   │       ├── .gitignore
│   │       ├── README.txt
│   │       ├── gulpfile.js
│   │       ├── package.json
│   │       ├── script.js
│   │       ├── styles.css
│   │       ├── styles.less
│   │       └── template.html
│   ├── PackageReadme.md
│   ├── PdbProvider/
│   │   ├── DebugInfoUtils.cs
│   │   ├── MonoCecilDebugInfoProvider.cs
│   │   └── PortableDebugInfoProvider.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Search/
│   │   ├── AbstractEntitySearchStrategy.cs
│   │   ├── AbstractSearchStrategy.cs
│   │   ├── AssemblySearchStrategy.cs
│   │   ├── CSharpLexer.cs
│   │   ├── LiteralSearchStrategy.cs
│   │   ├── MemberSearchStrategy.cs
│   │   ├── MetadataTokenSearchStrategy.cs
│   │   ├── NamespaceSearchStrategy.cs
│   │   ├── ResourceSearchStrategy.cs
│   │   └── SearchResult.cs
│   ├── Settings/
│   │   ├── DecompilerSettings.cs
│   │   ├── DefaultSettingsFilePathProvider.cs
│   │   ├── ILSpySettings.cs
│   │   ├── ISettingsFilePathProvider.cs
│   │   ├── ISettingsProvider.cs
│   │   └── SettingsServiceBase.cs
│   ├── TreeView/
│   │   ├── FlatListTreeNode.cs
│   │   ├── PlatformAbstractions/
│   │   │   ├── IPlatformDataObject.cs
│   │   │   ├── IPlatformDragDrop.cs
│   │   │   ├── IPlatformDragEventArgs.cs
│   │   │   ├── IPlatformRoutedEventArgs.cs
│   │   │   ├── ITreeNodeImagesProvider.cs
│   │   │   └── XPlatDragDropEffects.cs
│   │   ├── SharpTreeNode.cs
│   │   ├── SharpTreeNodeCollection.cs
│   │   ├── TreeFlattener.cs
│   │   └── TreeTraversal.cs
│   └── packages.lock.json
├── ILSpy/
│   ├── AboutPage.cs
│   ├── Analyzers/
│   │   ├── AnalyzeCommand.cs
│   │   ├── AnalyzerEntityTreeNode.cs
│   │   ├── AnalyzerRootNode.cs
│   │   ├── AnalyzerSearchTreeNode.cs
│   │   ├── AnalyzerTreeNode.cs
│   │   ├── AnalyzerTreeView.xaml
│   │   ├── AnalyzerTreeView.xaml.cs
│   │   ├── AnalyzerTreeViewModel.cs
│   │   ├── CopyAnalysisResultsContextMenuEntry.cs
│   │   ├── RemoveAnalyzeContextMenuEntry.cs
│   │   └── TreeNodes/
│   │       ├── AnalyzedAccessorTreeNode.cs
│   │       ├── AnalyzedEventTreeNode.cs
│   │       ├── AnalyzedFieldTreeNode.cs
│   │       ├── AnalyzedMethodTreeNode.cs
│   │       ├── AnalyzedModuleTreeNode.cs
│   │       ├── AnalyzedPropertyTreeNode.cs
│   │       └── AnalyzedTypeTreeNode.cs
│   ├── App.xaml
│   ├── App.xaml.cs
│   ├── AppEnv/
│   │   ├── AppEnvironment.cs
│   │   ├── CommandLineArguments.cs
│   │   ├── CommandLineTools.cs
│   │   └── SingleInstance.cs
│   ├── AssemblyTree/
│   │   ├── AssemblyListPane.xaml
│   │   ├── AssemblyListPane.xaml.cs
│   │   └── AssemblyTreeModel.cs
│   ├── AvalonEdit/
│   │   ├── ITextMarker.cs
│   │   └── TextMarkerService.cs
│   ├── Commands/
│   │   ├── BrowseBackCommand.cs
│   │   ├── BrowseForwardCommand.cs
│   │   ├── CheckForUpdatesCommand.cs
│   │   ├── CommandWrapper.cs
│   │   ├── CompareContextMenuEntry.cs
│   │   ├── CopyFullyQualifiedNameContextMenuEntry.cs
│   │   ├── CreateDiagramContextMenuEntry.cs
│   │   ├── DecompileAllCommand.cs
│   │   ├── DecompileCommand.cs
│   │   ├── DecompileInNewViewCommand.cs
│   │   ├── DelegateCommand.cs
│   │   ├── DisassembleAllCommand.cs
│   │   ├── ExitCommand.cs
│   │   ├── ExportCommandAttribute.cs
│   │   ├── ExtractPackageEntryContextMenuEntry.cs
│   │   ├── GeneratePdbContextMenuEntry.cs
│   │   ├── IProtocolHandler.cs
│   │   ├── ManageAssemblyListsCommand.cs
│   │   ├── OpenCommand.cs
│   │   ├── OpenFromGacCommand.cs
│   │   ├── Pdb2XmlCommand.cs
│   │   ├── RefreshCommand.cs
│   │   ├── RemoveAssembliesWithLoadErrors.cs
│   │   ├── SaveCodeContextMenuEntry.cs
│   │   ├── SaveCommand.cs
│   │   ├── ScopeSearchToAssembly.cs
│   │   ├── ScopeSearchToNamespace.cs
│   │   ├── SearchMsdnContextMenuEntry.cs
│   │   ├── SelectPdbContextMenuEntry.cs
│   │   ├── SetThemeCommand.cs
│   │   ├── ShowCFGContextMenuEntry.cs
│   │   ├── ShowPane.cs
│   │   ├── SimpleCommand.cs
│   │   └── SortAssemblyListCommand.cs
│   ├── ContextMenuEntry.cs
│   ├── Controls/
│   │   ├── CollapsiblePanel.cs
│   │   ├── CultureSelectionConverter.cs
│   │   ├── CustomDialog.cs
│   │   ├── ExtensionMethods.cs
│   │   ├── GridViewColumnAutoSize.cs
│   │   ├── MainMenu.xaml
│   │   ├── MainMenu.xaml.cs
│   │   ├── MainToolBar.xaml
│   │   ├── MainToolBar.xaml.cs
│   │   ├── MarkupExtensions.cs
│   │   ├── ResourceObjectTable.xaml
│   │   ├── ResourceObjectTable.xaml.cs
│   │   ├── ResourceStringTable.xaml
│   │   ├── ResourceStringTable.xaml.cs
│   │   ├── SearchBox.cs
│   │   ├── SearchBoxStyle.xaml
│   │   ├── SortableGridViewColumn.cs
│   │   ├── TreeView/
│   │   │   ├── EditTextBox.cs
│   │   │   ├── ExtensionMethods.cs
│   │   │   ├── GeneralAdorner.cs
│   │   │   ├── InsertMarker.cs
│   │   │   ├── LinesRenderer.cs
│   │   │   ├── SharpGridView.cs
│   │   │   ├── SharpTreeNodeView.cs
│   │   │   ├── SharpTreeView.cs
│   │   │   ├── SharpTreeView.xaml
│   │   │   ├── SharpTreeViewAutomationPeer.cs
│   │   │   ├── SharpTreeViewItem.cs
│   │   │   ├── SharpTreeViewItemAutomationPeer.cs
│   │   │   ├── SharpTreeViewTextSearch.cs
│   │   │   ├── WpfWindowsDataObject.cs
│   │   │   ├── WpfWindowsDragDropManager.cs
│   │   │   ├── WpfWindowsDragEventArgs.cs
│   │   │   └── WpfWindowsRoutedEventArgs.cs
│   │   ├── XamlResourceExtension.cs
│   │   ├── ZoomButtons.cs
│   │   ├── ZoomScrollViewer.cs
│   │   └── ZoomScrollViewer.xaml
│   ├── DecompilationOptions.cs
│   ├── Docking/
│   │   ├── CloseAllDocumentsCommand.cs
│   │   ├── DockLayoutSettings.cs
│   │   ├── DockWorkspace.cs
│   │   ├── PaneStyleSelector.cs
│   │   └── TabPageGuardConverter.cs
│   ├── EntityReference.cs
│   ├── ExtensionMethods.cs
│   ├── GlobalUsings.cs
│   ├── GuessFileType.cs
│   ├── ILSpy.csproj
│   ├── ILSpySettingsFilePathProvider.cs
│   ├── ILSpyTraceListener.cs
│   ├── ISmartTextOutput.cs
│   ├── Images/
│   │   ├── AccessOverlayIcon.cs
│   │   ├── Assembly.xaml
│   │   ├── AssemblyList.xaml
│   │   ├── AssemblyListGAC.xaml
│   │   ├── AssemblyLoading.xaml
│   │   ├── AssemblyWarning.xaml
│   │   ├── Back.xaml
│   │   ├── Class.xaml
│   │   ├── Close.xaml
│   │   ├── CollapseAll.xaml
│   │   ├── Constructor.xaml
│   │   ├── Copy.xaml
│   │   ├── Delegate.xaml
│   │   ├── Delete.xaml
│   │   ├── DictionaryContain.xaml
│   │   ├── Enum.xaml
│   │   ├── EnumValue.xaml
│   │   ├── Event.xaml
│   │   ├── ExpandAll.xaml
│   │   ├── ExportOverlay.xaml
│   │   ├── ExtensionMethod.xaml
│   │   ├── Field.xaml
│   │   ├── FieldReadOnly.xaml
│   │   ├── FindAssembly.xaml
│   │   ├── Folder.Closed.xaml
│   │   ├── Folder.Open.xaml
│   │   ├── Forward.xaml
│   │   ├── Header.xaml
│   │   ├── Heap.xaml
│   │   ├── ILSpy.pdn
│   │   ├── Images.cs
│   │   ├── Indexer.xaml
│   │   ├── Interface.xaml
│   │   ├── Library.xaml
│   │   ├── ListFolder.Open.xaml
│   │   ├── ListFolder.xaml
│   │   ├── Literal.xaml
│   │   ├── MemberIcon.cs
│   │   ├── Metadata.xaml
│   │   ├── MetadataFile.xaml
│   │   ├── MetadataTable.xaml
│   │   ├── MetadataTableGroup.xaml
│   │   ├── Method.xaml
│   │   ├── Namespace.xaml
│   │   ├── OK.xaml
│   │   ├── Open.xaml
│   │   ├── Operator.xaml
│   │   ├── OverlayCompilerControlled.xaml
│   │   ├── OverlayInternal.xaml
│   │   ├── OverlayPrivate.xaml
│   │   ├── OverlayPrivateProtected.xaml
│   │   ├── OverlayProtected.xaml
│   │   ├── OverlayProtectedInternal.xaml
│   │   ├── OverlayStatic.xaml
│   │   ├── PInvokeMethod.xaml
│   │   ├── ProgramDebugDatabase.xaml
│   │   ├── Property.xaml
│   │   ├── README.md
│   │   ├── ReferenceFolder.xaml
│   │   ├── ReferenceOverlay.xaml
│   │   ├── Refresh.xaml
│   │   ├── Resource.xaml
│   │   ├── ResourceImage.xaml
│   │   ├── ResourceResourcesFile.xaml
│   │   ├── ResourceXml.xaml
│   │   ├── ResourceXsd.xaml
│   │   ├── ResourceXsl.xaml
│   │   ├── ResourceXslt.xaml
│   │   ├── ResultToJSON.xaml
│   │   ├── Save.xaml
│   │   ├── Search.xaml
│   │   ├── SearchMsdn.xaml
│   │   ├── ShowAll.xaml
│   │   ├── ShowPrivateInternal.xaml
│   │   ├── ShowPublicOnly.xaml
│   │   ├── Sort.xaml
│   │   ├── Struct.xaml
│   │   ├── SubTypes.xaml
│   │   ├── SuperTypes.xaml
│   │   ├── SwitchSourceOrTarget.xaml
│   │   ├── TypeIcon.cs
│   │   ├── ViewCode.xaml
│   │   ├── VirtualMethod.xaml
│   │   ├── Warning.xaml
│   │   ├── WebAssembly.xaml
│   │   ├── WpfWindowsTreeNodeImagesProvider.cs
│   │   ├── ZoomIn.xaml
│   │   └── ZoomOut.xaml
│   ├── LanguageSettings.cs
│   ├── Languages/
│   │   ├── CSharpBracketSearcher.cs
│   │   ├── CSharpHighlightingTokenWriter.cs
│   │   ├── CSharpILMixedLanguage.cs
│   │   ├── CSharpLanguage.cs
│   │   ├── ILAstLanguage.cs
│   │   ├── ILLanguage.cs
│   │   ├── IResourceFileHandler.cs
│   │   ├── Language.cs
│   │   └── LanguageService.cs
│   ├── MainWindow.xaml
│   ├── MainWindow.xaml.cs
│   ├── MainWindowViewModel.cs
│   ├── Metadata/
│   │   ├── CoffHeaderTreeNode.cs
│   │   ├── CorTables/
│   │   │   ├── AssemblyRefTableTreeNode.cs
│   │   │   ├── AssemblyTableTreeNode.cs
│   │   │   ├── ClassLayoutTableTreeNode.cs
│   │   │   ├── ConstantTableTreeNode.cs
│   │   │   ├── CustomAttributeTableTreeNode.cs
│   │   │   ├── DeclSecurityTableTreeNode.cs
│   │   │   ├── EventMapTableTreeNode.cs
│   │   │   ├── EventTableTreeNode.cs
│   │   │   ├── ExportedTypeTableTreeNode.cs
│   │   │   ├── FieldLayoutTableTreeNode.cs
│   │   │   ├── FieldMarshalTableTreeNode.cs
│   │   │   ├── FieldRVATableTreeNode.cs
│   │   │   ├── FieldTableTreeNode.cs
│   │   │   ├── FileTableTreeNode.cs
│   │   │   ├── GenericParamConstraintTableTreeNode.cs
│   │   │   ├── GenericParamTableTreeNode.cs
│   │   │   ├── ImplMapTableTreeNode.cs
│   │   │   ├── InterfaceImplTableTreeNode.cs
│   │   │   ├── ManifestResourceTableTreeNode.cs
│   │   │   ├── MemberRefTableTreeNode.cs
│   │   │   ├── MethodImplTableTreeNode.cs
│   │   │   ├── MethodSemanticsTableTreeNode.cs
│   │   │   ├── MethodSpecTableTreeNode.cs
│   │   │   ├── MethodTableTreeNode.cs
│   │   │   ├── ModuleRefTableTreeNode.cs
│   │   │   ├── ModuleTableTreeNode.cs
│   │   │   ├── NestedClassTableTreeNode.cs
│   │   │   ├── ParamTableTreeNode.cs
│   │   │   ├── PropertyMapTableTreeNode.cs
│   │   │   ├── PropertyTableTreeNode.cs
│   │   │   ├── PtrTableTreeNode.cs
│   │   │   ├── StandAloneSigTableTreeNode.cs
│   │   │   ├── TypeDefTableTreeNode.cs
│   │   │   ├── TypeRefTableTreeNode.cs
│   │   │   └── TypeSpecTableTreeNode.cs
│   │   ├── DataDirectoriesTreeNode.cs
│   │   ├── DebugDirectory/
│   │   │   ├── CodeViewTreeNode.cs
│   │   │   ├── DebugDirectoryEntryTreeNode.cs
│   │   │   └── PdbChecksumTreeNode.cs
│   │   ├── DebugDirectoryTreeNode.cs
│   │   ├── DebugMetadataTablesTreeNode.cs
│   │   ├── DebugTables/
│   │   │   ├── CustomDebugInformationTableTreeNode.cs
│   │   │   ├── DocumentTableTreeNode.cs
│   │   │   ├── ImportScopeTableTreeNode.cs
│   │   │   ├── LocalConstantTableTreeNode.cs
│   │   │   ├── LocalScopeTableTreeNode.cs
│   │   │   ├── LocalVariableTableTreeNode.cs
│   │   │   ├── MethodDebugInformationTableTreeNode.cs
│   │   │   └── StateMachineMethodTableTreeNode.cs
│   │   ├── DosHeaderTreeNode.cs
│   │   ├── FlagsFilterControl.xaml
│   │   ├── FlagsFilterControl.xaml.cs
│   │   ├── FlagsTooltip.xaml
│   │   ├── FlagsTooltip.xaml.cs
│   │   ├── GoToTokenCommand.cs
│   │   ├── Heaps/
│   │   │   ├── BlobHeapTreeNode.cs
│   │   │   ├── GuidHeapTreeNode.cs
│   │   │   ├── StringHeapTreeNode.cs
│   │   │   └── UserStringHeapTreeNode.cs
│   │   ├── Helpers.cs
│   │   ├── HexFilterControl.xaml
│   │   ├── HexFilterControl.xaml.cs
│   │   ├── MetaDataGrid.cs
│   │   ├── MetadataHeapTreeNode.cs
│   │   ├── MetadataProtocolHandler.cs
│   │   ├── MetadataTableTreeNode.cs
│   │   ├── MetadataTableViews.xaml
│   │   ├── MetadataTableViews.xaml.cs
│   │   ├── MetadataTablesTreeNode.cs
│   │   ├── MetadataTreeNode.cs
│   │   └── OptionalHeaderTreeNode.cs
│   ├── NativeMethods.cs
│   ├── NavigationHistory.cs
│   ├── NavigationState.cs
│   ├── Options/
│   │   ├── DecompilerSettingsPanel.xaml
│   │   ├── DecompilerSettingsPanel.xaml.cs
│   │   ├── DecompilerSettingsViewModel.cs
│   │   ├── DisplaySettings.cs
│   │   ├── DisplaySettingsPanel.xaml
│   │   ├── DisplaySettingsPanel.xaml.cs
│   │   ├── DisplaySettingsViewModel.cs
│   │   ├── MiscSettings.cs
│   │   ├── MiscSettingsPanel.xaml
│   │   ├── MiscSettingsPanel.xaml.cs
│   │   ├── MiscSettingsViewModel.cs
│   │   ├── OptionsDialog.xaml
│   │   ├── OptionsDialog.xaml.cs
│   │   └── OptionsDialogViewModel.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   ├── Resources.resx
│   │   ├── WPFAssemblyInfo.cs
│   │   └── launchSettings.json
│   ├── Search/
│   │   ├── SearchPane.xaml
│   │   ├── SearchPane.xaml.cs
│   │   ├── SearchPaneModel.cs
│   │   └── SearchResultFactory.cs
│   ├── SessionSettings.cs
│   ├── SolutionWriter.cs
│   ├── TaskHelper.cs
│   ├── TextView/
│   │   ├── Asm-Mode.xshd
│   │   ├── AvalonEditTextOutput.cs
│   │   ├── BracketHighlightRenderer.cs
│   │   ├── CSharp-Mode.xshd
│   │   ├── CaretHighlightAdorner.cs
│   │   ├── DecompilerTextEditor.cs
│   │   ├── DecompilerTextView.cs
│   │   ├── DecompilerTextView.xaml
│   │   ├── DocumentationUIBuilder.cs
│   │   ├── EditorCommands.cs
│   │   ├── FoldingCommands.cs
│   │   ├── ILAsm-Mode.xshd
│   │   ├── OutputLengthExceededException.cs
│   │   ├── ReferenceElementGenerator.cs
│   │   ├── ThemeAwareHighlightingColorizer.cs
│   │   ├── UIElementGenerator.cs
│   │   ├── XML-Mode.xshd
│   │   └── ZoomLevelToTextFormattingModeConverter.cs
│   ├── Themes/
│   │   ├── Base.Dark.xaml
│   │   ├── Base.Light.xaml
│   │   ├── ResourceKeys.cs
│   │   ├── SyntaxColor.cs
│   │   ├── Theme.Dark.xaml
│   │   ├── Theme.Light.xaml
│   │   ├── Theme.RSharpDark.xaml
│   │   ├── Theme.RSharpLight.xaml
│   │   ├── Theme.VSCodeDarkPlus.xaml
│   │   ├── Theme.VSCodeLightPlus.xaml
│   │   ├── ThemeManager.cs
│   │   ├── WindowStyleManagerBehavior.cs
│   │   └── generic.xaml
│   ├── TreeNodes/
│   │   ├── AssemblyListTreeNode.cs
│   │   ├── AssemblyReferenceReferencedTypesTreeNode.cs
│   │   ├── AssemblyReferenceTreeNode.cs
│   │   ├── AssemblyTreeNode.cs
│   │   ├── BaseTypesEntryNode.cs
│   │   ├── BaseTypesTreeNode.cs
│   │   ├── DerivedTypesEntryNode.cs
│   │   ├── DerivedTypesTreeNode.cs
│   │   ├── EventTreeNode.cs
│   │   ├── ExportedTypeTreeNode.cs
│   │   ├── FieldTreeNode.cs
│   │   ├── FilterResult.cs
│   │   ├── ILSpyTreeNode.cs
│   │   ├── IMemberTreeNode.cs
│   │   ├── MemberReferenceTreeNode.cs
│   │   ├── MethodTreeNode.cs
│   │   ├── ModuleReferenceTreeNode.cs
│   │   ├── NamespaceTreeNode.cs
│   │   ├── NaturalStringComparer.cs
│   │   ├── PackageFolderTreeNode.cs
│   │   ├── PropertyTreeNode.cs
│   │   ├── ReferenceFolderTreeNode.cs
│   │   ├── ResourceListTreeNode.cs
│   │   ├── ResourceNodes/
│   │   │   ├── CursorResourceEntryNode.cs
│   │   │   ├── IResourceNodeFactory.cs
│   │   │   ├── IconResourceEntryNode.cs
│   │   │   ├── ImageListResourceEntryNode.cs
│   │   │   ├── ImageResourceEntryNode.cs
│   │   │   ├── ResourceEntryNode.cs
│   │   │   ├── ResourceTreeNode.cs
│   │   │   ├── ResourcesFileTreeNode.cs
│   │   │   ├── XamlResourceNode.cs
│   │   │   └── XmlResourceNode.cs
│   │   ├── ThreadingSupport.cs
│   │   ├── TypeReferenceTreeNode.cs
│   │   └── TypeTreeNode.cs
│   ├── Updates/
│   │   ├── AppUpdateService.cs
│   │   ├── AvailableVersionInfo.cs
│   │   ├── UpdateService.cs
│   │   └── UpdateSettings.cs
│   ├── Util/
│   │   ├── GlobalUtils.cs
│   │   ├── GraphVizGraph.cs
│   │   ├── MessageBus.cs
│   │   ├── ResourceHelper.cs
│   │   ├── SettingsService.cs
│   │   └── ShellHelper.cs
│   ├── ViewModels/
│   │   ├── CompareViewModel.cs
│   │   ├── DebugStepsPaneModel.cs
│   │   ├── LegacyToolPaneModel.cs
│   │   ├── ManageAssemblyListsViewModel.cs
│   │   ├── PaneModel.cs
│   │   ├── TabPageModel.cs
│   │   ├── ToolPaneModel.cs
│   │   └── UpdatePanelViewModel.cs
│   ├── Views/
│   │   ├── CompareView.xaml
│   │   ├── CompareView.xaml.cs
│   │   ├── CreateListDialog.xaml
│   │   ├── CreateListDialog.xaml.cs
│   │   ├── DebugSteps.xaml
│   │   ├── DebugSteps.xaml.cs
│   │   ├── ManageAssemblyLIstsDialog.xaml.cs
│   │   ├── ManageAssemblyListsDialog.xaml
│   │   ├── OpenFromGacDialog.xaml
│   │   ├── OpenFromGacDialog.xaml.cs
│   │   ├── UpdatePanel.xaml
│   │   └── UpdatePanel.xaml.cs
│   └── app.manifest
├── ILSpy.AddIn/
│   ├── Decompiler/
│   │   └── Dummy.cs
│   ├── ILSpy.AddIn.csproj
│   ├── ILSpyAddIn.en-US.vsct
│   ├── ILSpyAddIn.vsct
│   ├── Key.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   └── launchSettings.json
│   ├── README.md
│   └── source.extension.vsixmanifest.template
├── ILSpy.AddIn.Shared/
│   ├── AssemblyFileFinder.cs
│   ├── Commands/
│   │   ├── AssemblyReferenceForILSpy.cs
│   │   ├── NuGetReferenceForILSpy.cs
│   │   ├── OpenCodeItemCommand.cs
│   │   ├── OpenILSpyCommand.cs
│   │   ├── OpenProjectOutputCommand.cs
│   │   ├── OpenReferenceCommand.cs
│   │   ├── ProjectItemForILSpy.cs
│   │   └── ProjectReferenceForILSpy.cs
│   ├── GlobalSuppressions.cs
│   ├── Guids.cs
│   ├── ILSpy.AddIn.Shared.projitems
│   ├── ILSpy.AddIn.Shared.shproj
│   ├── ILSpyAddInPackage.cs
│   ├── ILSpyInstance.cs
│   ├── PkgCmdID.cs
│   ├── Resources.Designer.cs
│   ├── Resources.resx
│   ├── SyntaxNodeExtensions.cs
│   ├── Utils.cs
│   ├── VSPackage.en-US.resx
│   └── VSPackage.resx
├── ILSpy.AddIn.VS2022/
│   ├── Decompiler/
│   │   └── Dummy.cs
│   ├── ILSpy.AddIn.VS2022.csproj
│   ├── ILSpyAddIn.en-US.vsct
│   ├── ILSpyAddIn.vsct
│   ├── Key.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   └── launchSettings.json
│   ├── README.md
│   └── source.extension.vsixmanifest.template
├── ILSpy.BamlDecompiler/
│   ├── BamlResourceEntryNode.cs
│   ├── BamlResourceNodeFactory.cs
│   ├── ILSpy.BamlDecompiler.csproj
│   └── Properties/
│       ├── AssemblyInfo.cs
│       └── launchSettings.json
├── ILSpy.BamlDecompiler.Tests/
│   ├── BamlTestRunner.cs
│   ├── Cases/
│   │   ├── AttachedEvent.xaml
│   │   ├── AttachedEvent.xaml.cs
│   │   ├── AvalonDockBrushes.xaml
│   │   ├── AvalonDockCommon.xaml
│   │   ├── CustomControl.cs
│   │   ├── Dictionary1.xaml
│   │   ├── EscapeSequence.xaml
│   │   ├── Issue1435.xaml
│   │   ├── Issue1546.xaml
│   │   ├── Issue1547.xaml
│   │   ├── Issue1547.xaml.cs
│   │   ├── Issue2052.xaml
│   │   ├── Issue2097.xaml
│   │   ├── Issue2097.xaml.cs
│   │   ├── Issue2116.xaml
│   │   ├── Issue2116.xaml.cs
│   │   ├── Issue3318.xaml
│   │   ├── Issue3318.xaml.cs
│   │   ├── Issue445.xaml
│   │   ├── Issue775.xaml
│   │   ├── MarkupExtension.xaml
│   │   ├── MyControl.xaml
│   │   ├── MyControl.xaml.cs
│   │   ├── NamespacePrefix.xaml
│   │   ├── ReadonlyProperty.xaml
│   │   ├── ReadonlyProperty.xaml.cs
│   │   ├── Resources.xaml
│   │   ├── Resources.xaml.cs
│   │   ├── Simple.xaml
│   │   ├── Simple.xaml.cs
│   │   ├── SimpleDictionary.xaml
│   │   ├── SimpleNames.xaml
│   │   ├── SimpleNames.xaml.cs
│   │   └── SimplePropertyElement.xaml
│   ├── ILSpy.BamlDecompiler.Tests.csproj
│   └── Mocks/
│       └── AvalonDock.cs
├── ILSpy.Installer/
│   ├── AppPackage.cs
│   ├── ILSpy.Installer.csproj
│   ├── README.md
│   ├── setup.cs
│   └── winui.wxl
├── ILSpy.Installer.sln
├── ILSpy.ReadyToRun/
│   ├── ILSpy.ReadyToRun.csproj
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   ├── Resources.resx
│   │   └── launchSettings.json
│   ├── ReadyToRunDisassembler.cs
│   ├── ReadyToRunLanguage.cs
│   ├── ReadyToRunOptionPage.xaml
│   ├── ReadyToRunOptionPage.xaml.cs
│   └── ReadyToRunOptions.cs
├── ILSpy.Tests/
│   ├── Analyzers/
│   │   ├── AnalyzerScopeTests.cs
│   │   ├── ExportAnalyzerAttributeTests.cs
│   │   ├── MemberImplementsInterfaceAnalyzerTests.cs
│   │   ├── MethodUsesAnalyzerTests.cs
│   │   ├── TestCases/
│   │   │   └── MainAssembly.cs
│   │   └── TypeUsedByAnalyzerTests.cs
│   ├── BitmapContainer.resources
│   ├── CommandLineArgumentsTests.cs
│   ├── ILSpy.Tests.csproj
│   ├── IconContainer.resx
│   ├── ResourceReaderWriterTests.cs
│   └── Test.resources
├── ILSpy.VSExtensions.sln
├── ILSpy.Wpf.slnf
├── ILSpy.XPlat.slnf
├── ILSpy.sln
├── LICENSE
├── NuGet.config
├── README.md
├── SECURITY.md
├── TestPlugin/
│   ├── AboutPageAddition.cs
│   ├── ContextMenuCommand.cs
│   ├── CustomLanguage.cs
│   ├── CustomOptionPage.xaml
│   ├── CustomOptionPage.xaml.cs
│   ├── MainMenuCommand.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   └── launchSettings.json
│   ├── Readme.txt
│   └── TestPlugin.csproj
├── clean.bat
├── debugbuild.bat
├── decompiler-nuget-demos.ipynb
├── doc/
│   ├── Command Line.txt
│   ├── ILAst Pattern Matching.md
│   ├── ILAst.txt
│   ├── ILSpyAboutPage.txt
│   ├── IntPtr.txt
│   ├── Pattern Matching.html
│   ├── README.md
│   ├── Resources.txt
│   ├── copyright.txt
│   └── third-party-notices.txt
├── global.json
├── publish.ps1
├── publishlocaldev.ps1
├── releasebuild.bat
└── updatedeps.bat

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
; Top-most EditorConfig file
root = true

[*]
charset = utf-8 # standardize on no BOM (except resx, see below)
indent_style = tab
indent_size = 4
guidelines = 110
tab_width = 4
end_of_line = crlf

# .net tooling writes the BOM to resx files on running dotnet build ILSpy.sln regardless,
# so we should direct text editors to NOT change the file
[*.resx]
charset = utf-8-bom

[*.il]
indent_style = space
indent_size = 2
[*.{yml,yaml}]
indent_style = space
indent_size = 2
[*.{csproj,props}]
indent_style = space
indent_size = 2
[*.config]
indent_style = space
indent_size = 2
[*.nuspec]
indent_style = space
indent_size = 2
[*.vsixmanifest]
indent_style = space
indent_size = 2
[*.vsct]
indent_style = space
indent_size = 2

[*.cs]
# New line preferences
csharp_new_line_before_open_brace = methods, types, control_blocks, local_functions
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = false
csharp_new_line_before_members_in_anonymous_types = false
csharp_new_line_within_query_expression_clauses = false

# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = false
csharp_indent_switch_labels = true
csharp_indent_labels = no_change

# Avoid 'this.' in generated code unless absolutely necessary, but allow developers to use it
dotnet_style_qualification_for_field = false:silent
dotnet_style_qualification_for_property = false:silent
dotnet_style_qualification_for_method = false:silent
dotnet_style_qualification_for_event = false:silent

# Do not use 'var' when generating code, but allow developers to use it
csharp_style_var_for_built_in_types = false:silent
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = false:silent

# Use language keywords instead of BCL types when generating code, but allow developers to use either
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
dotnet_style_predefined_type_for_member_access = true:silent

# Using directives
dotnet_sort_system_directives_first = true
dotnet_separate_import_directive_groups = true

# Wrapping
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = false

# Code style
csharp_prefer_braces = true:silent

# Expression-level preferences
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion

# Expression-bodied members
csharp_style_expression_bodied_methods = false:silent
csharp_style_expression_bodied_constructors = false:silent
csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_properties = true:silent
csharp_style_expression_bodied_indexers = true:silent
csharp_style_expression_bodied_accessors = true:silent

# Pattern matching
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion

# Null checking preferences
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion

# Space preferences
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false

# Naming rules
# Naming styles:
dotnet_naming_style.lower_camel_case_style.capitalization = camel_case
dotnet_naming_style.upper_camel_case_style.capitalization = pascal_case

# Symbol groups:
# all non-private fields
dotnet_naming_symbols.fields_symbols.applicable_accessibilities = *
dotnet_naming_symbols.fields_symbols.applicable_kinds = field
# all private/protected fields except constants
dotnet_naming_symbols.private_fields_symbols.applicable_accessibilities = private,protected,private_protected
dotnet_naming_symbols.private_fields_symbols.applicable_kinds = field

# Naming rules:
# all non-private fields are pascal case
dotnet_naming_rule.fields_rule.severity = warning
dotnet_naming_rule.fields_rule.style = upper_camel_case_style
dotnet_naming_rule.fields_rule.symbols = fields_symbols
# all private fields are camel case
dotnet_naming_rule.private_fields_rule.severity = warning
dotnet_naming_rule.private_fields_rule.style = lower_camel_case_style
dotnet_naming_rule.private_fields_rule.symbols = private_fields_symbols

# General settings:
csharp_using_directive_placement = outside_namespace:silent
csharp_prefer_simple_using_statement = true:suggestion
csharp_style_namespace_declarations = block_scoped:silent
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_prefer_top_level_statements = true:silent
csharp_style_prefer_primary_constructors = true:suggestion
csharp_prefer_system_threading_lock = true:suggestion
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent
csharp_style_prefer_null_check_over_type_check = true:suggestion
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_prefer_local_over_anonymous_function = true:suggestion
csharp_style_prefer_index_operator = true:suggestion
csharp_style_prefer_range_operator = true:suggestion
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
csharp_style_prefer_tuple_swap = true:suggestion
csharp_style_prefer_utf8_string_literals = true:suggestion
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_prefer_static_local_function = true:suggestion
csharp_prefer_static_anonymous_function = true:suggestion
csharp_style_prefer_readonly_struct = true:suggestion
csharp_style_prefer_readonly_struct_member = true:suggestion
csharp_style_allow_embedded_statements_on_same_line_experimental = true:silent
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true:silent
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true:silent
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true:silent
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true:silent
csharp_style_prefer_switch_expression = true:suggestion
csharp_style_prefer_pattern_matching = true:silent
csharp_style_prefer_not_pattern = true:suggestion
csharp_style_prefer_extended_property_pattern = true:suggestion

dotnet_style_operator_placement_when_wrapping = beginning_of_line
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion
dotnet_style_prefer_collection_expression = when_types_loosely_match:suggestion
dotnet_style_namespace_match_folder = true:suggestion
dotnet_style_readonly_field = true:suggestion
dotnet_style_require_accessibility_modifiers = omit_if_default:suggestion
dotnet_style_allow_multiple_blank_lines_experimental = false:warning
dotnet_style_allow_statement_immediately_after_block_experimental = true:silent
dotnet_code_quality_unused_parameters = all:suggestion
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent


# Errors and warnings
dotnet_diagnostic.IDE0007.severity = none

dotnet_diagnostic.CA1001.severity = warning
dotnet_diagnostic.CA1009.severity = warning
dotnet_diagnostic.CA1016.severity = warning
#dotnet_diagnostic.CA1033.severity = warning # Disabled because currently, there are too many violations
dotnet_diagnostic.CA1049.severity = warning
dotnet_diagnostic.CA1060.severity = warning
dotnet_diagnostic.CA1061.severity = warning
dotnet_diagnostic.CA1063.severity = warning
dotnet_diagnostic.CA1065.severity = warning
dotnet_diagnostic.CA1301.severity = warning
dotnet_diagnostic.CA1400.severity = warning
dotnet_diagnostic.CA1401.severity = warning
dotnet_diagnostic.CA1403.severity = warning
dotnet_diagnostic.CA1404.severity = warning
dotnet_diagnostic.CA1405.severity = warning
dotnet_diagnostic.CA1410.severity = warning
dotnet_diagnostic.CA1415.severity = warning
dotnet_diagnostic.CA1821.severity = warning
dotnet_diagnostic.CA1900.severity = warning
dotnet_diagnostic.CA1901.severity = warning
dotnet_diagnostic.CA2002.severity = warning
dotnet_diagnostic.CA2100.severity = warning
dotnet_diagnostic.CA2101.severity = warning
dotnet_diagnostic.CA2108.severity = warning
dotnet_diagnostic.CA2111.severity = warning
dotnet_diagnostic.CA2112.severity = warning
dotnet_diagnostic.CA2114.severity = warning
dotnet_diagnostic.CA2116.severity = warning
dotnet_diagnostic.CA2117.severity = warning
dotnet_diagnostic.CA2122.severity = warning
dotnet_diagnostic.CA2123.severity = warning
dotnet_diagnostic.CA2124.severity = warning
dotnet_diagnostic.CA2126.severity = warning
dotnet_diagnostic.CA2131.severity = warning
dotnet_diagnostic.CA2132.severity = warning
dotnet_diagnostic.CA2133.severity = warning
dotnet_diagnostic.CA2134.severity = warning
dotnet_diagnostic.CA2137.severity = warning
dotnet_diagnostic.CA2138.severity = warning
dotnet_diagnostic.CA2140.severity = warning
dotnet_diagnostic.CA2141.severity = warning
dotnet_diagnostic.CA2146.severity = warning
dotnet_diagnostic.CA2147.severity = warning
dotnet_diagnostic.CA2149.severity = warning
dotnet_diagnostic.CA2200.severity = warning
dotnet_diagnostic.CA2202.severity = warning
dotnet_diagnostic.CA2207.severity = warning
dotnet_diagnostic.CA2212.severity = warning
dotnet_diagnostic.CA2213.severity = warning
dotnet_diagnostic.CA2214.severity = warning
dotnet_diagnostic.CA2216.severity = warning
dotnet_diagnostic.CA2220.severity = warning
dotnet_diagnostic.CA2229.severity = warning
dotnet_diagnostic.CA2231.severity = warning
dotnet_diagnostic.CA2232.severity = warning
dotnet_diagnostic.CA2235.severity = warning
dotnet_diagnostic.CA2236.severity = warning
dotnet_diagnostic.CA2237.severity = warning
dotnet_diagnostic.CA2238.severity = warning
dotnet_diagnostic.CA2240.severity = warning
dotnet_diagnostic.CA2241.severity = warning
dotnet_diagnostic.CA2242.severity = warning

# MEF006: No importing constructor
dotnet_diagnostic.MEF006.severity = silent


================================================
FILE: .git-blame-ignore-revs
================================================
# https://github.com/icsharpcode/ILSpy/issues/2128
0d9f871a4f7c478fdf3f7b699d74e77506e978a4

================================================
FILE: .gitattributes
================================================
* text=auto
*.cs text diff=csharp
*.sln text eol=crlf
*.csproj text eol=crlf


================================================
FILE: .github/FUNDING.yml
================================================
github: [dgrunwald, siegfriedpammer, christophwille]


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: General bug report
about: Error dialog, crash, or anything else unrelated to the decompiled code
title: ''
labels: Bug
assignees: ''

---

### Steps to reproduce
1. 
2. 
3. 

### Error message shown

```
Copy and paste any error messages / relevant text and/or screenshot the incorrect behaviour.
```

### Details
* Product in use: e.g. ILSpy / ICSharpCode.Decompiler nuget package / VS extension
* Version in use: e.g. 6.0.0 or a commit hash (use Help>About to see which ILSpy version you are using)
* Any other relevant information to the issue, or your interest in contributing a fix.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: Enhancement
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is and why it's important to you. Ex. I'm always frustrated when [...]
Any (even unsuccessful) ways in which you've tried to workaround the problem currently

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Additional context**
Add any other context or screenshots about the feature request here.


================================================
FILE: .github/ISSUE_TEMPLATE/wrong_decompilation.md
================================================
---
name: Wrong decompilation
about: Decompiled code doesn't compile, or behaves differently to the original IL
title: ''
labels: Bug, Decompiler
assignees: ''

---

### Input code
Please provide the input that failed to decompile.
If providing IL code as input, please provide enough context to allow us to re-assemble the IL.
If uploading a complete assembly, please mention which method failed to decompile.

### Erroneous output
```c#
If relevant, the incorrectly decompiled output, or an exception with stack trace.
```
If the output fails to re-compile, provide the compiler error message.
If the output has the wrong behavior, explain how it differs from the expected behavior.

### Details
* Product in use: e.g. ILSpy / ICSharpCode.Decompiler nuget package / VS extension
* Version in use: e.g. 6.0.0 or a commit hash (use Help>About to see which ILSpy version you are using)
* Any other relevant information to the issue, or your interest in contributing a fix.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
Link to issue(s) this covers

### Problem
Link to, or brief information about the issue

### Solution
* Any comments on the approach taken, its consistency with surrounding code, etc.
* Which part of this PR is most in need of attention/improvement?
* [ ] At least one test covering the code changed



================================================
FILE: .github/dependabot.yml
================================================
# Set update schedule for GitHub Actions

version: 2
updates:

  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      # Check for updates to GitHub Actions every weekday
      interval: "weekly"


================================================
FILE: .github/workflows/build-frontends.yml
================================================
name: Build XPlat Frontends

on:
  push:
    branches: '**'
  pull_request:
    branches: [ master, release/** ]

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v6
      with:
        fetch-depth: 0
        persist-credentials: false
        
    - uses: actions/setup-dotnet@v5
      with:
        dotnet-version: '10.0.x'
        dotnet-quality: 'preview'

    - name: Install dependencies
      run: dotnet restore ILSpy.XPlat.slnf -p:RestoreEnablePackagePruning=false

    - name: Build Debug
      run: dotnet msbuild ILSpy.XPlat.slnf -p:Configuration=Debug -bl:Debug.binlog

    - name: Build Release
      run: dotnet msbuild ILSpy.XPlat.slnf -p:Configuration=Release -bl:Release.binlog

    - name: list files
      if: always()
      run: ls -la

    - name: print VERSION
      if: always()
      run: cat VERSION

    - name: Upload binlog
      if: always()
      uses: actions/upload-artifact@v7
      with:
        name: binlog
        path: '**/*.binlog'
        if-no-files-found: error


================================================
FILE: .github/workflows/build-ilspy.yml
================================================
name: Build ILSpy

on:
  push:
    branches: '**'
  pull_request:
    branches: [ master, release/** ]

permissions:
  contents: read

jobs:
  Build:
    permissions:
      packages: write  # for dotnet nuget push
    runs-on: windows-2025
    strategy:
      fail-fast: false
      matrix:
        Configuration: [ Debug, Release ]
    env:
      BuildPlatform: Any CPU
      StagingDirectory: buildartifacts 

    steps:
    - run: mkdir -p $env:StagingDirectory
      

    - uses: actions/checkout@v6
      with:
        submodules: true
        fetch-depth: 0
        persist-credentials: false

    - uses: actions/setup-dotnet@v5
      with:
        dotnet-version: '10.0.x'
        dotnet-quality: 'preview'
      env:
        DOTNET_INSTALL_DIR: ${{ runner.temp }}/.dotnet
        DOTNET_ROOT: ${{ runner.temp }}/.dotnet

    - name: Add msbuild to PATH
      uses: microsoft/setup-msbuild@v2

    - name: Install dotnet-format
      env:
        DOTNET_FORMAT_VERSION: 10.0.100-rtm.25531.102
        DOTNET_FORMAT_SOURCE: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10-transport/nuget/v3/index.json
      run: dotnet tool install -g dotnet-format --version "${{env.DOTNET_FORMAT_VERSION}}" --add-source "${{env.DOTNET_FORMAT_SOURCE}}"

    - name: Install wix (locked version)
      run: dotnet tool install --global wix --version 6.0.2
      
    - name: Install wix extesnion (locked version)
      run: wix.exe extension add -g WixToolset.UI.wixext/6.0.2

    - name: Get Version
      id: version
      shell: pwsh
      run: |
        .\BuildTools\ghactions-install.ps1
        Get-ChildItem Env: | Where-Object {$_.Name -Match "^ILSPY_"} | %{ echo "$($_.Name)=$($_.Value)" } | Out-File -FilePath $Env:GITHUB_OUTPUT -Encoding utf8 -Append

    - name: Restore the application
      run: msbuild ILSpy.sln /t:Restore /p:RestoreEnablePackagePruning=false /p:Configuration=${{ matrix.configuration }} /p:Platform=$env:BuildPlatform

    - name: Build
      run: msbuild ILSpy.sln /p:Configuration=${{ matrix.configuration }} /p:Platform=$env:BuildPlatform /m

    - name: Format check
      run: dotnet-format whitespace --verify-no-changes --verbosity detailed ILSpy.sln

    - name: Execute unit tests
      run: dotnet test --solution ilspy.sln --configuration ${{ matrix.configuration }} --no-build --report-trx --results-directory test-results/${{ matrix.configuration }}

    - name: Upload Test Logs
      uses: actions/upload-artifact@v7
      if: success() || failure()
      with:
        name: test-results-${{ matrix.configuration }}
        path: 'test-results/${{ matrix.configuration }}/*.trx'

    - name: Create Test Report
      uses: icsharpcode/test-summary-action@dist
      if: always()
      with:
        paths: "test-results/${{ matrix.configuration }}/*.trx"
        folded: true
      
    - name: Verify package contents
      if: matrix.configuration == 'debug'
      shell: pwsh
      run: |
        .\BuildTools\create-filelists.ps1
        git diff --exit-code
    
    - name: Zip ILSpy (framework-dependent)
      run: 7z a -tzip $env:StagingDirectory\ILSpy_binaries.zip .\ILSpy\bin\${{ matrix.configuration }}\net10.0-windows\*.dll .\ILSpy\bin\${{ matrix.configuration }}\net10.0-windows\*.exe .\ILSpy\bin\${{ matrix.configuration }}\net10.0-windows\*.config .\ILSpy\bin\${{ matrix.configuration }}\net10.0-windows\*.json .\ILSpy\bin\${{ matrix.configuration }}\net10.0-windows\*\ILSpy.resources.dll .\ILSpy\bin\${{ matrix.configuration }}\net10.0-windows\*\ILSpy.ReadyToRun.Plugin.resources.dll

    - name: Publish x64/arm64 framework-dependent/self-contained
      shell: pwsh
      run: .\publish.ps1

    - name: Zip ILSpy Release (x64 self-contained)
      if: matrix.configuration == 'release'    
      run: 7z a -tzip $env:StagingDirectory\ILSpy_selfcontained_x64.zip .\ILSpy\bin\Release\net10.0-windows\win-x64\publish\selfcontained\*

    - name: Zip ILSpy Release (arm64 framework-dependent)
      if: matrix.configuration == 'release'    
      run: 7z a -tzip $env:StagingDirectory\ILSpy_binaries_arm64.zip .\ILSpy\bin\Release\net10.0-windows\win-arm64\publish\fwdependent\*

    - name: Pack NuGets
      if: matrix.configuration == 'release'
      run: |
        dotnet pack ICSharpCode.Decompiler --no-restore
        dotnet pack ICSharpCode.BamlDecompiler --no-restore
        dotnet pack ICSharpCode.ILSpyX --no-restore

    - name: Build Installer (x64 and arm64, framework-dependent)
      if: matrix.configuration == 'release'  
      run: |
        msbuild ILSpy.Installer.sln /t:Restore /p:Configuration="Release" /p:Platform="Any CPU"
        msbuild ILSpy.Installer.sln /p:Configuration="Release" /p:Platform="Any CPU"
        msbuild ILSpy.Installer.sln /p:Configuration="Release" /p:Platform="Any CPU" /p:PlatformForInstaller="ARM64"

    - name: Build VS Extensions (for 2017-2019 and 2022)
      if: matrix.configuration == 'release'  
      run: |
        msbuild ILSpy.VSExtensions.sln /t:Restore /p:Configuration="Release" /p:Platform="Any CPU"
        msbuild ILSpy.VSExtensions.sln /p:Configuration="Release" /p:Platform="Any CPU"

    # https://github.com/actions/upload-artifact
    - name: Upload VSIX (VS 2019) release build artifacts
      if: matrix.configuration == 'release'
      uses: actions/upload-artifact@v7
      with:
        name: ILSpy VS Addin for VS 2017-2019 ${{ steps.version.outputs.ILSPY_VERSION_NUMBER }} (${{ matrix.configuration }})
        path: ILSpy.AddIn\bin\${{ matrix.configuration }}\net472\*.vsix
        if-no-files-found: error

    - name: Upload VSIX (VS 2022) release build artifacts
      if: matrix.configuration == 'release'
      uses: actions/upload-artifact@v7
      with:
        name: ILSpy VS Addin for VS 2022 ${{ steps.version.outputs.ILSPY_VERSION_NUMBER }} (${{ matrix.configuration }})
        path: ILSpy.AddIn.VS2022\bin\${{ matrix.configuration }}\net472\*.vsix
        if-no-files-found: error

    - name: Upload Decompiler NuGet release build artifacts
      if: matrix.configuration == 'release'
      uses: actions/upload-artifact@v7
      with:
        name: ICSharpCode.Decompiler NuGet Package (${{ matrix.configuration }})
        path: ICSharpCode.Decompiler\bin\Release\ICSharpCode.Decompiler*.nupkg
        if-no-files-found: error

    - name: Publish Decompiler NuGet
      if: github.ref == 'refs/heads/master' && matrix.configuration == 'release'
      run: |
        dotnet nuget push "ICSharpCode.Decompiler\bin\Release\ICSharpCode.Decompiler*.nupkg" --api-key ${{ secrets.GITHUB_TOKEN }} --source https://nuget.pkg.github.com/${{ github.repository_owner }}

    - name: Upload ILSpyX NuGet release build artifacts
      if: matrix.configuration == 'release'
      uses: actions/upload-artifact@v7
      with:
        name: ICSharpCode.ILSpyX NuGet Package (${{ matrix.configuration }})
        path: ICSharpCode.ILSpyX\bin\Release\ICSharpCode.ILSpyX*.nupkg
        if-no-files-found: error

    - name: Publish ILSpyX NuGet
      if: github.ref == 'refs/heads/master' && matrix.configuration == 'release'
      run: |
        dotnet nuget push "ICSharpCode.ILSpyX\bin\Release\ICSharpCode.ILSpyX*.nupkg" --api-key ${{ secrets.GITHUB_TOKEN }} --source https://nuget.pkg.github.com/${{ github.repository_owner }}

    - name: Upload BamlDecompiler NuGet release build artifacts
      if: matrix.configuration == 'release'
      uses: actions/upload-artifact@v7
      with:
        name: ICSharpCode.BamlDecompiler NuGet Package (${{ matrix.configuration }})
        path: ICSharpCode.BamlDecompiler\bin\Release\ICSharpCode.BamlDecompiler*.nupkg
        if-no-files-found: error

    - name: Publish DecomBamlDecompilerpiler NuGet
      if: github.ref == 'refs/heads/master' && matrix.configuration == 'release'
      run: |
        dotnet nuget push "ICSharpCode.BamlDecompiler\bin\Release\ICSharpCode.BamlDecompiler*.nupkg" --api-key ${{ secrets.GITHUB_TOKEN }} --source https://nuget.pkg.github.com/${{ github.repository_owner }}

    - name: Upload zip binaries build artifacts
      uses: actions/upload-artifact@v7
      with:
        name: ILSpy ${{ steps.version.outputs.ILSPY_VERSION_NUMBER }} (${{ matrix.configuration }})
        path: ${{ env.StagingDirectory }}\ILSpy_binaries.zip
        if-no-files-found: error

    - name: Upload x64 self-contained zip (Release-only)
      if: matrix.configuration == 'release'
      uses: actions/upload-artifact@v7
      with:
        name: ILSpy self-contained x64 ${{ steps.version.outputs.ILSPY_VERSION_NUMBER }} (${{ matrix.configuration }})
        path: ${{ env.StagingDirectory }}\ILSpy_selfcontained_x64.zip
        if-no-files-found: error

    - name: Upload arm64 framework-dependent zip (Release-only)
      if: matrix.configuration == 'release'
      uses: actions/upload-artifact@v7
      with:
        name: ILSpy arm64 ${{ steps.version.outputs.ILSPY_VERSION_NUMBER }} (${{ matrix.configuration }})
        path: ${{ env.StagingDirectory }}\ILSpy_binaries_arm64.zip
        if-no-files-found: error

    - name: Upload x64 installer artifact
      if: matrix.configuration == 'release'
      uses: actions/upload-artifact@v7
      with:
        name: ILSpy Installer x64 ${{ steps.version.outputs.ILSPY_VERSION_NUMBER }} (${{ matrix.configuration }})
        path: ILSpy.Installer\wix\*-x64.msi
        if-no-files-found: error

    - name: Upload arm64 installer artifact
      if: matrix.configuration == 'release'
      uses: actions/upload-artifact@v7
      with:
        name: ILSpy Installer arm64 ${{ steps.version.outputs.ILSPY_VERSION_NUMBER }} (${{ matrix.configuration }})
        path: ILSpy.Installer\wix\*-arm64.msi
        if-no-files-found: error

    - name: Upload ilspycmd release build artifacts
      if: matrix.configuration == 'release'
      uses: actions/upload-artifact@v7
      with:
        name: ilspycmd dotnet tool (${{ matrix.configuration }})
        path: ICSharpCode.ILSpyCmd\bin\Release\ilspycmd*.nupkg
        if-no-files-found: error


================================================
FILE: .github/workflows/codeql-analysis.yml
================================================
name: "CodeQL"

on:
  push:
    branches: '**'
  pull_request:
    branches: [ master, release/** ]

permissions:
  contents: read

jobs:
  analyze:
    permissions:
      actions: read  # for github/codeql-action/init to get workflow details
      security-events: write  # for github/codeql-action/analyze to upload SARIF results
      
    name: Analyze
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        language: [ 'csharp' ]

    steps:
    - name: Checkout repository
      uses: actions/checkout@v6
      with:
        fetch-depth: 0
        persist-credentials: false
    
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v4
      with:
        languages: ${{ matrix.language }}

    - uses: actions/setup-dotnet@v5
      with:
        dotnet-version: '10.0.x'
        dotnet-quality: 'preview'

    - name: Build
      run: dotnet build ILSpy.XPlat.slnf --configuration Release -p:RestoreEnablePackagePruning=false

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v4


================================================
FILE: .github/workflows/generate-bom.yml
================================================
name: Generate BOM

on:
  workflow_dispatch:

permissions:
  contents: read

jobs:
  build:

    runs-on: windows-2022

    steps:
    - name: Checkout
      run: git config --global core.autocrlf true
    - uses: actions/checkout@v6
      with:
        submodules: true
        persist-credentials: false

    - name: Install CycloneDX
      run: dotnet tool install --global CycloneDX
      
    - name: Analyze
      run: dotnet-CycloneDX ILSpy/ILSpy.csproj --output sbom --recursive --exclude-dev --exclude-test-projects

    - name: Upload BOM
      uses: actions/upload-artifact@v7
      with:
        name: ILSpyBOM.xml
        path: sbom/bom.xml
        if-no-files-found: error

================================================
FILE: .github/workflows/lock.yml
================================================
name: 'Lock threads'

on:
  schedule:
    - cron: '0 0 * * *'

permissions:
  contents: read

jobs:
  lock:
    permissions:
      issues: write  # for dessant/lock-threads to lock issues
    runs-on: ubuntu-latest
    steps:
      - uses: dessant/lock-threads@v6.0.0
        with:
          github-token: ${{ github.token }}
          issue-inactive-days: '90'
          issue-lock-reason: 'resolved'
          process-only: 'issues'


================================================
FILE: .github/workflows/scorecard.yml
================================================
name: Scorecard supply-chain security

on:
  # For Branch-Protection check. Only the default branch is supported. See
  # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection (disabled)
  # branch_protection_rule:
  workflow_dispatch:

  # schedule ("Maintained") and push are disabled atm
  # schedule:
    # - cron: '25 1 * * 2'
  # push:
    # branches: [ "master" ]

permissions: read-all

jobs:
  analysis:
    name: Scorecard analysis
    runs-on: ubuntu-latest
    permissions:
      security-events: write # Needed to upload the results to code-scanning dashboard.
      id-token: write # Needed to publish results and get a badge (see publish_results below).

    steps:
      - name: "Checkout code"
        uses: actions/checkout@v6
        with:
          persist-credentials: false

      - name: "Run analysis"
        uses: ossf/scorecard-action@v2.4.3 # https://github.com/marketplace/actions/ossf-scorecard-action
        with:
          results_file: results.sarif
          results_format: sarif
          publish_results: true

      - name: "Upload artifact"
        uses: actions/upload-artifact@v7
        with:
          name: SARIF file
          path: results.sarif
          retention-days: 5

      - name: "Upload to code-scanning"
        uses: github/codeql-action/upload-sarif@v4
        with:
          sarif_file: results.sarif


================================================
FILE: .gitignore
================================================
bin/
obj/
AppPackages/
BundleArtifacts/
*.user
/Resharper-ILSpy-Style.xml
_ReSharper*/
*.ReSharper
*.patch
.vs/
.idea/
/ILSpy.AddIn*/Packages/*
/ILSpy.AddIn*/source.extension.vsixmanifest
/ICSharpCode.Decompiler.Tests/TestCases/Disassembler/Pretty/*.dll
/ICSharpCode.Decompiler.Tests/TestCases/Disassembler/Pretty/*.result.il
/ICSharpCode.Decompiler.Tests/TestCases/Correctness/*.exe
/ICSharpCode.Decompiler.Tests/TestCases/Correctness/*.exe.config
multitargeting.props
ILSpy.Installer/wix/
/VERSION
/ICSharpCode.Decompiler/Properties/DecompilerVersionInfo.cs
**/.vscode/
DecompilerTests.config.json
*.trx

================================================
FILE: .gitmodules
================================================
[submodule "ILSpy-tests"]
	path = ILSpy-tests
	url = https://github.com/icsharpcode/ILSpy-tests
	branch = master


================================================
FILE: .tgitconfig
================================================
[tgit]
	icon = ILSpy/Images/ILSpy.ico


================================================
FILE: BuildTools/ILSpy.AddIn.VS2022.vsix.filelist
================================================
[Content_Types].xml
catalog.json
en-US\ILSpy.AddIn.VS2022.resources.dll
extension.vsixmanifest
ICSharpCode.Decompiler.dll
ICSharpCode.ILSpyX.dll
ICSharpCode.TreeView.dll
ILSpy.AddIn.VS2022.dll
ILSpy.AddIn.VS2022.pkgdef
ILSpy.BamlDecompiler.Plugin.dll
ILSpy.deps.json
ILSpy.dll
ILSpy.exe
ILSpy.ReadyToRun.Plugin.dll
ILSpy.runtimeconfig.json
ILSpy\AvalonDock.dll
ILSpy\AvalonDock.Themes.VS2013.dll
ILSpy\DataGridExtensions.dll
ILSpy\Iced.dll
ILSpy\ICSharpCode.AvalonEdit.dll
ILSpy\ICSharpCode.Decompiler.dll
ILSpy\ICSharpCode.ILSpyX.dll
ILSpy\ICSharpCode.TreeView.dll
ILSpy\ILCompiler.Reflection.ReadyToRun.dll
ILSpy\ILSpy.BamlDecompiler.Plugin.deps.json
ILSpy\ILSpy.BamlDecompiler.Plugin.dll
ILSpy\ILSpy.deps.json
ILSpy\ILSpy.dll
ILSpy\ILSpy.exe
ILSpy\ILSpy.ReadyToRun.Plugin.deps.json
ILSpy\ILSpy.ReadyToRun.Plugin.dll
ILSpy\ILSpy.runtimeconfig.json
ILSpy\K4os.Compression.LZ4.dll
ILSpy\Microsoft.DiaSymReader.Converter.Xml.dll
ILSpy\Microsoft.DiaSymReader.dll
ILSpy\Microsoft.DiaSymReader.PortablePdb.dll
ILSpy\Microsoft.VisualStudio.Composition.dll
ILSpy\Microsoft.VisualStudio.Composition.NetFxAttributes.dll
ILSpy\Microsoft.VisualStudio.Validation.dll
ILSpy\Microsoft.Xaml.Behaviors.dll
ILSpy\Mono.Cecil.dll
ILSpy\Mono.Cecil.Mdb.dll
ILSpy\Mono.Cecil.Pdb.dll
ILSpy\Mono.Cecil.Rocks.dll
ILSpy\System.ComponentModel.Composition.dll
ILSpy\System.Composition.AttributedModel.dll
ILSpy\System.Composition.Convention.dll
ILSpy\System.Composition.Hosting.dll
ILSpy\System.Composition.Runtime.dll
ILSpy\System.Composition.TypedParts.dll
ILSpy\TomsToolbox.Essentials.dll
ILSpy\TomsToolbox.ObservableCollections.dll
ILSpy\TomsToolbox.Wpf.dll
ILSpy\TomsToolbox.Wpf.Styles.dll
ILSpy-Large.ico
license.txt
manifest.json
Mono.Cecil.dll

================================================
FILE: BuildTools/ILSpy.AddIn.vsix.filelist
================================================
[Content_Types].xml
catalog.json
en-US\ILSpy.AddIn.resources.dll
extension.vsixmanifest
ICSharpCode.Decompiler.dll
ICSharpCode.ILSpyX.dll
ICSharpCode.TreeView.dll
ILSpy.AddIn.dll
ILSpy.AddIn.pkgdef
ILSpy.BamlDecompiler.Plugin.dll
ILSpy.deps.json
ILSpy.dll
ILSpy.exe
ILSpy.ReadyToRun.Plugin.dll
ILSpy.runtimeconfig.json
ILSpy\AvalonDock.dll
ILSpy\AvalonDock.Themes.VS2013.dll
ILSpy\DataGridExtensions.dll
ILSpy\Iced.dll
ILSpy\ICSharpCode.AvalonEdit.dll
ILSpy\ICSharpCode.Decompiler.dll
ILSpy\ICSharpCode.ILSpyX.dll
ILSpy\ICSharpCode.TreeView.dll
ILSpy\ILCompiler.Reflection.ReadyToRun.dll
ILSpy\ILSpy.BamlDecompiler.Plugin.deps.json
ILSpy\ILSpy.BamlDecompiler.Plugin.dll
ILSpy\ILSpy.deps.json
ILSpy\ILSpy.dll
ILSpy\ILSpy.exe
ILSpy\ILSpy.ReadyToRun.Plugin.deps.json
ILSpy\ILSpy.ReadyToRun.Plugin.dll
ILSpy\ILSpy.runtimeconfig.json
ILSpy\K4os.Compression.LZ4.dll
ILSpy\Microsoft.DiaSymReader.Converter.Xml.dll
ILSpy\Microsoft.DiaSymReader.dll
ILSpy\Microsoft.DiaSymReader.PortablePdb.dll
ILSpy\Microsoft.VisualStudio.Composition.dll
ILSpy\Microsoft.VisualStudio.Composition.NetFxAttributes.dll
ILSpy\Microsoft.VisualStudio.Validation.dll
ILSpy\Microsoft.Xaml.Behaviors.dll
ILSpy\Mono.Cecil.dll
ILSpy\Mono.Cecil.Mdb.dll
ILSpy\Mono.Cecil.Pdb.dll
ILSpy\Mono.Cecil.Rocks.dll
ILSpy\System.ComponentModel.Composition.dll
ILSpy\System.Composition.AttributedModel.dll
ILSpy\System.Composition.Convention.dll
ILSpy\System.Composition.Hosting.dll
ILSpy\System.Composition.Runtime.dll
ILSpy\System.Composition.TypedParts.dll
ILSpy\TomsToolbox.Essentials.dll
ILSpy\TomsToolbox.ObservableCollections.dll
ILSpy\TomsToolbox.Wpf.dll
ILSpy\TomsToolbox.Wpf.Styles.dll
ILSpy-Large.ico
license.txt
manifest.json
Mono.Cecil.dll

================================================
FILE: BuildTools/ILSpy.msi.filelist
================================================
AvalonDock.dll_2384574099
AvalonDock.Themes.VS2013.dll_1693991188
DataGridExtensions.dll_3175011569
Iced.dll_3795180016
ICSharpCode.AvalonEdit.dll_2202357673
ICSharpCode.Decompiler.dll_1302002478
ICSharpCode.ILSpyX.dll_1982182100
ICSharpCode.TreeView.dll_128291808
ILCompiler.Reflection.ReadyToRun.dll_961256598
ILSpy.BamlDecompiler.Plugin.deps.json_425274809
ILSpy.BamlDecompiler.Plugin.dll_1186184332
ILSpy.deps.json_14220630
ILSpy.dll_828718029
ILSpy.exe_2512527281
ILSpy.ReadyToRun.Plugin.deps.json_3602879258
ILSpy.ReadyToRun.Plugin.dll_3493023742
ILSpy.ReadyToRun.Plugin.resources.dll_3072497650
ILSpy.resources.dll_1963394151
ILSpy.runtimeconfig.json_4170109836
K4os.Compression.LZ4.dll_841780051
Microsoft.DiaSymReader.Converter.Xml.dll_1504543009
Microsoft.DiaSymReader.dll_2664270437
Microsoft.DiaSymReader.PortablePdb.dll_645824024
Microsoft.VisualStudio.Composition.dll_3669554833
Microsoft.VisualStudio.Composition.NetFxAttributes.dll_4085550965
Microsoft.VisualStudio.Validation.dll_3370943218
Microsoft.Xaml.Behaviors.dll_3088279542
Mono.Cecil.dll_2043069113
Mono.Cecil.Mdb.dll_881308441
Mono.Cecil.Pdb.dll_94684032
Mono.Cecil.Rocks.dll_284129705
System.ComponentModel.Composition.dll_3956562358
System.Composition.AttributedModel.dll_2731655713
System.Composition.Convention.dll_1880631244
System.Composition.Hosting.dll_1479266732
System.Composition.Runtime.dll_4043919224
System.Composition.TypedParts.dll_1680333710
TomsToolbox.Essentials.dll_1205939788
TomsToolbox.ObservableCollections.dll_75279310
TomsToolbox.Wpf.dll_28003915
TomsToolbox.Wpf.Styles.dll_1483228554


================================================
FILE: BuildTools/bom-classify-encodings.ps1
================================================
<#
.SYNOPSIS
Classify text files by encoding under the current subtree, respecting .gitignore.

.DESCRIPTION
Enumerates tracked files and untracked-but-not-ignored files (via Git) beneath
PWD. Skips likely-binary files (NUL probe). Classifies remaining files as:
	- 'utf8'          : valid UTF-8 (no BOM) or empty file
	- 'utf8-with-bom' : starts with UTF-8 BOM (EF BB BF)
	- 'other'         : text but not valid UTF-8 (e.g., UTF-16/ANSI)

Outputs:
	1) Relative paths of files classified as 'other'
	2) A table by extension: UTF8 / UTF8-with-BOM / Other / Total

Notes:
	- Read-only: this script makes no changes.
	- Requires Git and must be run inside a Git work tree.
#>

[CmdletBinding()]
param()

Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'

# --- Git enumeration ---------------------------------------------------------
function Assert-InGitWorkTree {
	# Throws if not inside a Git work tree.
	$inside = (& git rev-parse --is-inside-work-tree 2>$null).Trim()
	if ($LASTEXITCODE -ne 0 -or $inside -ne 'true') {
		throw 'Not in a Git work tree.'
	}
}

function Get-GitFilesUnderPwd {
	<#
		Returns full paths to tracked + untracked-not-ignored files under PWD.
	#>
	Assert-InGitWorkTree

	$repoRoot = (& git rev-parse --show-toplevel).Trim()
	$pwdPath  = (Get-Location).Path

	# cached (tracked) + others (untracked not ignored)
	$nulSeparated = & git -C $repoRoot ls-files -z --cached --others --exclude-standard

	$relativePaths = $nulSeparated.Split(
		[char]0, [System.StringSplitOptions]::RemoveEmptyEntries)

	foreach ($relPath in $relativePaths) {
		$fullPath = Join-Path $repoRoot $relPath

		# Only include files under the current subtree.
		if ($fullPath.StartsWith($pwdPath,
				[System.StringComparison]::OrdinalIgnoreCase)) {
			if (Test-Path -LiteralPath $fullPath -PathType Leaf) { $fullPath }
		}
	}
}

# --- Probes ------------------------------------------------------------------
function Test-ProbablyBinary {
	# Heuristic: treat as binary if the first 8 KiB contains any NUL byte.
	param([Parameter(Mandatory)][string]$Path)

	try {
		$stream = [System.IO.File]::Open($Path,'Open','Read','ReadWrite')
		try {
			$len = [int][Math]::Min(8192,$stream.Length)
			if ($len -le 0) { return $false }

			$buffer = [byte[]]::new($len)
			[void]$stream.Read($buffer,0,$len)
			return ($buffer -contains 0)
		}
		finally { $stream.Dispose() }
	}
	catch { return $false }
}

function Get-TextEncodingCategory {
	# Returns 'utf8', 'utf8-with-bom', 'other', or $null for likely-binary.
	param([Parameter(Mandatory)][string]$Path)

	$stream = [System.IO.File]::Open($Path,'Open','Read','ReadWrite')
	try {
		$fileLength = $stream.Length
		if ($fileLength -eq 0) { return 'utf8' }

		# BOM check (EF BB BF)
		$header = [byte[]]::new([Math]::Min(3,$fileLength))
		[void]$stream.Read($header,0,$header.Length)
		if ($header.Length -ge 3 -and
				$header[0] -eq 0xEF -and $header[1] -eq 0xBB -and $header[2] -eq 0xBF) {
			return 'utf8-with-bom'
		}

		# Quick binary probe before expensive decoding
		$stream.Position = 0
		$sampleLen = [int][Math]::Min(8192,$fileLength)
		$sample = [byte[]]::new($sampleLen)
		[void]$stream.Read($sample,0,$sampleLen)
		if ($sample -contains 0) { return $null }
	}
	finally { $stream.Dispose() }

	# Validate UTF-8 by decoding with throw-on-invalid option (no BOM).
	try {
		$bytes = [System.IO.File]::ReadAllBytes($Path)
		$utf8 = [System.Text.UTF8Encoding]::new($false,$true)
		[void]$utf8.GetString($bytes)
		return 'utf8'
	}
	catch { return 'other' }
}

# --- Main --------------------------------------------------------------------
$otherFiles  = @()
$byExtension = @{}

$allFiles = Get-GitFilesUnderPwd

foreach ($fullPath in $allFiles) {
	# Avoid decoding likely-binary files.
	if (Test-ProbablyBinary $fullPath) { continue }

	$category = Get-TextEncodingCategory $fullPath
	if (-not $category) { continue }

	$ext = [IO.Path]::GetExtension($fullPath).ToLower()
	if (-not $byExtension.ContainsKey($ext)) {
		$byExtension[$ext] = @{ 'utf8' = 0; 'utf8-with-bom' = 0; 'other' = 0 }
	}

	$byExtension[$ext][$category]++

	if ($category -eq 'other') {
		$otherFiles += (Resolve-Path -LiteralPath $fullPath -Relative)
	}
}

# 1) Files in 'other'
if ($otherFiles.Count -gt 0) {
	'Files classified as ''other'':'
	$otherFiles | Sort-Object | ForEach-Object { "  $_" }
	''
}

# 2) Table by extension
$rows = foreach ($kv in $byExtension.GetEnumerator()) {
	$ext = if ($kv.Key) { $kv.Key } else { '[noext]' }
	$u   = [int]$kv.Value['utf8']
	$b   = [int]$kv.Value['utf8-with-bom']
	$o   = [int]$kv.Value['other']

	[PSCustomObject]@{
		Extension       = $ext
		UTF8            = $u
		'UTF8-with-BOM' = $b
		Other           = $o
		Total           = $u + $b + $o
	}
}

$rows |
	Sort-Object -Property (
			@{Expression='Total';Descending=$true},
		@{Expression='Extension';Descending=$false}
	) |
	Format-Table -AutoSize


================================================
FILE: BuildTools/bom-strip.ps1
================================================
<#
.SYNOPSIS
Strip UTF-8 BOM from selected text files under the current subtree, respecting
.gitignore.

.DESCRIPTION
Enumerates tracked and untracked-but-not-ignored files under the current
directory (via Git), filters to texty extensions and dotfiles, skips likely
binary files (NUL probe), and removes a leading UTF-8 BOM (EF BB BF) in place.

Refuses to run if there are uncommitted changes as a safeguard. Use -Force to override.
Supports -WhatIf/-Confirm via ShouldProcess.
#>

[CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = 'Low')]
param(
	[switch]$Force
)

Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'

# --- File sets (ILSpy) ------------------------------------------------------
$Dotfiles = @(
	'.gitignore', '.editorconfig', '.gitattributes', '.gitmodules',
	'.tgitconfig', '.vsconfig'
)

$AllowedExts = @(
	'.bat','.config','.cs','.csproj','.css','.filelist','.fs','.html','.il',
	'.ipynb','.js','.json','.less','.manifest','.md','.projitems','.props',
	'.ps1','.psd1','.shproj','.sln','.slnf','.svg','.template',
	'.tt', '.txt','.vb','.vsct','.vsixlangpack','.wxl','.xaml','.xml','.xshd','.yml'
)

$IncludeNoExt = $true  # include names like LICENSE

# --- Git checks / enumeration -----------------------------------------------
function Assert-InGitWorkTree {
	$inside = (& git rev-parse --is-inside-work-tree 2>$null).Trim()
	if ($LASTEXITCODE -ne 0 -or $inside -ne 'true') {
		throw 'Not in a Git work tree.'
	}
}

function Assert-CleanWorkingTree {
	if ($Force) { return }

	$status = & git status --porcelain -z
	if ($LASTEXITCODE -ne 0) { throw 'git status failed.' }

	if (-not [string]::IsNullOrEmpty($status)) {
		throw 'Working tree not clean. Commit/stash changes or use -Force.'
	}
}

function Get-GitFilesUnderPwd {
	Assert-InGitWorkTree

	$repoRoot = (& git rev-parse --show-toplevel).Trim()
	$pwdPath  = (Get-Location).Path

	$tracked = & git -C $repoRoot ls-files -z
	$others  = & git -C $repoRoot ls-files --others --exclude-standard -z

	$allRel = ("$tracked$others").Split(
		[char]0, [System.StringSplitOptions]::RemoveEmptyEntries)

	foreach ($relPath in $allRel) {
		$fullPath = Join-Path $repoRoot $relPath
		if ($fullPath.StartsWith($pwdPath,
				[System.StringComparison]::OrdinalIgnoreCase)) {
			if (Test-Path -LiteralPath $fullPath -PathType Leaf) {
				$fullPath
			}
		}
	}
}

# --- Probes -----------------------------------------------------------------
function Test-HasUtf8Bom {
	param([Parameter(Mandatory)][string]$Path)

	try {
		$stream = [System.IO.File]::Open($Path,'Open','Read','ReadWrite')
		try {
			if ($stream.Length -lt 3) { return $false }

			$header = [byte[]]::new(3)
			[void]$stream.Read($header,0,3)

			return ($header[0] -eq 0xEF -and
							$header[1] -eq 0xBB -and
							$header[2] -eq 0xBF)
		}
		finally {
			$stream.Dispose()
		}
	}
	catch { return $false }
}

function Test-ProbablyBinary {
	# Binary if the first 8 KiB contains any NUL byte.
	param([Parameter(Mandatory)][string]$Path)

	try {
		$stream = [System.IO.File]::Open($Path,'Open','Read','ReadWrite')
		try {
			$len = [int][Math]::Min(8192,$stream.Length)
			if ($len -le 0) { return $false }

			$buffer = [byte[]]::new($len)
			[void]$stream.Read($buffer,0,$len)

			return ($buffer -contains 0)
		}
		finally {
			$stream.Dispose()
		}
	}
	catch { return $false }
}

# --- Mutation ---------------------------------------------------------------
function Remove-Utf8BomInPlace {
	# Write the existing buffer from offset 3, no extra full-size allocation.
	param([Parameter(Mandatory)][string]$Path)

	$bytes = [System.IO.File]::ReadAllBytes($Path)
	if ($bytes.Length -lt 3) { return $false }

	if ($bytes[0] -ne 0xEF -or
			$bytes[1] -ne 0xBB -or
			$bytes[2] -ne 0xBF) {
		return $false
	}

	$stream = [System.IO.File]::Open($Path,'Create','Write','ReadWrite')
	try {
		$stream.Write($bytes, 3, $bytes.Length - 3)
		$stream.SetLength($bytes.Length - 3)
	}
	finally {
		$stream.Dispose()
	}

	return $true
}

# --- Main -------------------------------------------------------------------
Assert-InGitWorkTree
Assert-CleanWorkingTree

$allFiles = Get-GitFilesUnderPwd

$targets = $allFiles | % {
	$fileName = [IO.Path]::GetFileName($_)
	$ext      = [IO.Path]::GetExtension($fileName)

	$isDot    = $Dotfiles -contains $fileName
	$isNoExt  = -not $fileName.Contains('.')

	if ($isDot -or ($AllowedExts -contains $ext) -or
			($IncludeNoExt -and $isNoExt -and -not $isDot)) {
		$_
	}
}
| ? { Test-HasUtf8Bom $_ }
| ? { -not (Test-ProbablyBinary $_) }

$changed        = 0
$byExtension    = @{}
$dotfileChanges = 0

$targets | % {
	$relative = Resolve-Path -LiteralPath $_ -Relative

	if ($PSCmdlet.ShouldProcess($relative,'Strip UTF-8 BOM')) {
		if (Remove-Utf8BomInPlace -Path $_) {
			$changed++

			$fileName = [IO.Path]::GetFileName($_)
			if ($Dotfiles -contains $fileName) { $dotfileChanges++ }

			$ext = [IO.Path]::GetExtension($fileName)
			if (-not $byExtension.ContainsKey($ext)) { $byExtension[$ext] = 0 }
			$byExtension[$ext]++

			"stripped BOM: $relative"
		}
	}
}

"Done. Stripped BOM from $changed file(s)."

if ($byExtension.Keys.Count -gt 0) {
	""
	"By extension:"
	$byExtension.GetEnumerator() | Sort-Object Name | % {
		$key = if ([string]::IsNullOrEmpty($_.Name)) { '[noext]' } else { $_.Name }
		"  {0}: {1}" -f $key, $_.Value
	}
}

if ($dotfileChanges -gt 0) {
	"  [dotfiles]: $dotfileChanges"
}


================================================
FILE: BuildTools/create-filelists.ps1
================================================
$ErrorActionPreference = "Stop";

$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False

gci -Include *.vsix, *.msi -recurse | foreach ($_) {
	if (-not ($_.FullName -contains "\bin\Debug\")) {
		continue;
	}
	$idx=-1;
	$body=$false;
	$outputFileName = ".\BuildTools\$($_.Name -replace '-\d+\.\d+\.\d+\.\d+', '').filelist";
	$lines = 7z l $_.FullName  | foreach {
		if ($idx -eq -1) {
			$idx = $_.IndexOf("Name");
		}
		$p = $body;
		if ($idx -gt 0) {
			$body = ($body -ne ($_ -match ' *-[ -]+'))
		}
		if ($p -and $body) {
			$_.Substring($idx)
		}
	} | sort
	[System.IO.File]::WriteAllLines($outputFileName, $lines, $Utf8NoBomEncoding)
}


================================================
FILE: BuildTools/format.bat
================================================
@rem This file can be used to trigger the commit hook's formatting,
@rem modifying the local formatting even if not committing all changes.
pushd %~dp0\..
"%ProgramFiles%\Git\usr\bin\bash.exe" BuildTools\pre-commit --format
popd

================================================
FILE: BuildTools/ghactions-install.ps1
================================================
$ErrorActionPreference = "Stop"

$baseCommit = "d779383cb85003d6dabeb976f0845631e07bf463";
$baseCommitRev = 1;

# make sure this matches artifacts-only branches list in appveyor.yml!
$masterBranches = '^refs/heads/(master|release/.+)$';

$decompilerVersionInfoTemplateFile = "ICSharpCode.Decompiler/Properties/DecompilerVersionInfo.template.cs";

$versionParts = @{};
Get-Content $decompilerVersionInfoTemplateFile | where { $_ -match 'string (\w+) = "?(\w+)"?;' } | foreach { $versionParts.Add($Matches[1], $Matches[2]) }

$major = $versionParts.Major;
$minor = $versionParts.Minor;
$build = $versionParts.Build;
$versionName = $versionParts.VersionName;

if ($versionName -ne "null") {
	$versionName = "-$versionName";
} else {
	$versionName = "";
}

Write-Host "GITHUB_REF: '$env:GITHUB_REF'";

if ($env:GITHUB_REF -match $masterBranches) {
	$branch = "";
	$suffix = "";
} elseif ($env:GITHUB_REF -match '^refs/pull/(\d+)/merge$') {
	$branch = "";
	$suffix = "-pr" + $Matches[1];
} elseif ($env:GITHUB_REF -match '^refs/heads/(.+)$') {
	$branch = "-" + $Matches[1];
	$suffix = "";
} else {
	$branch = "";
	$suffix = "";
}

$revision = [Int32]::Parse((git rev-list --count "$baseCommit..HEAD")) + $baseCommitRev;

$newVersion="$major.$minor.$build.$revision";
$ilspyVersionNumber = "$newVersion$branch$versionName$suffix";
$ilspyVersionNumber = $ilspyVersionNumber.Replace("/", "-");
$env:ILSPY_VERSION_NUMBER="$ilspyVersionNumber";
$env:ILSPY_VERSION_NUMBER | Out-File "ILSPY_VERSION"
Write-Host "new version: $ilspyVersionNumber";


================================================
FILE: BuildTools/pre-commit
================================================
#!/bin/sh
#
# To enable this hook, copy/symlink this file to ".git/hooks/pre-commit".
#  mklink .git\hooks\pre-commit ..\..\BuildTools\pre-commit

set -eu

DOTNET_FORMAT_VERSION=10.0.100-rtm.25531.102
DOTNET_FORMAT_SOURCE="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10-transport/nuget/v3/index.json"
DOTNET_PATH="$LOCALAPPDATA/ICSharpCode/ILSpy/dotnet-format-$DOTNET_FORMAT_VERSION"
if [ ! -d "$DOTNET_PATH" ]; then
 echo "Downloading dotnet-format $DOTNET_FORMAT_VERSION..."
 dotnet tool install --tool-path "$DOTNET_PATH" dotnet-format --version "$DOTNET_FORMAT_VERSION" --add-source "$DOTNET_FORMAT_SOURCE"
fi

"$DOTNET_PATH/dotnet-format.exe" --version
if [ "${1:-}" = "--format" ]; then
	# called via format.bat
	"$DOTNET_PATH/dotnet-format.exe" whitespace --no-restore --verbosity detailed ILSpy.sln
elif git diff --quiet --ignore-submodules; then
	"$DOTNET_PATH/dotnet-format.exe" whitespace --no-restore --verbosity detailed ILSpy.sln
	git add -u -- \*\*.cs
else
	echo Partial commit: only verifying formatting
	exec "$DOTNET_PATH/dotnet-format.exe" whitespace --verify-no-changes --no-restore --verbosity detailed ILSpy.sln
fi


================================================
FILE: BuildTools/sort-resx.ps1
================================================
$ErrorActionPreference = "Stop";

[Reflection.Assembly]::LoadWithPartialName("System.Xml.Linq") | Out-Null

Write-Host "Sorting .resx files...";

Get-ChildItem -Include *.resx -Recurse | foreach ($_) {
	Write-Host $_.FullName;
	
	$doc = [System.Xml.Linq.XDocument]::Load($_.FullName);
	$descendants = [System.Linq.Enumerable]::ToArray($doc.Descendants("data"));

	[System.Xml.Linq.Extensions]::Remove($descendants);
	$ordered = [System.Linq.Enumerable]::OrderBy($descendants, [System.Func[System.Xml.Linq.XElement,string]] { param ($e) $e.Attribute("name").Value }, [System.StringComparer]::Ordinal);
	$doc.Root.Add($ordered);
	$doc.Save($_.FullName);
}



================================================
FILE: BuildTools/update-assemblyinfo.ps1
================================================
if (-not ($PSVersionTable.PSCompatibleVersions -contains "5.0")) {
	Write-Error "This script requires at least powershell version 5.0!";
	return 255;
}

$ErrorActionPreference = "Stop"

$baseCommit = "d779383cb85003d6dabeb976f0845631e07bf463";
$baseCommitRev = 1;

# make sure this matches artifacts-only branches list in appveyor.yml!
$masterBranches = '^(master|release/.+)$';

$decompilerVersionInfoTemplateFile = "ICSharpCode.Decompiler/Properties/DecompilerVersionInfo.template.cs";

function Test-File([string]$filename) {
	return [System.IO.File]::Exists((Join-Path (Get-Location) $filename));
}

function Test-Dir([string]$name) {
	return [System.IO.Directory]::Exists((Join-Path (Get-Location) $name));
}

function Find-Git() {
	try {
		$executable = (get-command git).Path;
		return $executable -ne $null;
	} catch {
		#git not found in path, continue;
	}
	#we're on Windows
	if ($env:PROGRAMFILES -ne $null) {
		#hack for x86 powershell used by default (yuck!)
		if (${env:PROGRAMFILES(X86)} -eq ${env:PROGRAMFILES}) {
			$env:PROGRAMFILES = $env:PROGRAMFILES.Substring(0, $env:PROGRAMFILES.Length - 6);
		}
		#try to add git to path
		if ([System.IO.Directory]::Exists("$env:PROGRAMFILES\git\cmd\")) {
			$env:PATH = "$env:PATH;$env:PROGRAMFILES\git\cmd\";
			return $true;
		}
	}
	return $false;
}

function No-Git() {
	return -not (((Test-Dir ".git") -or (Test-File ".git")) -and (Find-Git));
}

function gitVersion() {
	if (No-Git) {
		return 0;
	}
	try {
		return [Int32]::Parse((git rev-list --count "$baseCommit..HEAD" 2>&1 | Tee-Object -Variable cmdOutput)) + $baseCommitRev;
	} catch {
		Write-Host $cmdOutput
		return 0;
	}
}

function gitCommitHash() {
	if (No-Git) {
		return "0000000000000000000000000000000000000000";
	}
	try {
		return (git rev-list --max-count 1 HEAD 2>&1 | Tee-Object -Variable cmdOutput);
	} catch {
		Write-Host $cmdOutput
		return "0000000000000000000000000000000000000000";
	}
}

function gitShortCommitHash() {
	if (No-Git) {
		return "00000000";
	}
	try {
		return (git rev-parse --short=8 (git rev-list --max-count 1 HEAD 2>&1 | Tee-Object -Variable cmdOutput) 2>&1 | Tee-Object -Variable cmdOutput);
	} catch {
		Write-Host $cmdOutput
		return "00000000";
	}	
}

function gitBranch() {
	if (No-Git) {
		return "no-branch";
	}

	if ($env:APPVEYOR_REPO_BRANCH -ne $null) {
		return $env:APPVEYOR_REPO_BRANCH;
	} elseif ($env:BUILD_SOURCEBRANCHNAME -ne $null) {
		return $env:BUILD_SOURCEBRANCHNAME;
	} else {
		return ((git branch --no-color).Split([System.Environment]::NewLine) | where { $_ -match "^\* " } | select -First 1).Substring(2);
	}
}

$templateFiles = (
	@{Input=$decompilerVersionInfoTemplateFile; Output="ICSharpCode.Decompiler/Properties/DecompilerVersionInfo.cs"},
	@{Input="ILSpy.AddIn/source.extension.vsixmanifest.template"; Output = "ILSpy.AddIn/source.extension.vsixmanifest"},
	@{Input="ILSpy.AddIn.VS2022/source.extension.vsixmanifest.template"; Output = "ILSpy.AddIn.VS2022/source.extension.vsixmanifest"}
);

[string]$mutexId = "ILSpyUpdateAssemblyInfo" + (Get-Location).ToString().GetHashCode();
Write-Host $mutexId;
[bool]$createdNew = $false;
$mutex = New-Object System.Threading.Mutex($true, $mutexId, [ref]$createdNew);
try {
	if (-not $createdNew) {
		try {
			$mutex.WaitOne(10000);
		} catch [System.Threading.AbandonedMutexException] {
		}
		return 0;
	}

	if (-not (Test-File "ILSpy.sln")) {
		Write-Error "Working directory must be the ILSpy repo root!";
		return 2;
	}

	$versionParts = @{};
	Get-Content $decompilerVersionInfoTemplateFile | where { $_ -match 'string (\w+) = "?(\w+)"?;' } | foreach { $versionParts.Add($Matches[1], $Matches[2]) }

	$major = $versionParts.Major;
	$minor = $versionParts.Minor;
	$build = $versionParts.Build;
	$versionName = $versionParts.VersionName;
	$revision = gitVersion;
	$branchName = gitBranch;
	$gitCommitHash = gitCommitHash;
	$gitShortCommitHash = gitShortCommitHash;

	if ($branchName -match $masterBranches) {
		$postfixBranchName = "";
	} else {
		$postfixBranchName = "-$branchName";
	}

	if ($versionName -eq "null") {
		$versionName = "";
		$postfixVersionName = "";
	} else {
		$postfixVersionName = "-$versionName";
	}
	
	$buildConfig = $args[0].ToString().ToLower();
	if ($buildConfig -eq "release") {
		$buildConfig = "";
	} else {
		$buildConfig = "-" + $buildConfig;
	}

	$fullVersionNumber = "$major.$minor.$build.$revision";
	if ((-not (Test-File "VERSION")) -or (((Get-Content "VERSION") -Join [System.Environment]::NewLine) -ne "$fullVersionNumber$postfixVersionName")) {
		"$fullVersionNumber$postfixVersionName" | Out-File -Encoding utf8 -NoNewLine "VERSION";
	}
    
	foreach ($file in $templateFiles) {
		[string]$in = (Get-Content $file.Input) -Join [System.Environment]::NewLine;

		$out = $in.Replace('$INSERTVERSION$', $fullVersionNumber);
		$out = $out.Replace('$INSERTMAJORVERSION$', $major);
		$out = $out.Replace('$INSERTREVISION$', $revision);
		$out = $out.Replace('$INSERTCOMMITHASH$', $gitCommitHash);
		$out = $out.Replace('$INSERTSHORTCOMMITHASH$', $gitShortCommitHash);
		$out = $out.Replace('$INSERTDATE$', [System.DateTime]::Now.ToString("MM/dd/yyyy"));
		$out = $out.Replace('$INSERTYEAR$', [System.DateTime]::Now.Year.ToString());
		$out = $out.Replace('$INSERTBRANCHNAME$', $branchName);
		$out = $out.Replace('$INSERTBRANCHPOSTFIX$', $postfixBranchName);
		$out = $out.Replace('$INSERTVERSIONNAME$', $versionName);
		$out = $out.Replace('$INSERTVERSIONNAMEPOSTFIX$', $postfixVersionName);
		$out = $out.Replace('$INSERTBUILDCONFIG$', $buildConfig);

		if ((-not (Test-File $file.Output)) -or (((Get-Content $file.Output) -Join [System.Environment]::NewLine) -ne $out)) {
			$utf8NoBom = New-Object System.Text.UTF8Encoding($false);
			[System.IO.File]::WriteAllText($file.Output, $out, $utf8NoBom);
		}
	}
	
} finally {
	$mutex.ReleaseMutex();
	$mutex.Close();
}

================================================
FILE: Directory.Build.props
================================================
<Project>
  <PropertyGroup>
    <NoWarn>$(NoWarn);NU1510</NoWarn>
  </PropertyGroup>

  <PropertyGroup>
    <EnableNUnitRunner>true</EnableNUnitRunner>
  </PropertyGroup>
</Project>

================================================
FILE: Directory.Packages.props
================================================
<Project>
  <PropertyGroup>
    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
    <CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
  </PropertyGroup>
  <ItemGroup>
    <PackageVersion Include="AvalonEdit" Version="6.3.1.120" />
    <PackageVersion Include="AwesomeAssertions" Version="9.4.0" />
    <PackageVersion Include="CliWrap" Version="3.10.0" />
    <PackageVersion Include="DataGridExtensions" Version="2.9.1" />
    <PackageVersion Include="DiffLib" Version="2025.0.0" />
    <PackageVersion Include="Dirkster.AvalonDock.Themes.VS2013" Version="4.72.1" />
    <PackageVersion Include="ILCompiler.Reflection.ReadyToRun.Experimental" Version="10.0.0-rtm.25531.102" />
    <PackageVersion Include="Iced" Version="1.21.0" />
    <PackageVersion Include="K4os.Compression.LZ4" Version="1.3.8" />
    <PackageVersion Include="McMaster.Extensions.CommandLineUtils" Version="5.0.1" />
    <PackageVersion Include="McMaster.Extensions.Hosting.CommandLine" Version="5.0.1" />
    <PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.3.0" />
    <PackageVersion Include="Microsoft.CodeAnalysis.VisualBasic" Version="5.3.0" />
    <PackageVersion Include="Microsoft.DiaSymReader.Converter.Xml" Version="1.1.0-beta2-22171-02" />
    <PackageVersion Include="Microsoft.DiaSymReader" Version="1.4.0" />
    <PackageVersion Include="Microsoft.DiaSymReader.Native" Version="17.0.0-beta1.21524.1" />
    <PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.5" />
    <PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="10.0.5" />
    <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.5" />
    <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.5" />
    <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
    <PackageVersion Include="Microsoft.NETCore.ILAsm" Version="10.0.5" />
    <PackageVersion Include="Microsoft.NETCore.ILDAsm" Version="10.0.5" />
    <PackageVersion Include="Microsoft.Sbom.Targets" Version="4.1.5" />
    <PackageVersion Include="Microsoft.SourceLink.GitHub" Version="10.0.201" />
    <PackageVersion Include="Microsoft.Testing.Extensions.TrxReport" Version="2.0.2" />
    <PackageVersion Include="Microsoft.Testing.Extensions.VSTestBridge" Version="2.0.2" />
    <PackageVersion Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.142" />
    <PackageVersion Include="Mono.Cecil" Version="0.11.6" />
    <PackageVersion Include="NSubstitute" Version="5.3.0" />
    <PackageVersion Include="NSubstitute.Analyzers.CSharp" Version="1.0.17" />
    <PackageVersion Include="NUnit" Version="4.5.1" />
    <PackageVersion Include="NUnit3TestAdapter" Version="6.1.0" />
    <PackageVersion Include="NuGet.Protocol" Version="7.3.0" />
    <PackageVersion Include="PowerShellStandard.Library" Version="5.1.1" />
    <PackageVersion Include="System.Composition.AttributedModel" Version="10.0.5" />
    <PackageVersion Include="System.Collections.Immutable" Version="10.0.5" />
    <PackageVersion Include="System.Memory" Version="4.6.3" />
    <PackageVersion Include="System.Reflection.Metadata" Version="10.0.5" />
    <PackageVersion Include="System.Resources.Extensions" Version="10.0.5" />
    <PackageVersion Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.2" />
    <PackageVersion Include="System.Security.Cryptography.Pkcs" Version="10.0.5" />
    <PackageVersion Include="TomsToolbox.Composition.MicrosoftExtensions" Version="2.22.2" />
    <PackageVersion Include="TomsToolbox.Wpf.Composition" Version="2.22.2" />
    <PackageVersion Include="TomsToolbox.Wpf.Composition.AttributedModel" Version="2.22.2" />
    <PackageVersion Include="TomsToolbox.Wpf.Styles" Version="2.22.2" />
    <PackageVersion Include="coverlet.MTP" Version="8.0.1" />
    <PackageVersion Include="System.Net.Http" Version="4.3.4" />
    <PackageVersion Include="System.Private.Uri" Version="4.3.2" />
    <PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
  </ItemGroup>
  <ItemGroup>
    <GlobalPackageReference Include="TomsToolbox.Composition.Analyzer" Version="2.22.2" />
  </ItemGroup>
</Project>

================================================
FILE: ICSharpCode.BamlDecompiler/Baml/BamlContext.cs
================================================
/*
	Copyright (c) 2015 Ki

	Permission is hereby granted, free of charge, to any person obtaining a copy
	of this software and associated documentation files (the "Software"), to deal
	in the Software without restriction, including without limitation the rights
	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
	copies of the Software, and to permit persons to whom the Software is
	furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in
	all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
	THE SOFTWARE.
*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;

using ICSharpCode.Decompiler.Metadata;
using ICSharpCode.Decompiler.TypeSystem;

using Metadata = ICSharpCode.Decompiler.Metadata;

namespace ICSharpCode.BamlDecompiler.Baml
{
	internal class BamlContext
	{
		public IDecompilerTypeSystem TypeSystem { get; }
		public KnownThings KnownThings { get; }

		Dictionary<ushort, (string FullAssemblyName, IModule Assembly)> assemblyMap = new Dictionary<ushort, (string FullAssemblyName, IModule Assembly)>();

		public Dictionary<ushort, AssemblyInfoRecord> AssemblyIdMap { get; }
		public Dictionary<ushort, AttributeInfoRecord> AttributeIdMap { get; }
		public Dictionary<ushort, StringInfoRecord> StringIdMap { get; }
		public Dictionary<ushort, TypeInfoRecord> TypeIdMap { get; }

		BamlContext(IDecompilerTypeSystem typeSystem)
		{
			this.TypeSystem = typeSystem;
			KnownThings = new KnownThings(typeSystem);

			AssemblyIdMap = new Dictionary<ushort, AssemblyInfoRecord>();
			AttributeIdMap = new Dictionary<ushort, AttributeInfoRecord>();
			StringIdMap = new Dictionary<ushort, StringInfoRecord>();
			TypeIdMap = new Dictionary<ushort, TypeInfoRecord>();
		}

		public static BamlContext ConstructContext(IDecompilerTypeSystem typeSystem, BamlDocument document, CancellationToken token)
		{
			var ctx = new BamlContext(typeSystem);

			foreach (var record in document)
			{
				token.ThrowIfCancellationRequested();

				if (record is AssemblyInfoRecord assemblyInfo)
				{
					if (assemblyInfo.AssemblyId == ctx.AssemblyIdMap.Count)
						ctx.AssemblyIdMap.Add(assemblyInfo.AssemblyId, assemblyInfo);
				}
				else if (record is AttributeInfoRecord attrInfo)
				{
					if (attrInfo.AttributeId == ctx.AttributeIdMap.Count)
						ctx.AttributeIdMap.Add(attrInfo.AttributeId, attrInfo);
				}
				else if (record is StringInfoRecord strInfo)
				{
					if (strInfo.StringId == ctx.StringIdMap.Count)
						ctx.StringIdMap.Add(strInfo.StringId, strInfo);
				}
				else if (record is TypeInfoRecord typeInfo)
				{
					if (typeInfo.TypeId == ctx.TypeIdMap.Count)
						ctx.TypeIdMap.Add(typeInfo.TypeId, typeInfo);
				}
			}

			return ctx;
		}

		public (string FullAssemblyName, IModule Assembly) ResolveAssembly(ushort id)
		{
			id &= 0xfff;
			if (!assemblyMap.TryGetValue(id, out var assembly))
			{
				if (AssemblyIdMap.TryGetValue(id, out var assemblyRec))
				{
					var assemblyName = Metadata.AssemblyNameReference.Parse(assemblyRec.AssemblyFullName);

					if (assemblyName.Name == TypeSystem.MainModule.AssemblyName)
					{
						assembly = (assemblyRec.AssemblyFullName, TypeSystem.MainModule);
					}
					else
					{
						assembly = (assemblyRec.AssemblyFullName, FindMatchingReference(assemblyName));
					}
				}
				else
					assembly = (null, null);

				assemblyMap[id] = assembly;
			}
			return assembly;
		}

		private IModule FindMatchingReference(AssemblyNameReference name)
		{
			IModule bestMatch = null;
			foreach (var module in TypeSystem.ReferencedModules)
			{
				if (module.AssemblyName == name.Name)
				{
					// using highest version as criterion
					if (bestMatch == null || bestMatch.AssemblyVersion <= module.AssemblyVersion)
					{
						bestMatch = module;
					}
				}
			}
			return bestMatch;
		}
	}
}

================================================
FILE: ICSharpCode.BamlDecompiler/Baml/BamlDocument.cs
================================================
/*
	Copyright (c) 2015 Ki

	Permission is hereby granted, free of charge, to any person obtaining a copy
	of this software and associated documentation files (the "Software"), to deal
	in the Software without restriction, including without limitation the rights
	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
	copies of the Software, and to permit persons to whom the Software is
	furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in
	all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
	THE SOFTWARE.
*/

using System.Collections.Generic;

namespace ICSharpCode.BamlDecompiler.Baml
{
	internal class BamlDocument : List<BamlRecord>
	{
		public string DocumentName { get; set; }

		public string Signature { get; set; }
		public BamlVersion ReaderVersion { get; set; }
		public BamlVersion UpdaterVersion { get; set; }
		public BamlVersion WriterVersion { get; set; }

		public struct BamlVersion
		{
			public ushort Major;
			public ushort Minor;
		}
	}
}

================================================
FILE: ICSharpCode.BamlDecompiler/Baml/BamlNode.cs
================================================
/*
	Copyright (c) 2015 Ki

	Permission is hereby granted, free of charge, to any person obtaining a copy
	of this software and associated documentation files (the "Software"), to deal
	in the Software without restriction, including without limitation the rights
	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
	copies of the Software, and to permit persons to whom the Software is
	furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in
	all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
	THE SOFTWARE.
*/

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;

namespace ICSharpCode.BamlDecompiler.Baml
{
	internal abstract class BamlNode
	{
		public BamlBlockNode Parent { get; set; }
		public abstract BamlRecordType Type { get; }
		public object Annotation { get; set; }

		public abstract BamlRecord Record { get; }

		public static bool IsHeader(BamlRecord rec)
		{
			switch (rec.Type)
			{
				case BamlRecordType.ConstructorParametersStart:
				case BamlRecordType.DocumentStart:
				case BamlRecordType.ElementStart:
				case BamlRecordType.KeyElementStart:
				case BamlRecordType.NamedElementStart:
				case BamlRecordType.PropertyArrayStart:
				case BamlRecordType.PropertyComplexStart:
				case BamlRecordType.PropertyDictionaryStart:
				case BamlRecordType.PropertyListStart:
				case BamlRecordType.StaticResourceStart:
					return true;
			}
			return false;
		}

		public static bool IsFooter(BamlRecord rec)
		{
			switch (rec.Type)
			{
				case BamlRecordType.ConstructorParametersEnd:
				case BamlRecordType.DocumentEnd:
				case BamlRecordType.ElementEnd:
				case BamlRecordType.KeyElementEnd:
				case BamlRecordType.PropertyArrayEnd:
				case BamlRecordType.PropertyComplexEnd:
				case BamlRecordType.PropertyDictionaryEnd:
				case BamlRecordType.PropertyListEnd:
				case BamlRecordType.StaticResourceEnd:
					return true;
			}
			return false;
		}

		public static bool IsMatch(BamlRecord header, BamlRecord footer)
		{
			switch (header.Type)
			{
				case BamlRecordType.ConstructorParametersStart:
					return footer.Type == BamlRecordType.ConstructorParametersEnd;

				case BamlRecordType.DocumentStart:
					return footer.Type == BamlRecordType.DocumentEnd;

				case BamlRecordType.KeyElementStart:
					return footer.Type == BamlRecordType.KeyElementEnd;

				case BamlRecordType.PropertyArrayStart:
					return footer.Type == BamlRecordType.PropertyArrayEnd;

				case BamlRecordType.PropertyComplexStart:
					return footer.Type == BamlRecordType.PropertyComplexEnd;

				case BamlRecordType.PropertyDictionaryStart:
					return footer.Type == BamlRecordType.PropertyDictionaryEnd;

				case BamlRecordType.PropertyListStart:
					return footer.Type == BamlRecordType.PropertyListEnd;

				case BamlRecordType.StaticResourceStart:
					return footer.Type == BamlRecordType.StaticResourceEnd;

				case BamlRecordType.ElementStart:
				case BamlRecordType.NamedElementStart:
					return footer.Type == BamlRecordType.ElementEnd;
			}
			return false;
		}

		public static BamlNode Parse(BamlDocument document, CancellationToken token)
		{
			Debug.Assert(document.Count > 0 && document[0].Type == BamlRecordType.DocumentStart);

			BamlBlockNode current = null;
			var stack = new Stack<BamlBlockNode>();

			for (int i = 0; i < document.Count; i++)
			{
				token.ThrowIfCancellationRequested();

				if (IsHeader(document[i]))
				{
					var prev = current;

					current = new BamlBlockNode {
						Header = document[i]
					};

					if (prev != null)
					{
						prev.Children.Add(current);
						current.Parent = prev;
						stack.Push(prev);
					}
				}
				else if (IsFooter(document[i]))
				{
					if (current == null)
						throw new Exception("Unexpected footer.");

					while (!IsMatch(current.Header, document[i]))
					{
						// End record can be omited (sometimes).
						if (stack.Count > 0)
							current = stack.Pop();
					}
					current.Footer = document[i];
					if (stack.Count > 0)
						current = stack.Pop();
				}
				else
					current.Children.Add(new BamlRecordNode(document[i]) { Parent = current });
			}
			Debug.Assert(stack.Count == 0);
			return current;
		}
	}

	internal class BamlRecordNode : BamlNode
	{
		BamlRecord record;

		public override BamlRecord Record => record;
		public override BamlRecordType Type => Record.Type;

		public BamlRecordNode(BamlRecord record) => this.record = record;
	}

	internal class BamlBlockNode : BamlNode
	{
		public BamlRecord Header { get; set; }
		public IList<BamlNode> Children { get; }
		public BamlRecord Footer { get; set; }

		public override BamlRecord Record => Header;
		public override BamlRecordType Type => Header.Type;

		public BamlBlockNode() => Children = new List<BamlNode>();
	}
}

================================================
FILE: ICSharpCode.BamlDecompiler/Baml/BamlReader.cs
================================================
/*
	Copyright (c) 2015 Ki

	Permission is hereby granted, free of charge, to any person obtaining a copy
	of this software and associated documentation files (the "Software"), to deal
	in the Software without restriction, including without limitation the rights
	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
	copies of the Software, and to permit persons to whom the Software is
	furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in
	all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
	THE SOFTWARE.
*/

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Threading;

namespace ICSharpCode.BamlDecompiler.Baml
{
	internal class BamlBinaryReader : BinaryReader
	{
		public BamlBinaryReader(Stream stream)
			: base(stream)
		{
		}

		public int ReadEncodedInt() => Read7BitEncodedInt();
	}

	internal class BamlReader
	{
		const string MSBAML_SIG = "MSBAML";

		internal static bool IsBamlHeader(Stream str)
		{
			var pos = str.Position;
			try
			{
				var rdr = new BinaryReader(str, Encoding.Unicode);
				int len = (int)(rdr.ReadUInt32() >> 1);
				if (len != MSBAML_SIG.Length)
					return false;
				var sig = new string(rdr.ReadChars(len));
				return sig == MSBAML_SIG;
			}
			finally
			{
				str.Position = pos;
			}
		}

		static string ReadSignature(Stream str)
		{
			var rdr = new BinaryReader(str, Encoding.Unicode);
			uint len = rdr.ReadUInt32();
			var sig = new string(rdr.ReadChars((int)(len >> 1)));
			rdr.ReadBytes((int)(((len + 3) & ~3) - len));
			return sig;
		}

		public static BamlDocument ReadDocument(Stream str, CancellationToken token)
		{
			var ret = new BamlDocument();
			var reader = new BamlBinaryReader(str);
			ret.Signature = ReadSignature(str);
			if (ret.Signature != MSBAML_SIG)
				throw new NotSupportedException();
			ret.ReaderVersion = new BamlDocument.BamlVersion { Major = reader.ReadUInt16(), Minor = reader.ReadUInt16() };
			ret.UpdaterVersion = new BamlDocument.BamlVersion { Major = reader.ReadUInt16(), Minor = reader.ReadUInt16() };
			ret.WriterVersion = new BamlDocument.BamlVersion { Major = reader.ReadUInt16(), Minor = reader.ReadUInt16() };
			if (ret.ReaderVersion.Major != 0 || ret.ReaderVersion.Minor != 0x60 ||
				ret.UpdaterVersion.Major != 0 || ret.UpdaterVersion.Minor != 0x60 ||
				ret.WriterVersion.Major != 0 || ret.WriterVersion.Minor != 0x60)
				throw new NotSupportedException();

			var recs = new Dictionary<long, BamlRecord>();
			while (str.Position < str.Length)
			{
				token.ThrowIfCancellationRequested();

				long pos = str.Position;
				var type = (BamlRecordType)reader.ReadByte();
				BamlRecord rec = null;
				switch (type)
				{
					case BamlRecordType.AssemblyInfo:
						rec = new AssemblyInfoRecord();
						break;
					case BamlRecordType.AttributeInfo:
						rec = new AttributeInfoRecord();
						break;
					case BamlRecordType.ConstructorParametersStart:
						rec = new ConstructorParametersStartRecord();
						break;
					case BamlRecordType.ConstructorParametersEnd:
						rec = new ConstructorParametersEndRecord();
						break;
					case BamlRecordType.ConstructorParameterType:
						rec = new ConstructorParameterTypeRecord();
						break;
					case BamlRecordType.ConnectionId:
						rec = new ConnectionIdRecord();
						break;
					case BamlRecordType.ContentProperty:
						rec = new ContentPropertyRecord();
						break;
					case BamlRecordType.DefAttribute:
						rec = new DefAttributeRecord();
						break;
					case BamlRecordType.DefAttributeKeyString:
						rec = new DefAttributeKeyStringRecord();
						break;
					case BamlRecordType.DefAttributeKeyType:
						rec = new DefAttributeKeyTypeRecord();
						break;
					case BamlRecordType.DeferableContentStart:
						rec = new DeferableContentStartRecord();
						break;
					case BamlRecordType.DocumentEnd:
						rec = new DocumentEndRecord();
						break;
					case BamlRecordType.DocumentStart:
						rec = new DocumentStartRecord();
						break;
					case BamlRecordType.ElementEnd:
						rec = new ElementEndRecord();
						break;
					case BamlRecordType.ElementStart:
						rec = new ElementStartRecord();
						break;
					case BamlRecordType.KeyElementEnd:
						rec = new KeyElementEndRecord();
						break;
					case BamlRecordType.KeyElementStart:
						rec = new KeyElementStartRecord();
						break;
					case BamlRecordType.LineNumberAndPosition:
						rec = new LineNumberAndPositionRecord();
						break;
					case BamlRecordType.LinePosition:
						rec = new LinePositionRecord();
						break;
					case BamlRecordType.LiteralContent:
						rec = new LiteralContentRecord();
						break;
					case BamlRecordType.NamedElementStart:
						rec = new NamedElementStartRecord();
						break;
					case BamlRecordType.OptimizedStaticResource:
						rec = new OptimizedStaticResourceRecord();
						break;
					case BamlRecordType.PIMapping:
						rec = new PIMappingRecord();
						break;
					case BamlRecordType.PresentationOptionsAttribute:
						rec = new PresentationOptionsAttributeRecord();
						break;
					case BamlRecordType.Property:
						rec = new PropertyRecord();
						break;
					case BamlRecordType.PropertyArrayEnd:
						rec = new PropertyArrayEndRecord();
						break;
					case BamlRecordType.PropertyArrayStart:
						rec = new PropertyArrayStartRecord();
						break;
					case BamlRecordType.PropertyComplexEnd:
						rec = new PropertyComplexEndRecord();
						break;
					case BamlRecordType.PropertyComplexStart:
						rec = new PropertyComplexStartRecord();
						break;
					case BamlRecordType.PropertyCustom:
						rec = new PropertyCustomRecord();
						break;
					case BamlRecordType.PropertyDictionaryEnd:
						rec = new PropertyDictionaryEndRecord();
						break;
					case BamlRecordType.PropertyDictionaryStart:
						rec = new PropertyDictionaryStartRecord();
						break;
					case BamlRecordType.PropertyListEnd:
						rec = new PropertyListEndRecord();
						break;
					case BamlRecordType.PropertyListStart:
						rec = new PropertyListStartRecord();
						break;
					case BamlRecordType.PropertyStringReference:
						rec = new PropertyStringReferenceRecord();
						break;
					case BamlRecordType.PropertyTypeReference:
						rec = new PropertyTypeReferenceRecord();
						break;
					case BamlRecordType.PropertyWithConverter:
						rec = new PropertyWithConverterRecord();
						break;
					case BamlRecordType.PropertyWithExtension:
						rec = new PropertyWithExtensionRecord();
						break;
					case BamlRecordType.PropertyWithStaticResourceId:
						rec = new PropertyWithStaticResourceIdRecord();
						break;
					case BamlRecordType.RoutedEvent:
						rec = new RoutedEventRecord();
						break;
					case BamlRecordType.StaticResourceEnd:
						rec = new StaticResourceEndRecord();
						break;
					case BamlRecordType.StaticResourceId:
						rec = new StaticResourceIdRecord();
						break;
					case BamlRecordType.StaticResourceStart:
						rec = new StaticResourceStartRecord();
						break;
					case BamlRecordType.StringInfo:
						rec = new StringInfoRecord();
						break;
					case BamlRecordType.Text:
						rec = new TextRecord();
						break;
					case BamlRecordType.TextWithConverter:
						rec = new TextWithConverterRecord();
						break;
					case BamlRecordType.TextWithId:
						rec = new TextWithIdRecord();
						break;
					case BamlRecordType.TypeInfo:
						rec = new TypeInfoRecord();
						break;
					case BamlRecordType.TypeSerializerInfo:
						rec = new TypeSerializerInfoRecord();
						break;
					case BamlRecordType.XmlnsProperty:
						rec = new XmlnsPropertyRecord();
						break;
					case BamlRecordType.XmlAttribute:
					case BamlRecordType.ProcessingInstruction:
					case BamlRecordType.LastRecordType:
					case BamlRecordType.EndAttributes:
					case BamlRecordType.DefTag:
					case BamlRecordType.ClrEvent:
					case BamlRecordType.Comment:
					default:
						throw new NotSupportedException();
				}
				rec.Position = pos;

				rec.Read(reader);
				ret.Add(rec);
				recs.Add(pos, rec);
			}
			for (int i = 0; i < ret.Count; i++)
			{
				if (ret[i] is IBamlDeferRecord defer)
					defer.ReadDefer(ret, i, _ => recs[_]);
			}

			return ret;
		}
	}
}

================================================
FILE: ICSharpCode.BamlDecompiler/Baml/BamlRecords.cs
================================================
/*
	Copyright (c) 2015 Ki

	Permission is hereby granted, free of charge, to any person obtaining a copy
	of this software and associated documentation files (the "Software"), to deal
	in the Software without restriction, including without limitation the rights
	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
	copies of the Software, and to permit persons to whom the Software is
	furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in
	all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
	THE SOFTWARE.
*/

using System;
using System.Diagnostics;
using System.IO;

namespace ICSharpCode.BamlDecompiler.Baml
{
	internal enum BamlRecordType : byte
	{
		ClrEvent = 0x13,
		Comment = 0x17,
		AssemblyInfo = 0x1c,
		AttributeInfo = 0x1f,
		ConstructorParametersStart = 0x2a,
		ConstructorParametersEnd = 0x2b,
		ConstructorParameterType = 0x2c,
		ConnectionId = 0x2d,
		ContentProperty = 0x2e,
		DefAttribute = 0x19,
		DefAttributeKeyString = 0x26,
		DefAttributeKeyType = 0x27,
		DeferableContentStart = 0x25,
		DefTag = 0x18,
		DocumentEnd = 0x2,
		DocumentStart = 0x1,
		ElementEnd = 0x4,
		ElementStart = 0x3,
		EndAttributes = 0x1a,
		KeyElementEnd = 0x29,
		KeyElementStart = 0x28,
		LastRecordType = 0x39,
		LineNumberAndPosition = 0x35,
		LinePosition = 0x36,
		LiteralContent = 0xf,
		NamedElementStart = 0x2f,
		OptimizedStaticResource = 0x37,
		PIMapping = 0x1b,
		PresentationOptionsAttribute = 0x34,
		ProcessingInstruction = 0x16,
		Property = 0x5,
		PropertyArrayEnd = 0xa,
		PropertyArrayStart = 0x9,
		PropertyComplexEnd = 0x8,
		PropertyComplexStart = 0x7,
		PropertyCustom = 0x6,
		PropertyDictionaryEnd = 0xe,
		PropertyDictionaryStart = 0xd,
		PropertyListEnd = 0xc,
		PropertyListStart = 0xb,
		PropertyStringReference = 0x21,
		PropertyTypeReference = 0x22,
		PropertyWithConverter = 0x24,
		PropertyWithExtension = 0x23,
		PropertyWithStaticResourceId = 0x38,
		RoutedEvent = 0x12,
		StaticResourceEnd = 0x31,
		StaticResourceId = 0x32,
		StaticResourceStart = 0x30,
		StringInfo = 0x20,
		Text = 0x10,
		TextWithConverter = 0x11,
		TextWithId = 0x33,
		TypeInfo = 0x1d,
		TypeSerializerInfo = 0x1e,
		XmlAttribute = 0x15,
		XmlnsProperty = 0x14
	}

	internal abstract class BamlRecord
	{
		public abstract BamlRecordType Type { get; }
		public long Position { get; internal set; }
		public abstract void Read(BamlBinaryReader reader);
		public abstract void Write(BamlBinaryWriter writer);
	}

	internal abstract class SizedBamlRecord : BamlRecord
	{
		public override void Read(BamlBinaryReader reader)
		{
			long pos = reader.BaseStream.Position;
			int size = reader.ReadEncodedInt();

			ReadData(reader, size - (int)(reader.BaseStream.Position - pos));
		}

		int SizeofEncodedInt(int val)
		{
			if ((val & ~0x7F) == 0)
			{
				return 1;
			}
			if ((val & ~0x3FFF) == 0)
			{
				return 2;
			}
			if ((val & ~0x1FFFFF) == 0)
			{
				return 3;
			}
			if ((val & ~0xFFFFFFF) == 0)
			{
				return 4;
			}
			return 5;
		}

		public override void Write(BamlBinaryWriter writer)
		{
			long pos = writer.BaseStream.Position;
			WriteData(writer);
			var size = (int)(writer.BaseStream.Position - pos);
			size = SizeofEncodedInt(SizeofEncodedInt(size) + size) + size;
			writer.BaseStream.Position = pos;
			writer.WriteEncodedInt(size);
			WriteData(writer);
		}

		protected abstract void ReadData(BamlBinaryReader reader, int size);
		protected abstract void WriteData(BamlBinaryWriter writer);
	}

	internal interface IBamlDeferRecord
	{
		long Position { get; }
		BamlRecord Record { get; set; }
		void ReadDefer(BamlDocument doc, int index, Func<long, BamlRecord> resolve);
		void WriteDefer(BamlDocument doc, int index, BinaryWriter wtr);
	}

	internal class XmlnsPropertyRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.XmlnsProperty;

		public string Prefix { get; set; }
		public string XmlNamespace { get; set; }
		public ushort[] AssemblyIds { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			Prefix = reader.ReadString();
			XmlNamespace = reader.ReadString();
			AssemblyIds = new ushort[reader.ReadUInt16()];
			for (int i = 0; i < AssemblyIds.Length; i++)
				AssemblyIds[i] = reader.ReadUInt16();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(Prefix);
			writer.Write(XmlNamespace);
			writer.Write((ushort)AssemblyIds.Length);
			foreach (ushort i in AssemblyIds)
				writer.Write(i);
		}
	}

	internal class PresentationOptionsAttributeRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.PresentationOptionsAttribute;

		public string Value { get; set; }
		public ushort NameId { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			Value = reader.ReadString();
			NameId = reader.ReadUInt16();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(Value);
			writer.Write(NameId);
		}
	}

	internal class PIMappingRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.PIMapping;

		public string XmlNamespace { get; set; }
		public string ClrNamespace { get; set; }
		public ushort AssemblyId { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			XmlNamespace = reader.ReadString();
			ClrNamespace = reader.ReadString();
			AssemblyId = reader.ReadUInt16();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(XmlNamespace);
			writer.Write(ClrNamespace);
			writer.Write(AssemblyId);
		}
	}

	internal class AssemblyInfoRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.AssemblyInfo;

		public ushort AssemblyId { get; set; }
		public string AssemblyFullName { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			AssemblyId = reader.ReadUInt16();
			AssemblyFullName = reader.ReadString();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(AssemblyId);
			writer.Write(AssemblyFullName);
		}
	}

	internal class PropertyRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.Property;

		public ushort AttributeId { get; set; }
		public string Value { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			AttributeId = reader.ReadUInt16();
			Value = reader.ReadString();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(AttributeId);
			writer.Write(Value);
		}
	}

	internal class PropertyWithConverterRecord : PropertyRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyWithConverter;

		public ushort ConverterTypeId { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			base.ReadData(reader, size);
			ConverterTypeId = reader.ReadUInt16();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			base.WriteData(writer);
			writer.Write(ConverterTypeId);
		}
	}

	internal class PropertyCustomRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyCustom;

		public ushort AttributeId { get; set; }
		public ushort SerializerTypeId { get; set; }
		public byte[] Data { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			long pos = reader.BaseStream.Position;
			AttributeId = reader.ReadUInt16();
			SerializerTypeId = reader.ReadUInt16();
			Data = reader.ReadBytes(size - (int)(reader.BaseStream.Position - pos));
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(AttributeId);
			writer.Write(SerializerTypeId);
			writer.Write(Data);
		}
	}

	internal class DefAttributeRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.DefAttribute;

		public string Value { get; set; }
		public ushort NameId { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			Value = reader.ReadString();
			NameId = reader.ReadUInt16();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(Value);
			writer.Write(NameId);
		}
	}

	internal class DefAttributeKeyStringRecord : SizedBamlRecord, IBamlDeferRecord
	{
		internal uint pos = 0xffffffff;

		public override BamlRecordType Type => BamlRecordType.DefAttributeKeyString;

		public ushort ValueId { get; set; }
		public bool Shared { get; set; }
		public bool SharedSet { get; set; }

		public BamlRecord Record { get; set; }

		public void ReadDefer(BamlDocument doc, int index, Func<long, BamlRecord> resolve)
		{
			bool keys = true;
			do
			{
				switch (doc[index].Type)
				{
					case BamlRecordType.DefAttributeKeyString:
					case BamlRecordType.DefAttributeKeyType:
					case BamlRecordType.OptimizedStaticResource:
						keys = true;
						break;
					case BamlRecordType.StaticResourceStart:
						NavigateTree(doc, BamlRecordType.StaticResourceStart, BamlRecordType.StaticResourceEnd, ref index);
						keys = true;
						break;
					case BamlRecordType.KeyElementStart:
						NavigateTree(doc, BamlRecordType.KeyElementStart, BamlRecordType.KeyElementEnd, ref index);
						keys = true;
						break;
					default:
						keys = false;
						index--;
						break;
				}
				index++;
			} while (keys);
			Record = resolve(doc[index].Position + pos);
		}

		public void WriteDefer(BamlDocument doc, int index, BinaryWriter wtr)
		{
			bool keys = true;
			do
			{
				switch (doc[index].Type)
				{
					case BamlRecordType.DefAttributeKeyString:
					case BamlRecordType.DefAttributeKeyType:
					case BamlRecordType.OptimizedStaticResource:
						keys = true;
						break;
					case BamlRecordType.StaticResourceStart:
						NavigateTree(doc, BamlRecordType.StaticResourceStart, BamlRecordType.StaticResourceEnd, ref index);
						keys = true;
						break;
					case BamlRecordType.KeyElementStart:
						NavigateTree(doc, BamlRecordType.KeyElementStart, BamlRecordType.KeyElementEnd, ref index);
						keys = true;
						break;
					default:
						keys = false;
						index--;
						break;
				}
				index++;
			} while (keys);
			wtr.BaseStream.Seek(pos, SeekOrigin.Begin);
			wtr.Write((uint)(Record.Position - doc[index].Position));
		}

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			ValueId = reader.ReadUInt16();
			pos = reader.ReadUInt32();
			Shared = reader.ReadBoolean();
			SharedSet = reader.ReadBoolean();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(ValueId);
			pos = (uint)writer.BaseStream.Position;
			writer.Write((uint)0);
			writer.Write(Shared);
			writer.Write(SharedSet);
		}

		static void NavigateTree(BamlDocument doc, BamlRecordType start, BamlRecordType end, ref int index)
		{
			index++;
			while (true) //Assume there alway is a end
			{
				if (doc[index].Type == start)
					NavigateTree(doc, start, end, ref index);
				else if (doc[index].Type == end)
					return;
				index++;
			}
		}
	}

	internal class TypeInfoRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.TypeInfo;

		public ushort TypeId { get; set; }
		public ushort AssemblyId { get; set; }
		public string TypeFullName { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			TypeId = reader.ReadUInt16();
			AssemblyId = reader.ReadUInt16();
			TypeFullName = reader.ReadString();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(TypeId);
			writer.Write(AssemblyId);
			writer.Write(TypeFullName);
		}
	}

	internal class TypeSerializerInfoRecord : TypeInfoRecord
	{
		public override BamlRecordType Type => BamlRecordType.TypeSerializerInfo;

		public ushort SerializerTypeId { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			base.ReadData(reader, size);
			SerializerTypeId = reader.ReadUInt16();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			base.WriteData(writer);
			writer.Write(SerializerTypeId);
		}
	}

	internal class AttributeInfoRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.AttributeInfo;

		public ushort AttributeId { get; set; }
		public ushort OwnerTypeId { get; set; }
		public byte AttributeUsage { get; set; }
		public string Name { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			AttributeId = reader.ReadUInt16();
			OwnerTypeId = reader.ReadUInt16();
			AttributeUsage = reader.ReadByte();
			Name = reader.ReadString();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(AttributeId);
			writer.Write(OwnerTypeId);
			writer.Write(AttributeUsage);
			writer.Write(Name);
		}
	}

	internal class StringInfoRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.StringInfo;

		public ushort StringId { get; set; }
		public string Value { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			StringId = reader.ReadUInt16();
			Value = reader.ReadString();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(StringId);
			writer.Write(Value);
		}
	}

	internal class TextRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.Text;

		public string Value { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size) => Value = reader.ReadString();

		protected override void WriteData(BamlBinaryWriter writer) => writer.Write(Value);
	}

	internal class TextWithConverterRecord : TextRecord
	{
		public override BamlRecordType Type => BamlRecordType.TextWithConverter;

		public ushort ConverterTypeId { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			base.ReadData(reader, size);
			ConverterTypeId = reader.ReadUInt16();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			base.WriteData(writer);
			writer.Write(ConverterTypeId);
		}
	}

	internal class TextWithIdRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.TextWithId;

		public ushort ValueId { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size) => ValueId = reader.ReadUInt16();

		protected override void WriteData(BamlBinaryWriter writer) => writer.Write(ValueId);
	}

	internal class LiteralContentRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.LiteralContent;

		public string Value { get; set; }
		public uint Reserved0 { get; set; }
		public uint Reserved1 { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			Value = reader.ReadString();
			Reserved0 = reader.ReadUInt32();
			Reserved1 = reader.ReadUInt32();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(Value);
			writer.Write(Reserved0);
			writer.Write(Reserved1);
		}
	}

	internal class RoutedEventRecord : SizedBamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.RoutedEvent;

		public string Value { get; set; }
		public ushort AttributeId { get; set; }
		public uint Reserved1 { get; set; }

		protected override void ReadData(BamlBinaryReader reader, int size)
		{
			AttributeId = reader.ReadUInt16();
			Value = reader.ReadString();
		}

		protected override void WriteData(BamlBinaryWriter writer)
		{
			writer.Write(Value);
			writer.Write(AttributeId);
		}
	}

	internal class DocumentStartRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.DocumentStart;

		public bool LoadAsync { get; set; }
		public uint MaxAsyncRecords { get; set; }
		public bool DebugBaml { get; set; }

		public override void Read(BamlBinaryReader reader)
		{
			LoadAsync = reader.ReadBoolean();
			MaxAsyncRecords = reader.ReadUInt32();
			DebugBaml = reader.ReadBoolean();
		}

		public override void Write(BamlBinaryWriter writer)
		{
			writer.Write(LoadAsync);
			writer.Write(MaxAsyncRecords);
			writer.Write(DebugBaml);
		}
	}

	internal class DocumentEndRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.DocumentEnd;

		public override void Read(BamlBinaryReader reader)
		{
		}

		public override void Write(BamlBinaryWriter writer)
		{
		}
	}

	internal class ElementStartRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.ElementStart;

		public ushort TypeId { get; set; }
		public byte Flags { get; set; }

		public override void Read(BamlBinaryReader reader)
		{
			TypeId = reader.ReadUInt16();
			Flags = reader.ReadByte();
		}

		public override void Write(BamlBinaryWriter writer)
		{
			writer.Write(TypeId);
			writer.Write(Flags);
		}
	}

	internal class ElementEndRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.ElementEnd;

		public override void Read(BamlBinaryReader reader)
		{
		}

		public override void Write(BamlBinaryWriter writer)
		{
		}
	}

	internal class KeyElementStartRecord : DefAttributeKeyTypeRecord
	{
		public override BamlRecordType Type => BamlRecordType.KeyElementStart;
	}

	internal class KeyElementEndRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.KeyElementEnd;

		public override void Read(BamlBinaryReader reader)
		{
		}

		public override void Write(BamlBinaryWriter writer)
		{
		}
	}

	internal class ConnectionIdRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.ConnectionId;

		public uint ConnectionId { get; set; }

		public override void Read(BamlBinaryReader reader) => ConnectionId = reader.ReadUInt32();

		public override void Write(BamlBinaryWriter writer) => writer.Write(ConnectionId);
	}

	internal class PropertyWithExtensionRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyWithExtension;

		public ushort AttributeId { get; set; }
		public ushort Flags { get; set; }
		public ushort ValueId { get; set; }

		public override void Read(BamlBinaryReader reader)
		{
			AttributeId = reader.ReadUInt16();
			Flags = reader.ReadUInt16();
			ValueId = reader.ReadUInt16();
		}

		public override void Write(BamlBinaryWriter writer)
		{
			writer.Write(AttributeId);
			writer.Write(Flags);
			writer.Write(ValueId);
		}
	}

	internal class PropertyTypeReferenceRecord : PropertyComplexStartRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyTypeReference;

		public ushort TypeId { get; set; }

		public override void Read(BamlBinaryReader reader)
		{
			base.Read(reader);
			TypeId = reader.ReadUInt16();
		}

		public override void Write(BamlBinaryWriter writer)
		{
			base.Write(writer);
			writer.Write(TypeId);
		}
	}

	internal class PropertyStringReferenceRecord : PropertyComplexStartRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyStringReference;

		public ushort StringId { get; set; }

		public override void Read(BamlBinaryReader reader)
		{
			base.Read(reader);
			StringId = reader.ReadUInt16();
		}

		public override void Write(BamlBinaryWriter writer)
		{
			base.Write(writer);
			writer.Write(StringId);
		}
	}

	internal class PropertyWithStaticResourceIdRecord : StaticResourceIdRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyWithStaticResourceId;

		public ushort AttributeId { get; set; }

		public override void Read(BamlBinaryReader reader)
		{
			AttributeId = reader.ReadUInt16();
			base.Read(reader);
		}

		public override void Write(BamlBinaryWriter writer)
		{
			writer.Write(AttributeId);
			base.Write(writer);
		}
	}

	internal class ContentPropertyRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.ContentProperty;

		public ushort AttributeId { get; set; }

		public override void Read(BamlBinaryReader reader) => AttributeId = reader.ReadUInt16();

		public override void Write(BamlBinaryWriter writer) => writer.Write(AttributeId);
	}

	internal class DefAttributeKeyTypeRecord : ElementStartRecord, IBamlDeferRecord
	{
		internal uint pos = 0xffffffff;

		public override BamlRecordType Type => BamlRecordType.DefAttributeKeyType;

		public bool Shared { get; set; }
		public bool SharedSet { get; set; }

		public BamlRecord Record { get; set; }

		public void ReadDefer(BamlDocument doc, int index, Func<long, BamlRecord> resolve)
		{
			bool keys = true;
			do
			{
				switch (doc[index].Type)
				{
					case BamlRecordType.DefAttributeKeyString:
					case BamlRecordType.DefAttributeKeyType:
					case BamlRecordType.OptimizedStaticResource:
						keys = true;
						break;
					case BamlRecordType.StaticResourceStart:
						NavigateTree(doc, BamlRecordType.StaticResourceStart, BamlRecordType.StaticResourceEnd, ref index);
						keys = true;
						break;
					case BamlRecordType.KeyElementStart:
						NavigateTree(doc, BamlRecordType.KeyElementStart, BamlRecordType.KeyElementEnd, ref index);
						keys = true;
						break;
					default:
						keys = false;
						index--;
						break;
				}
				index++;
			} while (keys);
			Record = resolve(doc[index].Position + pos);
		}

		public void WriteDefer(BamlDocument doc, int index, BinaryWriter wtr)
		{
			bool keys = true;
			do
			{
				switch (doc[index].Type)
				{
					case BamlRecordType.DefAttributeKeyString:
					case BamlRecordType.DefAttributeKeyType:
					case BamlRecordType.OptimizedStaticResource:
						keys = true;
						break;
					case BamlRecordType.StaticResourceStart:
						NavigateTree(doc, BamlRecordType.StaticResourceStart, BamlRecordType.StaticResourceEnd, ref index);
						keys = true;
						break;
					case BamlRecordType.KeyElementStart:
						NavigateTree(doc, BamlRecordType.KeyElementStart, BamlRecordType.KeyElementEnd, ref index);
						keys = true;
						break;
					default:
						keys = false;
						index--;
						break;
				}
				index++;
			} while (keys);
			wtr.BaseStream.Seek(pos, SeekOrigin.Begin);
			wtr.Write((uint)(Record.Position - doc[index].Position));
		}

		public override void Read(BamlBinaryReader reader)
		{
			base.Read(reader);
			pos = reader.ReadUInt32();
			Shared = reader.ReadBoolean();
			SharedSet = reader.ReadBoolean();
		}

		public override void Write(BamlBinaryWriter writer)
		{
			base.Write(writer);
			pos = (uint)writer.BaseStream.Position;
			writer.Write((uint)0);
			writer.Write(Shared);
			writer.Write(SharedSet);
		}

		static void NavigateTree(BamlDocument doc, BamlRecordType start, BamlRecordType end, ref int index)
		{
			index++;
			while (true)
			{
				if (doc[index].Type == start)
					NavigateTree(doc, start, end, ref index);
				else if (doc[index].Type == end)
					return;
				index++;
			}
		}
	}

	internal class PropertyListStartRecord : PropertyComplexStartRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyListStart;
	}

	internal class PropertyListEndRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyListEnd;

		public override void Read(BamlBinaryReader reader)
		{
		}

		public override void Write(BamlBinaryWriter writer)
		{
		}
	}

	internal class PropertyDictionaryStartRecord : PropertyComplexStartRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyDictionaryStart;
	}

	internal class PropertyDictionaryEndRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyDictionaryEnd;

		public override void Read(BamlBinaryReader reader)
		{
		}

		public override void Write(BamlBinaryWriter writer)
		{
		}
	}

	internal class PropertyArrayStartRecord : PropertyComplexStartRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyArrayStart;
	}

	internal class PropertyArrayEndRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyArrayEnd;

		public override void Read(BamlBinaryReader reader)
		{
		}

		public override void Write(BamlBinaryWriter writer)
		{
		}
	}

	internal class PropertyComplexStartRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyComplexStart;

		public ushort AttributeId { get; set; }

		public override void Read(BamlBinaryReader reader) => AttributeId = reader.ReadUInt16();

		public override void Write(BamlBinaryWriter writer) => writer.Write(AttributeId);
	}

	internal class PropertyComplexEndRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.PropertyComplexEnd;

		public override void Read(BamlBinaryReader reader)
		{
		}

		public override void Write(BamlBinaryWriter writer)
		{
		}
	}

	internal class ConstructorParametersStartRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.ConstructorParametersStart;

		public override void Read(BamlBinaryReader reader)
		{
		}

		public override void Write(BamlBinaryWriter writer)
		{
		}
	}

	internal class ConstructorParametersEndRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.ConstructorParametersEnd;

		public override void Read(BamlBinaryReader reader)
		{
		}

		public override void Write(BamlBinaryWriter writer)
		{
		}
	}

	internal class ConstructorParameterTypeRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.ConstructorParameterType;

		public ushort TypeId { get; set; }

		public override void Read(BamlBinaryReader reader) => TypeId = reader.ReadUInt16();

		public override void Write(BamlBinaryWriter writer) => writer.Write(TypeId);
	}

	internal class DeferableContentStartRecord : BamlRecord, IBamlDeferRecord
	{
		long pos;
		internal uint size = 0xffffffff;

		public override BamlRecordType Type => BamlRecordType.DeferableContentStart;

		public BamlRecord Record { get; set; }

		public void ReadDefer(BamlDocument doc, int index, Func<long, BamlRecord> resolve) => Record = resolve(pos + size);

		public void WriteDefer(BamlDocument doc, int index, BinaryWriter wtr)
		{
			wtr.BaseStream.Seek(pos, SeekOrigin.Begin);
			wtr.Write((uint)(Record.Position - (pos + 4)));
		}

		public override void Read(BamlBinaryReader reader)
		{
			size = reader.ReadUInt32();
			pos = reader.BaseStream.Position;
		}

		public override void Write(BamlBinaryWriter writer)
		{
			pos = writer.BaseStream.Position;
			writer.Write((uint)0);
		}
	}

	internal class StaticResourceStartRecord : ElementStartRecord
	{
		public override BamlRecordType Type => BamlRecordType.StaticResourceStart;
	}

	internal class StaticResourceEndRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.StaticResourceEnd;

		public override void Read(BamlBinaryReader reader)
		{
		}

		public override void Write(BamlBinaryWriter writer)
		{
		}
	}

	internal class StaticResourceIdRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.StaticResourceId;

		public ushort StaticResourceId { get; set; }

		public override void Read(BamlBinaryReader reader) => StaticResourceId = reader.ReadUInt16();

		public override void Write(BamlBinaryWriter writer) => writer.Write(StaticResourceId);
	}

	internal class OptimizedStaticResourceRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.OptimizedStaticResource;

		public byte Flags { get; set; }
		public ushort ValueId { get; set; }

		public bool IsType => (Flags & 1) != 0;

		public bool IsStatic => (Flags & 2) != 0;

		public override void Read(BamlBinaryReader reader)
		{
			Flags = reader.ReadByte();
			ValueId = reader.ReadUInt16();
		}

		public override void Write(BamlBinaryWriter writer)
		{
			writer.Write(Flags);
			writer.Write(ValueId);
		}
	}

	internal class LineNumberAndPositionRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.LineNumberAndPosition;

		public uint LineNumber { get; set; }
		public uint LinePosition { get; set; }

		public override void Read(BamlBinaryReader reader)
		{
			LineNumber = reader.ReadUInt32();
			LinePosition = reader.ReadUInt32();
		}

		public override void Write(BamlBinaryWriter writer)
		{
			writer.Write(LineNumber);
			writer.Write(LinePosition);
		}
	}

	internal class LinePositionRecord : BamlRecord
	{
		public override BamlRecordType Type => BamlRecordType.LinePosition;

		public uint LinePosition { get; set; }

		public override void Read(BamlBinaryReader reader) => LinePosition = reader.ReadUInt32();

		public override void Write(BamlBinaryWriter writer) => writer.Write(LinePosition);
	}

	internal class NamedElementStartRecord : ElementStartRecord
	{
		public override BamlRecordType Type => BamlRecordType.NamedElementStart;

		public string RuntimeName { get; set; }

		public override void Read(BamlBinaryReader reader)
		{
			TypeId = reader.ReadUInt16();
			RuntimeName = reader.ReadString();
		}

		public override void Write(BamlBinaryWriter writer)
		{
			writer.Write(TypeId);
			if (RuntimeName != null)
			{
				writer.Write(RuntimeName);
			}
		}
	}
}

================================================
FILE: ICSharpCode.BamlDecompiler/Baml/BamlWriter.cs
================================================
/*
	Copyright (c) 2015 Ki

	Permission is hereby granted, free of charge, to any person obtaining a copy
	of this software and associated documentation files (the "Software"), to deal
	in the Software without restriction, including without limitation the rights
	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
	copies of the Software, and to permit persons to whom the Software is
	furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in
	all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
	THE SOFTWARE.
*/

using System.Collections.Generic;
using System.IO;
using System.Text;

namespace ICSharpCode.BamlDecompiler.Baml
{
	internal class BamlBinaryWriter : BinaryWriter
	{
		public BamlBinaryWriter(Stream stream)
			: base(stream)
		{
		}

		public void WriteEncodedInt(int val) => Write7BitEncodedInt(val);
	}

	internal class BamlWriter
	{
		public static void WriteDocument(BamlDocument doc, Stream str)
		{
			var writer = new BamlBinaryWriter(str);
			{
				var wtr = new BinaryWriter(str, Encoding.Unicode);
				int len = doc.Signature.Length * 2;
				wtr.Write(len);
				wtr.Write(doc.Signature.ToCharArray());
				wtr.Write(new byte[((len + 3) & ~3) - len]);
			}
			writer.Write(doc.ReaderVersion.Major);
			writer.Write(doc.ReaderVersion.Minor);
			writer.Write(doc.UpdaterVersion.Major);
			writer.Write(doc.UpdaterVersion.Minor);
			writer.Write(doc.WriterVersion.Major);
			writer.Write(doc.WriterVersion.Minor);

			var defers = new List<int>();
			for (int i = 0; i < doc.Count; i++)
			{
				BamlRecord rec = doc[i];
				rec.Position = str.Position;
				writer.Write((byte)rec.Type);
				rec.Write(writer);
				if (rec is IBamlDeferRecord)
					defers.Add(i);
			}
			foreach (int i in defers)
				(doc[i] as IBamlDeferRecord).WriteDefer(doc, i, writer);
		}
	}
}

================================================
FILE: ICSharpCode.BamlDecompiler/Baml/KnownMembers.cs
================================================
/*
	Copyright (c) 2015 Ki

	Permission is hereby granted, free of charge, to any person obtaining a copy
	of this software and associated documentation files (the "Software"), to deal
	in the Software without restriction, including without limitation the rights
	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
	copies of the Software, and to permit persons to whom the Software is
	furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in
	all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
	THE SOFTWARE.
*/

namespace ICSharpCode.BamlDecompiler.Baml
{
	// Auto generated. Do not modify.

	internal enum KnownMembers : short
	{
		Unknown = 0,
		AccessText_Text = 1,
		BeginStoryboard_Storyboard = 2,
		BitmapEffectGroup_Children = 3,
		Border_Background = 4,
		Border_BorderBrush = 5,
		Border_BorderThickness = 6,
		ButtonBase_Command = 7,
		ButtonBase_CommandParameter = 8,
		ButtonBase_CommandTarget = 9,
		ButtonBase_IsPressed = 10,
		ColumnDefinition_MaxWidth = 11,
		ColumnDefinition_MinWidth = 12,
		ColumnDefinition_Width = 13,
		ContentControl_Content = 14,
		ContentControl_ContentTemplate = 15,
		ContentControl_ContentTemplateSelector = 16,
		ContentControl_HasContent = 17,
		ContentElement_Focusable = 18,
		ContentPresenter_Content = 19,
		ContentPresenter_ContentSource = 20,
		ContentPresenter_ContentTemplate = 21,
		ContentPresenter_ContentTemplateSelector = 22,
		ContentPresenter_RecognizesAccessKey = 23,
		Control_Background = 24,
		Control_BorderBrush = 25,
		Control_BorderThickness = 26,
		Control_FontFamily = 27,
		Control_FontSize = 28,
		Control_FontStretch = 29,
		Control_FontStyle = 30,
		Control_FontWeight = 31,
		Control_Foreground = 32,
		Control_HorizontalContentAlignment = 33,
		Control_IsTabStop = 34,
		Control_Padding = 35,
		Control_TabIndex = 36,
		Control_Template = 37,
		Control_VerticalContentAlignment = 38,
		DockPanel_Dock = 39,
		DockPanel_LastChildFill = 40,
		DocumentViewerBase_Document = 41,
		DrawingGroup_Children = 42,
		FlowDocumentReader_Document = 43,
		FlowDocumentScrollViewer_Document = 44,
		FrameworkContentElement_Style = 45,
		FrameworkElement_FlowDirection = 46,
		FrameworkElement_Height = 47,
		FrameworkElement_HorizontalAlignment = 48,
		FrameworkElement_Margin = 49,
		FrameworkElement_MaxHeight = 50,
		FrameworkElement_MaxWidth = 51,
		FrameworkElement_MinHeight = 52,
		FrameworkElement_MinWidth = 53,
		FrameworkElement_Name = 54,
		FrameworkElement_Style = 55,
		FrameworkElement_VerticalAlignment = 56,
		FrameworkElement_Width = 57,
		GeneralTransformGroup_Children = 58,
		GeometryGroup_Children = 59,
		GradientBrush_GradientStops = 60,
		Grid_Column = 61,
		Grid_ColumnSpan = 62,
		Grid_Row = 63,
		Grid_RowSpan = 64,
		GridViewColumn_Header = 65,
		HeaderedContentControl_HasHeader = 66,
		HeaderedContentControl_Header = 67,
		HeaderedContentControl_HeaderTemplate = 68,
		HeaderedContentControl_HeaderTemplateSelector = 69,
		HeaderedItemsControl_HasHeader = 70,
		HeaderedItemsControl_Header = 71,
		HeaderedItemsControl_HeaderTemplate = 72,
		HeaderedItemsControl_HeaderTemplateSelector = 73,
		Hyperlink_NavigateUri = 74,
		Image_Source = 75,
		Image_Stretch = 76,
		ItemsControl_ItemContainerStyle = 77,
		ItemsControl_ItemContainerStyleSelector = 78,
		ItemsControl_ItemTemplate = 79,
		ItemsControl_ItemTemplateSelector = 80,
		ItemsControl_ItemsPanel = 81,
		ItemsControl_ItemsSource = 82,
		MaterialGroup_Children = 83,
		Model3DGroup_Children = 84,
		Page_Content = 85,
		Panel_Background = 86,
		Path_Data = 87,
		PathFigure_Segments = 88,
		PathGeometry_Figures = 89,
		Popup_Child = 90,
		Popup_IsOpen = 91,
		Popup_Placement = 92,
		Popup_PopupAnimation = 93,
		RowDefinition_Height = 94,
		RowDefinition_MaxHeight = 95,
		RowDefinition_MinHeight = 96,
		ScrollViewer_CanContentScroll = 97,
		ScrollViewer_HorizontalScrollBarVisibility = 98,
		ScrollViewer_VerticalScrollBarVisibility = 99,
		Shape_Fill = 100,
		Shape_Stroke = 101,
		Shape_StrokeThickness = 102,
		TextBlock_Background = 103,
		TextBlock_FontFamily = 104,
		TextBlock_FontSize = 105,
		TextBlock_FontStretch = 106,
		TextBlock_FontStyle = 107,
		TextBlock_FontWeight = 108,
		TextBlock_Foreground = 109,
		TextBlock_Text = 110,
		TextBlock_TextDecorations = 111,
		TextBlock_TextTrimming = 112,
		TextBlock_TextWrapping = 113,
		TextBox_Text = 114,
		TextElement_Background = 115,
		TextElement_FontFamily = 116,
		TextElement_FontSize = 117,
		TextElement_FontStretch = 118,
		TextElement_FontStyle = 119,
		TextElement_FontWeight = 120,
		TextElement_Foreground = 121,
		TimelineGroup_Children = 122,
		Track_IsDirectionReversed = 123,
		Track_Maximum = 124,
		Track_Minimum = 125,
		Track_Orientation = 126,
		Track_Value = 127,
		Track_ViewportSize = 128,
		Transform3DGroup_Children = 129,
		TransformGroup_Children = 130,
		UIElement_ClipToBounds = 131,
		UIElement_Focusable = 132,
		UIElement_IsEnabled = 133,
		UIElement_RenderTransform = 134,
		UIElement_Visibility = 135,
		Viewport3D_Children = 136,

		AdornedElementPlaceholder_Child = 138,
		AdornerDecorator_Child = 139,
		AnchoredBlock_Blocks = 140,
		ArrayExtension_Items = 141,
		BlockUIContainer_Child = 142,
		Bold_Inlines = 143,
		BooleanAnimationUsingKeyFrames_KeyFrames = 144,
		Border_Child = 145,
		BulletDecorator_Child = 146,
		Button_Content = 147,
		ButtonBase_Content = 148,
		ByteAnimationUsingKeyFrames_KeyFrames = 149,
		Canvas_Children = 150,
		CharAnimationUsingKeyFrames_KeyFrames = 151,
		CheckBox_Content = 152,
		ColorAnimationUsingKeyFrames_KeyFrames = 153,
		ComboBox_Items = 154,
		ComboBoxItem_Content = 155,
		ContextMenu_Items = 156,
		ControlTemplate_VisualTree = 157,
		DataTemplate_VisualTree = 158,
		DataTrigger_Setters = 159,
		DecimalAnimationUsingKeyFrames_KeyFrames = 160,
		Decorator_Child = 161,
		DockPanel_Children = 162,
		DocumentViewer_Document = 163,
		DoubleAnimationUsingKeyFrames_KeyFrames = 164,
		EventTrigger_Actions = 165,
		Expander_Content = 166,
		Figure_Blocks = 167,
		FixedDocument_Pages = 168,
		FixedDocumentSequence_References = 169,
		FixedPage_Children = 170,
		Floater_Blocks = 171,
		FlowDocument_Blocks = 172,
		FlowDocumentPageViewer_Document = 173,
		FrameworkTemplate_VisualTree = 174,
		Grid_Children = 175,
		GridView_Columns = 176,
		GridViewColumnHeader_Content = 177,
		GroupBox_Content = 178,
		GroupItem_Content = 179,
		HeaderedContentControl_Content = 180,
		HeaderedItemsControl_Items = 181,
		HierarchicalDataTemplate_VisualTree = 182,
		Hyperlink_Inlines = 183,
		InkCanvas_Children = 184,
		InkPresenter_Child = 185,
		InlineUIContainer_Child = 186,
		InputScopeName_NameValue = 187,
		Int16AnimationUsingKeyFrames_KeyFrames = 188,
		Int32AnimationUsingKeyFrames_KeyFrames = 189,
		Int64AnimationUsingKeyFrames_KeyFrames = 190,
		Italic_Inlines = 191,
		ItemsControl_Items = 192,
		ItemsPanelTemplate_VisualTree = 193,
		Label_Content = 194,
		LinearGradientBrush_GradientStops = 195,
		List_ListItems = 196,
		ListBox_Items = 197,
		ListBoxItem_Content = 198,
		ListItem_Blocks = 199,
		ListView_Items = 200,
		ListViewItem_Content = 201,
		MatrixAnimationUsingKeyFrames_KeyFrames = 202,
		Menu_Items = 203,
		MenuBase_Items = 204,
		MenuItem_Items = 205,
		ModelVisual3D_Children = 206,
		MultiBinding_Bindings = 207,
		MultiDataTrigger_Setters = 208,
		MultiTrigger_Setters = 209,
		ObjectAnimationUsingKeyFrames_KeyFrames = 210,
		PageContent_Child = 211,
		PageFunctionBase_Content = 212,
		Panel_Children = 213,
		Paragraph_Inlines = 214,
		ParallelTimeline_Children = 215,
		Point3DAnimationUsingKeyFrames_KeyFrames = 216,
		PointAnimationUsingKeyFrames_KeyFrames = 217,
		PriorityBinding_Bindings = 218,
		QuaternionAnimationUsingKeyFrames_KeyFrames = 219,
		RadialGradientBrush_GradientStops = 220,
		RadioButton_Content = 221,
		RectAnimationUsingKeyFrames_KeyFrames = 222,
		RepeatButton_Content = 223,
		RichTextBox_Document = 224,
		Rotation3DAnimationUsingKeyFrames_KeyFrames = 225,
		Run_Text = 226,
		ScrollViewer_Content = 227,
		Section_Blocks = 228,
		Selector_Items = 229,
		SingleAnimationUsingKeyFrames_KeyFrames = 230,
		SizeAnimationUsingKeyFrames_KeyFrames = 231,
		Span_Inlines = 232,
		StackPanel_Children = 233,
		StatusBar_Items = 234,
		StatusBarItem_Content = 235,
		Storyboard_Children = 236,
		StringAnimationUsingKeyFrames_KeyFrames = 237,
		Style_Setters = 238,
		TabControl_Items = 239,
		TabItem_Content = 240,
		TabPanel_Children = 241,
		Table_RowGroups = 242,
		TableCell_Blocks = 243,
		TableRow_Cells = 244,
		TableRowGroup_Rows = 245,
		TextBlock_Inlines = 246,
		ThicknessAnimationUsingKeyFrames_KeyFrames = 247,
		ToggleButton_Content = 248,
		ToolBar_Items = 249,
		ToolBarOverflowPanel_Children = 250,
		ToolBarPanel_Children = 251,
		ToolBarTray_ToolBars = 252,
		ToolTip_Content = 253,
		TreeView_Items = 254,
		TreeViewItem_Items = 255,
		Trigger_Setters = 256,
		Underline_Inlines = 257,
		UniformGrid_Children = 258,
		UserControl_Content = 259,
		Vector3DAnimationUsingKeyFrames_KeyFrames = 260,
		VectorAnimationUsingKeyFrames_KeyFrames = 261,
		Viewbox_Child = 262,
		Viewport3DVisual_Children = 263,
		VirtualizingPanel_Children = 264,
		VirtualizingStackPanel_Children = 265,
		Window_Content = 266,
		WrapPanel_Children = 267,
		XmlDataProvider_XmlSerializer = 268,
	}
}

================================================
FILE: ICSharpCode.BamlDecompiler/Baml/KnownThings.cs
================================================
/*
	Copyright (c) 2015 Ki

	Permission is hereby granted, free of charge, to any person obtaining a copy
	of this software and associated documentation files (the "Software"), to deal
	in the Software without restriction, including without limitation the rights
	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
	copies of the Software, and to permit persons to whom the Software is
	furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in
	all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
	THE SOFTWARE.
*/

using System;
using System.Collections.Generic;
using System.Linq;

using ICSharpCode.Decompiler.Metadata;
using ICSharpCode.Decompiler.TypeSystem;

namespace ICSharpCode.BamlDecompiler.Baml
{
	internal partial class KnownThings
	{
		readonly IDecompilerTypeSystem typeSystem;

		readonly Dictionary<int, IModule> assemblies;
		readonly Dictionary<KnownMembers, KnownMember> members;
		readonly Dictionary<KnownTypes, ITypeDefinition> types;
		readonly Dictionary<int, string> strings;
		readonly Dictionary<int, (string, string, string)> resources;

		public KnownThings(IDecompilerTypeSystem typeSystem)
		{
			this.typeSystem = typeSystem;

			assemblies = new Dictionary<int, IModule>();
			types = new Dictionary<KnownTypes, ITypeDefinition>();
			members = new Dictionary<KnownMembers, KnownMember>();
			strings = new Dictionary<int, string>();
			resources = new Dictionary<int, (string, string, string)>();

			try
			{
				InitAssemblies();
				InitTypes();
				InitMembers();
				InitStrings();
				InitResources();
			}
			catch (Exception ex)
			{
				throw new ICSharpCode.Decompiler.DecompilerException(typeSystem.MainModule.MetadataFile, ex.Message, ex);
			}
		}

		public Func<KnownTypes, ITypeDefinition> Types => id => types[id];
		public Func<KnownMembers, KnownMember> Members => id => members[id];
		public Func<short, string> Strings => id => strings[id];
		public Func<short, (string, string, string)> Resources => id => resources[id];
		public IModule FrameworkAssembly => assemblies[0];
		IModule ResolveAssembly(string name)
		{
			IModule module = typeSystem.Modules.FirstOrDefault(m => m.AssemblyName == name);
			if (module == null)
				throw new Exception("Could not resolve known assembly '" + name + "'!");
			return module;
		}

		ITypeDefinition InitType(IModule assembly, string ns, string name) => assembly.GetTypeDefinition(new TopLevelTypeName(ns, name));
		KnownMember InitMember(KnownTypes parent, string name, ITypeDefinition type) => new KnownMember(parent, types[parent], name, type);
	}

	internal class KnownMember
	{
		public KnownMember(KnownTypes parent, ITypeDefinition declType, string name, ITypeDefinition type)
		{
			Parent = parent;
			Property = declType.GetProperties(p => p.Name == name, GetMemberOptions.IgnoreInheritedMembers).SingleOrDefault();
			DeclaringType = declType;
			Name = name;
			Type = type;
		}

		public KnownTypes Parent { get; }
		public ITypeDefinition DeclaringType { get; }
		public IProperty Property { get; }
		public string Name { get; }
		public ITypeDefinition Type { get; }
	}
}

================================================
FILE: ICSharpCode.BamlDecompiler/Baml/KnownThings.g.cs
================================================
/*
	Copyright (c) 2015 Ki

	Permission is hereby granted, free of charge, to any person obtaining a copy
	of this software and associated documentation files (the "Software"), to deal
	in the Software without restriction, including without limitation the rights
	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
	copies of the Software, and to permit persons to whom the Software is
	furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in
	all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
	THE SOFTWARE.
*/

using System;

namespace ICSharpCode.BamlDecompiler.Baml
{
	internal partial class KnownThings
	{
		// Auto-generated. Do not modify.

		void InitAssemblies()
		{
			assemblies[0] = ResolveAssembly("mscorlib");
			assemblies[1] = ResolveAssembly("System");
			assemblies[2] = ResolveAssembly("WindowsBase");
			assemblies[3] = ResolveAssembly("PresentationCore");
			assemblies[4] = ResolveAssembly("PresentationFramework");
			assemblies[5] = ResolveAssembly("System.Xml");
		}

		void InitTypes()
		{

			types[KnownTypes.AccessText] = InitType(assemblies[4], "System.Windows.Controls", "AccessText");
			types[KnownTypes.AdornedElementPlaceholder] = InitType(assemblies[4], "System.Windows.Controls", "AdornedElementPlaceholder");
			types[KnownTypes.Adorner] = InitType(assemblies[4], "System.Windows.Documents", "Adorner");
			types[KnownTypes.AdornerDecorator] = InitType(assemblies[4], "System.Windows.Documents", "AdornerDecorator");
			types[KnownTypes.AdornerLayer] = InitType(assemblies[4], "System.Windows.Documents", "AdornerLayer");
			types[KnownTypes.AffineTransform3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "AffineTransform3D");
			types[KnownTypes.AmbientLight] = InitType(assemblies[3], "System.Windows.Media.Media3D", "AmbientLight");
			types[KnownTypes.AnchoredBlock] = InitType(assemblies[4], "System.Windows.Documents", "AnchoredBlock");
			types[KnownTypes.Animatable] = InitType(assemblies[3], "System.Windows.Media.Animation", "Animatable");
			types[KnownTypes.AnimationClock] = InitType(assemblies[3], "System.Windows.Media.Animation", "AnimationClock");
			types[KnownTypes.AnimationTimeline] = InitType(assemblies[3], "System.Windows.Media.Animation", "AnimationTimeline");
			types[KnownTypes.Application] = InitType(assemblies[4], "System.Windows", "Application");
			types[KnownTypes.ArcSegment] = InitType(assemblies[3], "System.Windows.Media", "ArcSegment");
			types[KnownTypes.ArrayExtension] = InitType(assemblies[4], "System.Windows.Markup", "ArrayExtension");
			types[KnownTypes.AxisAngleRotation3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "AxisAngleRotation3D");
			types[KnownTypes.BaseIListConverter] = InitType(assemblies[3], "System.Windows.Media.Converters", "BaseIListConverter");
			types[KnownTypes.BeginStoryboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "BeginStoryboard");
			types[KnownTypes.BevelBitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "BevelBitmapEffect");
			types[KnownTypes.BezierSegment] = InitType(assemblies[3], "System.Windows.Media", "BezierSegment");
			types[KnownTypes.Binding] = InitType(assemblies[4], "System.Windows.Data", "Binding");
			types[KnownTypes.BindingBase] = InitType(assemblies[4], "System.Windows.Data", "BindingBase");
			types[KnownTypes.BindingExpression] = InitType(assemblies[4], "System.Windows.Data", "BindingExpression");
			types[KnownTypes.BindingExpressionBase] = InitType(assemblies[4], "System.Windows.Data", "BindingExpressionBase");
			types[KnownTypes.BindingListCollectionView] = InitType(assemblies[4], "System.Windows.Data", "BindingListCollectionView");
			types[KnownTypes.BitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapDecoder");
			types[KnownTypes.BitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "BitmapEffect");
			types[KnownTypes.BitmapEffectCollection] = InitType(assemblies[3], "System.Windows.Media.Effects", "BitmapEffectCollection");
			types[KnownTypes.BitmapEffectGroup] = InitType(assemblies[3], "System.Windows.Media.Effects", "BitmapEffectGroup");
			types[KnownTypes.BitmapEffectInput] = InitType(assemblies[3], "System.Windows.Media.Effects", "BitmapEffectInput");
			types[KnownTypes.BitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapEncoder");
			types[KnownTypes.BitmapFrame] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapFrame");
			types[KnownTypes.BitmapImage] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapImage");
			types[KnownTypes.BitmapMetadata] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapMetadata");
			types[KnownTypes.BitmapPalette] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapPalette");
			types[KnownTypes.BitmapSource] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapSource");
			types[KnownTypes.Block] = InitType(assemblies[4], "System.Windows.Documents", "Block");
			types[KnownTypes.BlockUIContainer] = InitType(assemblies[4], "System.Windows.Documents", "BlockUIContainer");
			types[KnownTypes.BlurBitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "BlurBitmapEffect");
			types[KnownTypes.BmpBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BmpBitmapDecoder");
			types[KnownTypes.BmpBitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BmpBitmapEncoder");
			types[KnownTypes.Bold] = InitType(assemblies[4], "System.Windows.Documents", "Bold");
			types[KnownTypes.BoolIListConverter] = InitType(assemblies[3], "System.Windows.Media.Converters", "BoolIListConverter");
			types[KnownTypes.Boolean] = InitType(assemblies[0], "System", "Boolean");
			types[KnownTypes.BooleanAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "BooleanAnimationBase");
			types[KnownTypes.BooleanAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "BooleanAnimationUsingKeyFrames");
			types[KnownTypes.BooleanConverter] = InitType(assemblies[1], "System.ComponentModel", "BooleanConverter");
			types[KnownTypes.BooleanKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "BooleanKeyFrame");
			types[KnownTypes.BooleanKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "BooleanKeyFrameCollection");
			types[KnownTypes.BooleanToVisibilityConverter] = InitType(assemblies[4], "System.Windows.Controls", "BooleanToVisibilityConverter");
			types[KnownTypes.Border] = InitType(assemblies[4], "System.Windows.Controls", "Border");
			types[KnownTypes.BorderGapMaskConverter] = InitType(assemblies[4], "System.Windows.Controls", "BorderGapMaskConverter");
			types[KnownTypes.Brush] = InitType(assemblies[3], "System.Windows.Media", "Brush");
			types[KnownTypes.BrushConverter] = InitType(assemblies[3], "System.Windows.Media", "BrushConverter");
			types[KnownTypes.BulletDecorator] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "BulletDecorator");
			types[KnownTypes.Button] = InitType(assemblies[4], "System.Windows.Controls", "Button");
			types[KnownTypes.ButtonBase] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "ButtonBase");
			types[KnownTypes.Byte] = InitType(assemblies[0], "System", "Byte");
			types[KnownTypes.ByteAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "ByteAnimation");
			types[KnownTypes.ByteAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "ByteAnimationBase");
			types[KnownTypes.ByteAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "ByteAnimationUsingKeyFrames");
			types[KnownTypes.ByteConverter] = InitType(assemblies[1], "System.ComponentModel", "ByteConverter");
			types[KnownTypes.ByteKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "ByteKeyFrame");
			types[KnownTypes.ByteKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "ByteKeyFrameCollection");
			types[KnownTypes.CachedBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "CachedBitmap");
			types[KnownTypes.Camera] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Camera");
			types[KnownTypes.Canvas] = InitType(assemblies[4], "System.Windows.Controls", "Canvas");
			types[KnownTypes.Char] = InitType(assemblies[0], "System", "Char");
			types[KnownTypes.CharAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "CharAnimationBase");
			types[KnownTypes.CharAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "CharAnimationUsingKeyFrames");
			types[KnownTypes.CharConverter] = InitType(assemblies[1], "System.ComponentModel", "CharConverter");
			types[KnownTypes.CharIListConverter] = InitType(assemblies[3], "System.Windows.Media.Converters", "CharIListConverter");
			types[KnownTypes.CharKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "CharKeyFrame");
			types[KnownTypes.CharKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "CharKeyFrameCollection");
			types[KnownTypes.CheckBox] = InitType(assemblies[4], "System.Windows.Controls", "CheckBox");
			types[KnownTypes.Clock] = InitType(assemblies[3], "System.Windows.Media.Animation", "Clock");
			types[KnownTypes.ClockController] = InitType(assemblies[3], "System.Windows.Media.Animation", "ClockController");
			types[KnownTypes.ClockGroup] = InitType(assemblies[3], "System.Windows.Media.Animation", "ClockGroup");
			types[KnownTypes.CollectionContainer] = InitType(assemblies[4], "System.Windows.Data", "CollectionContainer");
			types[KnownTypes.CollectionView] = InitType(assemblies[4], "System.Windows.Data", "CollectionView");
			types[KnownTypes.CollectionViewSource] = InitType(assemblies[4], "System.Windows.Data", "CollectionViewSource");
			types[KnownTypes.Color] = InitType(assemblies[3], "System.Windows.Media", "Color");
			types[KnownTypes.ColorAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "ColorAnimation");
			types[KnownTypes.ColorAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "ColorAnimationBase");
			types[KnownTypes.ColorAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "ColorAnimationUsingKeyFrames");
			types[KnownTypes.ColorConvertedBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "ColorConvertedBitmap");
			types[KnownTypes.ColorConvertedBitmapExtension] = InitType(assemblies[4], "System.Windows", "ColorConvertedBitmapExtension");
			types[KnownTypes.ColorConverter] = InitType(assemblies[3], "System.Windows.Media", "ColorConverter");
			types[KnownTypes.ColorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "ColorKeyFrame");
			types[KnownTypes.ColorKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "ColorKeyFrameCollection");
			types[KnownTypes.ColumnDefinition] = InitType(assemblies[4], "System.Windows.Controls", "ColumnDefinition");
			types[KnownTypes.CombinedGeometry] = InitType(assemblies[3], "System.Windows.Media", "CombinedGeometry");
			types[KnownTypes.ComboBox] = InitType(assemblies[4], "System.Windows.Controls", "ComboBox");
			types[KnownTypes.ComboBoxItem] = InitType(assemblies[4], "System.Windows.Controls", "ComboBoxItem");
			types[KnownTypes.CommandConverter] = InitType(assemblies[4], "System.Windows.Input", "CommandConverter");
			types[KnownTypes.ComponentResourceKey] = InitType(assemblies[4], "System.Windows", "ComponentResourceKey");
			types[KnownTypes.ComponentResourceKeyConverter] = InitType(assemblies[4], "System.Windows.Markup", "ComponentResourceKeyConverter");
			types[KnownTypes.CompositionTarget] = InitType(assemblies[3], "System.Windows.Media", "CompositionTarget");
			types[KnownTypes.Condition] = InitType(assemblies[4], "System.Windows", "Condition");
			types[KnownTypes.ContainerVisual] = InitType(assemblies[3], "System.Windows.Media", "ContainerVisual");
			types[KnownTypes.ContentControl] = InitType(assemblies[4], "System.Windows.Controls", "ContentControl");
			types[KnownTypes.ContentElement] = InitType(assemblies[3], "System.Windows", "ContentElement");
			types[KnownTypes.ContentPresenter] = InitType(assemblies[4], "System.Windows.Controls", "ContentPresenter");
			types[KnownTypes.ContentPropertyAttribute] = InitType(assemblies[2], "System.Windows.Markup", "ContentPropertyAttribute");
			types[KnownTypes.ContentWrapperAttribute] = InitType(assemblies[2], "System.Windows.Markup", "ContentWrapperAttribute");
			types[KnownTypes.ContextMenu] = InitType(assemblies[4], "System.Windows.Controls", "ContextMenu");
			types[KnownTypes.ContextMenuService] = InitType(assemblies[4], "System.Windows.Controls", "ContextMenuService");
			types[KnownTypes.Control] = InitType(assemblies[4], "System.Windows.Controls", "Control");
			types[KnownTypes.ControlTemplate] = InitType(assemblies[4], "System.Windows.Controls", "ControlTemplate");
			types[KnownTypes.ControllableStoryboardAction] = InitType(assemblies[4], "System.Windows.Media.Animation", "ControllableStoryboardAction");
			types[KnownTypes.CornerRadius] = InitType(assemblies[4], "System.Windows", "CornerRadius");
			types[KnownTypes.CornerRadiusConverter] = InitType(assemblies[4], "System.Windows", "CornerRadiusConverter");
			types[KnownTypes.CroppedBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "CroppedBitmap");
			types[KnownTypes.CultureInfo] = InitType(assemblies[0], "System.Globalization", "CultureInfo");
			types[KnownTypes.CultureInfoConverter] = InitType(assemblies[1], "System.ComponentModel", "CultureInfoConverter");
			types[KnownTypes.CultureInfoIetfLanguageTagConverter] = InitType(assemblies[3], "System.Windows", "CultureInfoIetfLanguageTagConverter");
			types[KnownTypes.Cursor] = InitType(assemblies[3], "System.Windows.Input", "Cursor");
			types[KnownTypes.CursorConverter] = InitType(assemblies[3], "System.Windows.Input", "CursorConverter");
			types[KnownTypes.DashStyle] = InitType(assemblies[3], "System.Windows.Media", "DashStyle");
			types[KnownTypes.DataChangedEventManager] = InitType(assemblies[4], "System.Windows.Data", "DataChangedEventManager");
			types[KnownTypes.DataTemplate] = InitType(assemblies[4], "System.Windows", "DataTemplate");
			types[KnownTypes.DataTemplateKey] = InitType(assemblies[4], "System.Windows", "DataTemplateKey");
			types[KnownTypes.DataTrigger] = InitType(assemblies[4], "System.Windows", "DataTrigger");
			types[KnownTypes.DateTime] = InitType(assemblies[0], "System", "DateTime");
			types[KnownTypes.DateTimeConverter] = InitType(assemblies[1], "System.ComponentModel", "DateTimeConverter");
			types[KnownTypes.DateTimeConverter2] = InitType(assemblies[2], "System.Windows.Markup", "DateTimeConverter2");
			types[KnownTypes.Decimal] = InitType(assemblies[0], "System", "Decimal");
			types[KnownTypes.DecimalAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "DecimalAnimation");
			types[KnownTypes.DecimalAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "DecimalAnimationBase");
			types[KnownTypes.DecimalAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "DecimalAnimationUsingKeyFrames");
			types[KnownTypes.DecimalConverter] = InitType(assemblies[1], "System.ComponentModel", "DecimalConverter");
			types[KnownTypes.DecimalKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DecimalKeyFrame");
			types[KnownTypes.DecimalKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "DecimalKeyFrameCollection");
			types[KnownTypes.Decorator] = InitType(assemblies[4], "System.Windows.Controls", "Decorator");
			types[KnownTypes.DefinitionBase] = InitType(assemblies[4], "System.Windows.Controls", "DefinitionBase");
			types[KnownTypes.DependencyObject] = InitType(assemblies[2], "System.Windows", "DependencyObject");
			types[KnownTypes.DependencyProperty] = InitType(assemblies[2], "System.Windows", "DependencyProperty");
			types[KnownTypes.DependencyPropertyConverter] = InitType(assemblies[4], "System.Windows.Markup", "DependencyPropertyConverter");
			types[KnownTypes.DialogResultConverter] = InitType(assemblies[4], "System.Windows", "DialogResultConverter");
			types[KnownTypes.DiffuseMaterial] = InitType(assemblies[3], "System.Windows.Media.Media3D", "DiffuseMaterial");
			types[KnownTypes.DirectionalLight] = InitType(assemblies[3], "System.Windows.Media.Media3D", "DirectionalLight");
			types[KnownTypes.DiscreteBooleanKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteBooleanKeyFrame");
			types[KnownTypes.DiscreteByteKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteByteKeyFrame");
			types[KnownTypes.DiscreteCharKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteCharKeyFrame");
			types[KnownTypes.DiscreteColorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteColorKeyFrame");
			types[KnownTypes.DiscreteDecimalKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteDecimalKeyFrame");
			types[KnownTypes.DiscreteDoubleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteDoubleKeyFrame");
			types[KnownTypes.DiscreteInt16KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteInt16KeyFrame");
			types[KnownTypes.DiscreteInt32KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteInt32KeyFrame");
			types[KnownTypes.DiscreteInt64KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteInt64KeyFrame");
			types[KnownTypes.DiscreteMatrixKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteMatrixKeyFrame");
			types[KnownTypes.DiscreteObjectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteObjectKeyFrame");
			types[KnownTypes.DiscretePoint3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscretePoint3DKeyFrame");
			types[KnownTypes.DiscretePointKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscretePointKeyFrame");
			types[KnownTypes.DiscreteQuaternionKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteQuaternionKeyFrame");
			types[KnownTypes.DiscreteRectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteRectKeyFrame");
			types[KnownTypes.DiscreteRotation3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteRotation3DKeyFrame");
			types[KnownTypes.DiscreteSingleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteSingleKeyFrame");
			types[KnownTypes.DiscreteSizeKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteSizeKeyFrame");
			types[KnownTypes.DiscreteStringKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteStringKeyFrame");
			types[KnownTypes.DiscreteThicknessKeyFrame] = InitType(assemblies[4], "System.Windows.Media.Animation", "DiscreteThicknessKeyFrame");
			types[KnownTypes.DiscreteVector3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteVector3DKeyFrame");
			types[KnownTypes.DiscreteVectorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteVectorKeyFrame");
			types[KnownTypes.DockPanel] = InitType(assemblies[4], "System.Windows.Controls", "DockPanel");
			types[KnownTypes.DocumentPageView] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "DocumentPageView");
			types[KnownTypes.DocumentReference] = InitType(assemblies[4], "System.Windows.Documents", "DocumentReference");
			types[KnownTypes.DocumentViewer] = InitType(assemblies[4], "System.Windows.Controls", "DocumentViewer");
			types[KnownTypes.DocumentViewerBase] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "DocumentViewerBase");
			types[KnownTypes.Double] = InitType(assemblies[0], "System", "Double");
			types[KnownTypes.DoubleAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleAnimation");
			types[KnownTypes.DoubleAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleAnimationBase");
			types[KnownTypes.DoubleAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleAnimationUsingKeyFrames");
			types[KnownTypes.DoubleAnimationUsingPath] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleAnimationUsingPath");
			types[KnownTypes.DoubleCollection] = InitType(assemblies[3], "System.Windows.Media", "DoubleCollection");
			types[KnownTypes.DoubleCollectionConverter] = InitType(assemblies[3], "System.Windows.Media", "DoubleCollectionConverter");
			types[KnownTypes.DoubleConverter] = InitType(assemblies[1], "System.ComponentModel", "DoubleConverter");
			types[KnownTypes.DoubleIListConverter] = InitType(assemblies[3], "System.Windows.Media.Converters", "DoubleIListConverter");
			types[KnownTypes.DoubleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleKeyFrame");
			types[KnownTypes.DoubleKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleKeyFrameCollection");
			types[KnownTypes.Drawing] = InitType(assemblies[3], "System.Windows.Media", "Drawing");
			types[KnownTypes.DrawingBrush] = InitType(assemblies[3], "System.Windows.Media", "DrawingBrush");
			types[KnownTypes.DrawingCollection] = InitType(assemblies[3], "System.Windows.Media", "DrawingCollection");
			types[KnownTypes.DrawingContext] = InitType(assemblies[3], "System.Windows.Media", "DrawingContext");
			types[KnownTypes.DrawingGroup] = InitType(assemblies[3], "System.Windows.Media", "DrawingGroup");
			types[KnownTypes.DrawingImage] = InitType(assemblies[3], "System.Windows.Media", "DrawingImage");
			types[KnownTypes.DrawingVisual] = InitType(assemblies[3], "System.Windows.Media", "DrawingVisual");
			types[KnownTypes.DropShadowBitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "DropShadowBitmapEffect");
			types[KnownTypes.Duration] = InitType(assemblies[3], "System.Windows", "Duration");
			types[KnownTypes.DurationConverter] = InitType(assemblies[3], "System.Windows", "DurationConverter");
			types[KnownTypes.DynamicResourceExtension] = InitType(assemblies[4], "System.Windows", "DynamicResourceExtension");
			types[KnownTypes.DynamicResourceExtensionConverter] = InitType(assemblies[4], "System.Windows", "DynamicResourceExtensionConverter");
			types[KnownTypes.Ellipse] = InitType(assemblies[4], "System.Windows.Shapes", "Ellipse");
			types[KnownTypes.EllipseGeometry] = InitType(assemblies[3], "System.Windows.Media", "EllipseGeometry");
			types[KnownTypes.EmbossBitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "EmbossBitmapEffect");
			types[KnownTypes.EmissiveMaterial] = InitType(assemblies[3], "System.Windows.Media.Media3D", "EmissiveMaterial");
			types[KnownTypes.EnumConverter] = InitType(assemblies[1], "System.ComponentModel", "EnumConverter");
			types[KnownTypes.EventManager] = InitType(assemblies[3], "System.Windows", "EventManager");
			types[KnownTypes.EventSetter] = InitType(assemblies[4], "System.Windows", "EventSetter");
			types[KnownTypes.EventTrigger] = InitType(assemblies[4], "System.Windows", "EventTrigger");
			types[KnownTypes.Expander] = InitType(assemblies[4], "System.Windows.Controls", "Expander");
			types[KnownTypes.Expression] = InitType(assemblies[2], "System.Windows", "Expression");
			types[KnownTypes.ExpressionConverter] = InitType(assemblies[2], "System.Windows", "ExpressionConverter");
			types[KnownTypes.Figure] = InitType(assemblies[4], "System.Windows.Documents", "Figure");
			types[KnownTypes.FigureLength] = InitType(assemblies[4], "System.Windows", "FigureLength");
			types[KnownTypes.FigureLengthConverter] = InitType(assemblies[4], "System.Windows", "FigureLengthConverter");
			types[KnownTypes.FixedDocument] = InitType(assemblies[4], "System.Windows.Documents", "FixedDocument");
			types[KnownTypes.FixedDocumentSequence] = InitType(assemblies[4], "System.Windows.Documents", "FixedDocumentSequence");
			types[KnownTypes.FixedPage] = InitType(assemblies[4], "System.Windows.Documents", "FixedPage");
			types[KnownTypes.Floater] = InitType(assemblies[4], "System.Windows.Documents", "Floater");
			types[KnownTypes.FlowDocument] = InitType(assemblies[4], "System.Windows.Documents", "FlowDocument");
			types[KnownTypes.FlowDocumentPageViewer] = InitType(assemblies[4], "System.Windows.Controls", "FlowDocumentPageViewer");
			types[KnownTypes.FlowDocumentReader] = InitType(assemblies[4], "System.Windows.Controls", "FlowDocumentReader");
			types[KnownTypes.FlowDocumentScrollViewer] = InitType(assemblies[4], "System.Windows.Controls", "FlowDocumentScrollViewer");
			types[KnownTypes.FocusManager] = InitType(assemblies[3], "System.Windows.Input", "FocusManager");
			types[KnownTypes.FontFamily] = InitType(assemblies[3], "System.Windows.Media", "FontFamily");
			types[KnownTypes.FontFamilyConverter] = InitType(assemblies[3], "System.Windows.Media", "FontFamilyConverter");
			types[KnownTypes.FontSizeConverter] = InitType(assemblies[4], "System.Windows", "FontSizeConverter");
			types[KnownTypes.FontStretch] = InitType(assemblies[3], "System.Windows", "FontStretch");
			types[KnownTypes.FontStretchConverter] = InitType(assemblies[3], "System.Windows", "FontStretchConverter");
			types[KnownTypes.FontStyle] = InitType(assemblies[3], "System.Windows", "FontStyle");
			types[KnownTypes.FontStyleConverter] = InitType(assemblies[3], "System.Windows", "FontStyleConverter");
			types[KnownTypes.FontWeight] = InitType(assemblies[3], "System.Windows", "FontWeight");
			types[KnownTypes.FontWeightConverter] = InitType(assemblies[3], "System.Windows", "FontWeightConverter");
			types[KnownTypes.FormatConvertedBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "FormatConvertedBitmap");
			types[KnownTypes.Frame] = InitType(assemblies[4], "System.Windows.Controls", "Frame");
			types[KnownTypes.FrameworkContentElement] = InitType(assemblies[4], "System.Windows", "FrameworkContentElement");
			types[KnownTypes.FrameworkElement] = InitType(assemblies[4], "System.Windows", "FrameworkElement");
			types[KnownTypes.FrameworkElementFactory] = InitType(assemblies[4], "System.Windows", "FrameworkElementFactory");
			types[KnownTypes.FrameworkPropertyMetadata] = InitType(assemblies[4], "System.Windows", "FrameworkPropertyMetadata");
			types[KnownTypes.FrameworkPropertyMetadataOptions] = InitType(assemblies[4], "System.Windows", "FrameworkPropertyMetadataOptions");
			types[KnownTypes.FrameworkRichTextComposition] = InitType(assemblies[4], "System.Windows.Documents", "FrameworkRichTextComposition");
			types[KnownTypes.FrameworkTemplate] = InitType(assemblies[4], "System.Windows", "FrameworkTemplate");
			types[KnownTypes.FrameworkTextComposition] = InitType(assemblies[4], "System.Windows.Documents", "FrameworkTextComposition");
			types[KnownTypes.Freezable] = InitType(assemblies[2], "System.Windows", "Freezable");
			types[KnownTypes.GeneralTransform] = InitType(assemblies[3], "System.Windows.Media", "GeneralTransform");
			types[KnownTypes.GeneralTransformCollection] = InitType(assemblies[3], "System.Windows.Media", "GeneralTransformCollection");
			types[KnownTypes.GeneralTransformGroup] = InitType(assemblies[3], "System.Windows.Media", "GeneralTransformGroup");
			types[KnownTypes.Geometry] = InitType(assemblies[3], "System.Windows.Media", "Geometry");
			types[KnownTypes.Geometry3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Geometry3D");
			types[KnownTypes.GeometryCollection] = InitType(assemblies[3], "System.Windows.Media", "GeometryCollection");
			types[KnownTypes.GeometryConverter] = InitType(assemblies[3], "System.Windows.Media", "GeometryConverter");
			types[KnownTypes.GeometryDrawing] = InitType(assemblies[3], "System.Windows.Media", "GeometryDrawing");
			types[KnownTypes.GeometryGroup] = InitType(assemblies[3], "System.Windows.Media", "GeometryGroup");
			types[KnownTypes.GeometryModel3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "GeometryModel3D");
			types[KnownTypes.GestureRecognizer] = InitType(assemblies[3], "System.Windows.Ink", "GestureRecognizer");
			types[KnownTypes.GifBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "GifBitmapDecoder");
			types[KnownTypes.GifBitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "GifBitmapEncoder");
			types[KnownTypes.GlyphRun] = InitType(assemblies[3], "System.Windows.Media", "GlyphRun");
			types[KnownTypes.GlyphRunDrawing] = InitType(assemblies[3], "System.Windows.Media", "GlyphRunDrawing");
			types[KnownTypes.GlyphTypeface] = InitType(assemblies[3], "System.Windows.Media", "GlyphTypeface");
			types[KnownTypes.Glyphs] = InitType(assemblies[4], "System.Windows.Documents", "Glyphs");
			types[KnownTypes.GradientBrush] = InitType(assemblies[3], "System.Windows.Media", "GradientBrush");
			types[KnownTypes.GradientStop] = InitType(assemblies[3], "System.Windows.Media", "GradientStop");
			types[KnownTypes.GradientStopCollection] = InitType(assemblies[3], "System.Windows.Media", "GradientStopCollection");
			types[KnownTypes.Grid] = InitType(assemblies[4], "System.Windows.Controls", "Grid");
			types[KnownTypes.GridLength] = InitType(assemblies[4], "System.Windows", "GridLength");
			types[KnownTypes.GridLengthConverter] = InitType(assemblies[4], "System.Windows", "GridLengthConverter");
			types[KnownTypes.GridSplitter] = InitType(assemblies[4], "System.Windows.Controls", "GridSplitter");
			types[KnownTypes.GridView] = InitType(assemblies[4], "System.Windows.Controls", "GridView");
			types[KnownTypes.GridViewColumn] = InitType(assemblies[4], "System.Windows.Controls", "GridViewColumn");
			types[KnownTypes.GridViewColumnHeader] = InitType(assemblies[4], "System.Windows.Controls", "GridViewColumnHeader");
			types[KnownTypes.GridViewHeaderRowPresenter] = InitType(assemblies[4], "System.Windows.Controls", "GridViewHeaderRowPresenter");
			types[KnownTypes.GridViewRowPresenter] = InitType(assemblies[4], "System.Windows.Controls", "GridViewRowPresenter");
			types[KnownTypes.GridViewRowPresenterBase] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "GridViewRowPresenterBase");
			types[KnownTypes.GroupBox] = InitType(assemblies[4], "System.Windows.Controls", "GroupBox");
			types[KnownTypes.GroupItem] = InitType(assemblies[4], "System.Windows.Controls", "GroupItem");
			types[KnownTypes.Guid] = InitType(assemblies[0], "System", "Guid");
			types[KnownTypes.GuidConverter] = InitType(assemblies[1], "System.ComponentModel", "GuidConverter");
			types[KnownTypes.GuidelineSet] = InitType(assemblies[3], "System.Windows.Media", "GuidelineSet");
			types[KnownTypes.HeaderedContentControl] = InitType(assemblies[4], "System.Windows.Controls", "HeaderedContentControl");
			types[KnownTypes.HeaderedItemsControl] = InitType(assemblies[4], "System.Windows.Controls", "HeaderedItemsControl");
			types[KnownTypes.HierarchicalDataTemplate] = InitType(assemblies[4], "System.Windows", "HierarchicalDataTemplate");
			types[KnownTypes.HostVisual] = InitType(assemblies[3], "System.Windows.Media", "HostVisual");
			types[KnownTypes.Hyperlink] = InitType(assemblies[4], "System.Windows.Documents", "Hyperlink");
			types[KnownTypes.IAddChild] = InitType(assemblies[3], "System.Windows.Markup", "IAddChild");
			types[KnownTypes.IAddChildInternal] = InitType(assemblies[3], "System.Windows.Markup", "IAddChildInternal");
			types[KnownTypes.ICommand] = InitType(assemblies[3], "System.Windows.Input", "ICommand");
			types[KnownTypes.IComponentConnector] = InitType(assemblies[2], "System.Windows.Markup", "IComponentConnector");
			types[KnownTypes.INameScope] = InitType(assemblies[2], "System.Windows.Markup", "INameScope");
			types[KnownTypes.IStyleConnector] = InitType(assemblies[4], "System.Windows.Markup", "IStyleConnector");
			types[KnownTypes.IconBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "IconBitmapDecoder");
			types[KnownTypes.Image] = InitType(assemblies[4], "System.Windows.Controls", "Image");
			types[KnownTypes.ImageBrush] = InitType(assemblies[3], "System.Windows.Media", "ImageBrush");
			types[KnownTypes.ImageDrawing] = InitType(assemblies[3], "System.Windows.Media", "ImageDrawing");
			types[KnownTypes.ImageMetadata] = InitType(assemblies[3], "System.Windows.Media", "ImageMetadata");
			types[KnownTypes.ImageSource] = InitType(assemblies[3], "System.Windows.Media", "ImageSource");
			types[KnownTypes.ImageSourceConverter] = InitType(assemblies[3], "System.Windows.Media", "ImageSourceConverter");
			types[KnownTypes.InPlaceBitmapMetadataWriter] = InitType(assemblies[3], "System.Windows.Media.Imaging", "InPlaceBitmapMetadataWriter");
			types[KnownTypes.InkCanvas] = InitType(assemblies[4], "System.Windows.Controls", "InkCanvas");
			types[KnownTypes.InkPresenter] = InitType(assemblies[4], "System.Windows.Controls", "InkPresenter");
			types[KnownTypes.Inline] = InitType(assemblies[4], "System.Windows.Documents", "Inline");
			types[KnownTypes.InlineCollection] = InitType(assemblies[4], "System.Windows.Documents", "InlineCollection");
			types[KnownTypes.InlineUIContainer] = InitType(assemblies[4], "System.Windows.Documents", "InlineUIContainer");
			types[KnownTypes.InputBinding] = InitType(assemblies[3], "System.Windows.Input", "InputBinding");
			types[KnownTypes.InputDevice] = InitType(assemblies[3], "System.Windows.Input", "InputDevice");
			types[KnownTypes.InputLanguageManager] = InitType(assemblies[3], "System.Windows.Input", "InputLanguageManager");
			types[KnownTypes.InputManager] = InitType(assemblies[3], "System.Windows.Input", "InputManager");
			types[KnownTypes.InputMethod] = InitType(assemblies[3], "System.Windows.Input", "InputMethod");
			types[KnownTypes.InputScope] = InitType(assemblies[3], "System.Windows.Input", "InputScope");
			types[KnownTypes.InputScopeConverter] = InitType(assemblies[3], "System.Windows.Input", "InputScopeConverter");
			types[KnownTypes.InputScopeName] = InitType(assemblies[3], "System.Windows.Input", "InputScopeName");
			types[KnownTypes.InputScopeNameConverter] = InitType(assemblies[3], "System.Windows.Input", "InputScopeNameConverter");
			types[KnownTypes.Int16] = InitType(assemblies[0], "System", "Int16");
			types[KnownTypes.Int16Animation] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int16Animation");
			types[KnownTypes.Int16AnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int16AnimationBase");
			types[KnownTypes.Int16AnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int16AnimationUsingKeyFrames");
			types[KnownTypes.Int16Converter] = InitType(assemblies[1], "System.ComponentModel", "Int16Converter");
			types[KnownTypes.Int16KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int16KeyFrame");
			types[KnownTypes.Int16KeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int16KeyFrameCollection");
			types[KnownTypes.Int32] = InitType(assemblies[0], "System", "Int32");
			types[KnownTypes.Int32Animation] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int32Animation");
			types[KnownTypes.Int32AnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int32AnimationBase");
			types[KnownTypes.Int32AnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int32AnimationUsingKeyFrames");
			types[KnownTypes.Int32Collection] = InitType(assemblies[3], "System.Windows.Media", "Int32Collection");
			types[KnownTypes.Int32CollectionConverter] = InitType(assemblies[3], "System.Windows.Media", "Int32CollectionConverter");
			types[KnownTypes.Int32Converter] = InitType(assemblies[1], "System.ComponentModel", "Int32Converter");
			types[KnownTypes.Int32KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int32KeyFrame");
			types[KnownTypes.Int32KeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int32KeyFrameCollection");
			types[KnownTypes.Int32Rect] = InitType(assemblies[2], "System.Windows", "Int32Rect");
			types[KnownTypes.Int32RectConverter] = InitType(assemblies[2], "System.Windows", "Int32RectConverter");
			types[KnownTypes.Int64] = InitType(assemblies[0], "System", "Int64");
			types[KnownTypes.Int64Animation] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int64Animation");
			types[KnownTypes.Int64AnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int64AnimationBase");
			types[KnownTypes.Int64AnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int64AnimationUsingKeyFrames");
			types[KnownTypes.Int64Converter] = InitType(assemblies[1], "System.ComponentModel", "Int64Converter");
			types[KnownTypes.Int64KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int64KeyFrame");
			types[KnownTypes.Int64KeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int64KeyFrameCollection");
			types[KnownTypes.Italic] = InitType(assemblies[4], "System.Windows.Documents", "Italic");
			types[KnownTypes.ItemCollection] = InitType(assemblies[4], "System.Windows.Controls", "ItemCollection");
			types[KnownTypes.ItemsControl] = InitType(assemblies[4], "System.Windows.Controls", "ItemsControl");
			types[KnownTypes.ItemsPanelTemplate] = InitType(assemblies[4], "System.Windows.Controls", "ItemsPanelTemplate");
			types[KnownTypes.ItemsPresenter] = InitType(assemblies[4], "System.Windows.Controls", "ItemsPresenter");
			types[KnownTypes.JournalEntry] = InitType(assemblies[4], "System.Windows.Navigation", "JournalEntry");
			types[KnownTypes.JournalEntryListConverter] = InitType(assemblies[4], "System.Windows.Navigation", "JournalEntryListConverter");
			types[KnownTypes.JournalEntryUnifiedViewConverter] = InitType(assemblies[4], "System.Windows.Navigation", "JournalEntryUnifiedViewConverter");
			types[KnownTypes.JpegBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "JpegBitmapDecoder");
			types[KnownTypes.JpegBitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "JpegBitmapEncoder");
			types[KnownTypes.KeyBinding] = InitType(assemblies[3], "System.Windows.Input", "KeyBinding");
			types[KnownTypes.KeyConverter] = InitType(assemblies[2], "System.Windows.Input", "KeyConverter");
			types[KnownTypes.KeyGesture] = InitType(assemblies[3], "System.Windows.Input", "KeyGesture");
			types[KnownTypes.KeyGestureConverter] = InitType(assemblies[3], "System.Windows.Input", "KeyGestureConverter");
			types[KnownTypes.KeySpline] = InitType(assemblies[3], "System.Windows.Media.Animation", "KeySpline");
			types[KnownTypes.KeySplineConverter] = InitType(assemblies[3], "System.Windows", "KeySplineConverter");
			types[KnownTypes.KeyTime] = InitType(assemblies[3], "System.Windows.Media.Animation", "KeyTime");
			types[KnownTypes.KeyTimeConverter] = InitType(assemblies[3], "System.Windows", "KeyTimeConverter");
			types[KnownTypes.KeyboardDevice] = InitType(assemblies[3], "System.Windows.Input", "KeyboardDevice");
			types[KnownTypes.Label] = InitType(assemblies[4], "System.Windows.Controls", "Label");
			types[KnownTypes.LateBoundBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "LateBoundBitmapDecoder");
			types[KnownTypes.LengthConverter] = InitType(assemblies[4], "System.Windows", "LengthConverter");
			types[KnownTypes.Light] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Light");
			types[KnownTypes.Line] = InitType(assemblies[4], "System.Windows.Shapes", "Line");
			types[KnownTypes.LineBreak] = InitType(assemblies[4], "System.Windows.Documents", "LineBreak");
			types[KnownTypes.LineGeometry] = InitType(assemblies[3], "System.Windows.Media", "LineGeometry");
			types[KnownTypes.LineSegment] = InitType(assemblies[3], "System.Windows.Media", "LineSegment");
			types[KnownTypes.LinearByteKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearByteKeyFrame");
			types[KnownTypes.LinearColorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearColorKeyFrame");
			types[KnownTypes.LinearDecimalKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearDecimalKeyFrame");
			types[KnownTypes.LinearDoubleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearDoubleKeyFrame");
			types[KnownTypes.LinearGradientBrush] = InitType(assemblies[3], "System.Windows.Media", "LinearGradientBrush");
			types[KnownTypes.LinearInt16KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearInt16KeyFrame");
			types[KnownTypes.LinearInt32KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearInt32KeyFrame");
			types[KnownTypes.LinearInt64KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearInt64KeyFrame");
			types[KnownTypes.LinearPoint3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearPoint3DKeyFrame");
			types[KnownTypes.LinearPointKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearPointKeyFrame");
			types[KnownTypes.LinearQuaternionKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearQuaternionKeyFrame");
			types[KnownTypes.LinearRectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearRectKeyFrame");
			types[KnownTypes.LinearRotation3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearRotation3DKeyFrame");
			types[KnownTypes.LinearSingleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearSingleKeyFrame");
			types[KnownTypes.LinearSizeKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearSizeKeyFrame");
			types[KnownTypes.LinearThicknessKeyFrame] = InitType(assemblies[4], "System.Windows.Media.Animation", "LinearThicknessKeyFrame");
			types[KnownTypes.LinearVector3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearVector3DKeyFrame");
			types[KnownTypes.LinearVectorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearVectorKeyFrame");
			types[KnownTypes.List] = InitType(assemblies[4], "System.Windows.Documents", "List");
			types[KnownTypes.ListBox] = InitType(assemblies[4], "System.Windows.Controls", "ListBox");
			types[KnownTypes.ListBoxItem] = InitType(assemblies[4], "System.Windows.Controls", "ListBoxItem");
			types[KnownTypes.ListCollectionView] = InitType(assemblies[4], "System.Windows.Data", "ListCollectionView");
			types[KnownTypes.ListItem] = InitType(assemblies[4], "System.Windows.Documents", "ListItem");
			types[KnownTypes.ListView] = InitType(assemblies[4], "System.Windows.Controls", "ListView");
			types[KnownTypes.ListViewItem] = InitType(assemblies[4], "System.Windows.Controls", "ListViewItem");
			types[KnownTypes.Localization] = InitType(assemblies[4], "System.Windows", "Localization");
			types[KnownTypes.LostFocusEventManager] = InitType(assemblies[4], "System.Windows", "LostFocusEventManager");
			types[KnownTypes.MarkupExtension] = InitType(assemblies[2], "System.Windows.Markup", "MarkupExtension");
			types[KnownTypes.Material] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Material");
			types[KnownTypes.MaterialCollection] = InitType(assemblies[3], "System.Windows.Media.Media3D", "MaterialCollection");
			types[KnownTypes.MaterialGroup] = InitType(assemblies[3], "System.Windows.Media.Media3D", "MaterialGroup");
			types[KnownTypes.Matrix] = InitType(assemblies[2], "System.Windows.Media", "Matrix");
			types[KnownTypes.Matrix3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Matrix3D");
			types[KnownTypes.Matrix3DConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Matrix3DConverter");
			types[KnownTypes.MatrixAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "MatrixAnimationBase");
			types[KnownTypes.MatrixAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "MatrixAnimationUsingKeyFrames");
			types[KnownTypes.MatrixAnimationUsingPath] = InitType(assemblies[3], "System.Windows.Media.Animation", "MatrixAnimationUsingPath");
			types[KnownTypes.MatrixCamera] = InitType(assemblies[3], "System.Windows.Media.Media3D", "MatrixCamera");
			types[KnownTypes.MatrixConverter] = InitType(assemblies[2], "System.Windows.Media", "MatrixConverter");
			types[KnownTypes.MatrixKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "MatrixKeyFrame");
			types[KnownTypes.MatrixKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "MatrixKeyFrameCollection");
			types[KnownTypes.MatrixTransform] = InitType(assemblies[3], "System.Windows.Media", "MatrixTransform");
			types[KnownTypes.MatrixTransform3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "MatrixTransform3D");
			types[KnownTypes.MediaClock] = InitType(assemblies[3], "System.Windows.Media", "MediaClock");
			types[KnownTypes.MediaElement] = InitType(assemblies[4], "System.Windows.Controls", "MediaElement");
			types[KnownTypes.MediaPlayer] = InitType(assemblies[3], "System.Windows.Media", "MediaPlayer");
			types[KnownTypes.MediaTimeline] = InitType(assemblies[3], "System.Windows.Media", "MediaTimeline");
			types[KnownTypes.Menu] = InitType(assemblies[4], "System.Windows.Controls", "Menu");
			types[KnownTypes.MenuBase] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "MenuBase");
			types[KnownTypes.MenuItem] = InitType(assemblies[4], "System.Windows.Controls", "MenuItem");
			types[KnownTypes.MenuScrollingVisibilityConverter] = InitType(assemblies[4], "System.Windows.Controls", "MenuScrollingVisibilityConverter");
			types[KnownTypes.MeshGeometry3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "MeshGeometry3D");
			types[KnownTypes.Model3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Model3D");
			types[KnownTypes.Model3DCollection] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Model3DCollection");
			types[KnownTypes.Model3DGroup] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Model3DGroup");
			types[KnownTypes.ModelVisual3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "ModelVisual3D");
			types[KnownTypes.ModifierKeysConverter] = InitType(assemblies[2], "System.Windows.Input", "ModifierKeysConverter");
			types[KnownTypes.MouseActionConverter] = InitType(assemblies[3], "System.Windows.Input", "MouseActionConverter");
			types[KnownTypes.MouseBinding] = InitType(assemblies[3], "System.Windows.Input", "MouseBinding");
			types[KnownTypes.MouseDevice] = InitType(assemblies[3], "System.Windows.Input", "MouseDevice");
			types[KnownTypes.MouseGesture] = InitType(assemblies[3], "System.Windows.Input", "MouseGesture");
			types[KnownTypes.MouseGestureConverter] = InitType(assemblies[3], "System.Windows.Input", "MouseGestureConverter");
			types[KnownTypes.MultiBinding] = InitType(assemblies[4], "System.Windows.Data", "MultiBinding");
			types[KnownTypes.MultiBindingExpression] = InitType(assemblies[4], "System.Windows.Data", "MultiBindingExpression");
			types[KnownTypes.MultiDataTrigger] = InitType(assemblies[4], "System.Windows", "MultiDataTrigger");
			types[KnownTypes.MultiTrigger] = InitType(assemblies[4], "System.Windows", "MultiTrigger");
			types[KnownTypes.NameScope] = InitType(assemblies[4], "System.Windows", "NameScope");
			types[KnownTypes.NavigationWindow] = InitType(assemblies[4], "System.Windows.Navigation", "NavigationWindow");
			types[KnownTypes.NullExtension] = InitType(assemblies[4], "System.Windows.Markup", "NullExtension");
			types[KnownTypes.NullableBoolConverter] = InitType(assemblies[4], "System.Windows", "NullableBoolConverter");
			types[KnownTypes.NullableConverter] = InitType(assemblies[1], "System.ComponentModel", "NullableConverter");
			types[KnownTypes.NumberSubstitution] = InitType(assemblies[3], "System.Windows.Media", "NumberSubstitution");
			types[KnownTypes.Object] = InitType(assemblies[0], "System", "Object");
			types[KnownTypes.ObjectAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "ObjectAnimationBase");
			types[KnownTypes.ObjectAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "ObjectAnimationUsingKeyFrames");
			types[KnownTypes.ObjectDataProvider] = InitType(assemblies[4], "System.Windows.Data", "ObjectDataProvider");
			types[KnownTypes.ObjectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "ObjectKeyFrame");
			types[KnownTypes.ObjectKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "ObjectKeyFrameCollection");
			types[KnownTypes.OrthographicCamera] = InitType(assemblies[3], "System.Windows.Media.Media3D", "OrthographicCamera");
			types[KnownTypes.OuterGlowBitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "OuterGlowBitmapEffect");
			types[KnownTypes.Page] = InitType(assemblies[4], "System.Windows.Controls", "Page");
			types[KnownTypes.PageContent] = InitType(assemblies[4], "System.Windows.Documents", "PageContent");
			types[KnownTypes.PageFunctionBase] = InitType(assemblies[4], "System.Windows.Navigation", "PageFunctionBase");
			types[KnownTypes.Panel] = InitType(assemblies[4], "System.Windows.Controls", "Panel");
			types[KnownTypes.Paragraph] = InitType(assemblies[4], "System.Windows.Documents", "Paragraph");
			types[KnownTypes.ParallelTimeline] = InitType(assemblies[3], "System.Windows.Media.Animation", "ParallelTimeline");
			types[KnownTypes.ParserContext] = InitType(assemblies[4], "System.Windows.Markup", "ParserContext");
			types[KnownTypes.PasswordBox] = InitType(assemblies[4], "System.Windows.Controls", "PasswordBox");
			types[KnownTypes.Path] = InitType(assemblies[4], "System.Windows.Shapes", "Path");
			types[KnownTypes.PathFigure] = InitType(assemblies[3], "System.Windows.Media", "PathFigure");
			types[KnownTypes.PathFigureCollection] = InitType(assemblies[3], "System.Windows.Media", "PathFigureCollection");
			types[KnownTypes.PathFigureCollectionConverter] = InitType(assemblies[3], "System.Windows.Media", "PathFigureCollectionConverter");
			types[KnownTypes.PathGeometry] = InitType(assemblies[3], "System.Windows.Media", "PathGeometry");
			types[KnownTypes.PathSegment] = InitType(assemblies[3], "System.Windows.Media", "PathSegment");
			types[KnownTypes.PathSegmentCollection] = InitType(assemblies[3], "System.Windows.Media", "PathSegmentCollection");
			types[KnownTypes.PauseStoryboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "PauseStoryboard");
			types[KnownTypes.Pen] = InitType(assemblies[3], "System.Windows.Media", "Pen");
			types[KnownTypes.PerspectiveCamera] = InitType(assemblies[3], "System.Windows.Media.Media3D", "PerspectiveCamera");
			types[KnownTypes.PixelFormat] = InitType(assemblies[3], "System.Windows.Media", "PixelFormat");
			types[KnownTypes.PixelFormatConverter] = InitType(assemblies[3], "System.Windows.Media", "PixelFormatConverter");
			types[KnownTypes.PngBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "PngBitmapDecoder");
			types[KnownTypes.PngBitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "PngBitmapEncoder");
			types[KnownTypes.Point] = InitType(assemblies[2], "System.Windows", "Point");
			types[KnownTypes.Point3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point3D");
			types[KnownTypes.Point3DAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "Point3DAnimation");
			types[KnownTypes.Point3DAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "Point3DAnimationBase");
			types[KnownTypes.Point3DAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "Point3DAnimationUsingKeyFrames");
			types[KnownTypes.Point3DCollection] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point3DCollection");
			types[KnownTypes.Point3DCollectionConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point3DCollectionConverter");
			types[KnownTypes.Point3DConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point3DConverter");
			types[KnownTypes.Point3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "Point3DKeyFrame");
			types[KnownTypes.Point3DKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "Point3DKeyFrameCollection");
			types[KnownTypes.Point4D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point4D");
			types[KnownTypes.Point4DConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point4DConverter");
			types[KnownTypes.PointAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointAnimation");
			types[KnownTypes.PointAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointAnimationBase");
			types[KnownTypes.PointAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointAnimationUsingKeyFrames");
			types[KnownTypes.PointAnimationUsingPath] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointAnimationUsingPath");
			types[KnownTypes.PointCollection] = InitType(assemblies[3], "System.Windows.Media", "PointCollection");
			types[KnownTypes.PointCollectionConverter] = InitType(assemblies[3], "System.Windows.Media", "PointCollectionConverter");
			types[KnownTypes.PointConverter] = InitType(assemblies[2], "System.Windows", "PointConverter");
			types[KnownTypes.PointIListConverter] = InitType(assemblies[3], "System.Windows.Media.Converters", "PointIListConverter");
			types[KnownTypes.PointKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointKeyFrame");
			types[KnownTypes.PointKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointKeyFrameCollection");
			types[KnownTypes.PointLight] = InitType(assemblies[3], "System.Windows.Media.Media3D", "PointLight");
			types[KnownTypes.PointLightBase] = InitType(assemblies[3], "System.Windows.Media.Media3D", "PointLightBase");
			types[KnownTypes.PolyBezierSegment] = InitType(assemblies[3], "System.Windows.Media", "PolyBezierSegment");
			types[KnownTypes.PolyLineSegment] = InitType(assemblies[3], "System.Windows.Media", "PolyLineSegment");
			types[KnownTypes.PolyQuadraticBezierSegment] = InitType(assemblies[3], "System.Windows.Media", "PolyQuadraticBezierSegment");
			types[KnownTypes.Polygon] = InitType(assemblies[4], "System.Windows.Shapes", "Polygon");
			types[KnownTypes.Polyline] = InitType(assemblies[4], "System.Windows.Shapes", "Polyline");
			types[KnownTypes.Popup] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "Popup");
			types[KnownTypes.PresentationSource] = InitType(assemblies[3], "System.Windows", "PresentationSource");
			types[KnownTypes.PriorityBinding] = InitType(assemblies[4], "System.Windows.Data", "PriorityBinding");
			types[KnownTypes.PriorityBindingExpression] = InitType(assemblies[4], "System.Windows.Data", "PriorityBindingExpression");
			types[KnownTypes.ProgressBar] = InitType(assemblies[4], "System.Windows.Controls", "ProgressBar");
			types[KnownTypes.ProjectionCamera] = InitType(assemblies[3], "System.Windows.Media.Media3D", "ProjectionCamera");
			types[KnownTypes.PropertyPath] = InitType(assemblies[4], "System.Windows", "PropertyPath");
			types[KnownTypes.PropertyPathConverter] = InitType(assemblies[4], "System.Windows", "PropertyPathConverter");
			types[KnownTypes.QuadraticBezierSegment] = InitType(assemblies[3], "System.Windows.Media", "QuadraticBezierSegment");
			types[KnownTypes.Quaternion] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Quaternion");
			types[KnownTypes.QuaternionAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "QuaternionAnimation");
			types[KnownTypes.QuaternionAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "QuaternionAnimationBase");
			types[KnownTypes.QuaternionAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "QuaternionAnimationUsingKeyFrames");
			types[KnownTypes.QuaternionConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "QuaternionConverter");
			types[KnownTypes.QuaternionKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "QuaternionKeyFrame");
			types[KnownTypes.QuaternionKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "QuaternionKeyFrameCollection");
			types[KnownTypes.QuaternionRotation3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "QuaternionRotation3D");
			types[KnownTypes.RadialGradientBrush] = InitType(assemblies[3], "System.Windows.Media", "RadialGradientBrush");
			types[KnownTypes.RadioButton] = InitType(assemblies[4], "System.Windows.Controls", "RadioButton");
			types[KnownTypes.RangeBase] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "RangeBase");
			types[KnownTypes.Rect] = InitType(assemblies[2], "System.Windows", "Rect");
			types[KnownTypes.Rect3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Rect3D");
			types[KnownTypes.Rect3DConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Rect3DConverter");
			types[KnownTypes.RectAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "RectAnimation");
			types[KnownTypes.RectAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "RectAnimationBase");
			types[KnownTypes.RectAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "RectAnimationUsingKeyFrames");
			types[KnownTypes.RectConverter] = InitType(assemblies[2], "System.Windows", "RectConverter");
			types[KnownTypes.RectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "RectKeyFrame");
			types[KnownTypes.RectKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "RectKeyFrameCollection");
			types[KnownTypes.Rectangle] = InitType(assemblies[4], "System.Windows.Shapes", "Rectangle");
			types[KnownTypes.RectangleGeometry] = InitType(assemblies[3], "System.Windows.Media", "RectangleGeometry");
			types[KnownTypes.RelativeSource] = InitType(assemblies[4], "System.Windows.Data", "RelativeSource");
			types[KnownTypes.RemoveStoryboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "RemoveStoryboard");
			types[KnownTypes.RenderOptions] = InitType(assemblies[3], "System.Windows.Media", "RenderOptions");
			types[KnownTypes.RenderTargetBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "RenderTargetBitmap");
			types[KnownTypes.RepeatBehavior] = InitType(assemblies[3], "System.Windows.Media.Animation", "RepeatBehavior");
			types[KnownTypes.RepeatBehaviorConverter] = InitType(assemblies[3], "System.Windows.Media.Animation", "RepeatBehaviorConverter");
			types[KnownTypes.RepeatButton] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "RepeatButton");
			types[KnownTypes.ResizeGrip] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "ResizeGrip");
			types[KnownTypes.ResourceDictionary] = InitType(assemblies[4], "System.Windows", "ResourceDictionary");
			types[KnownTypes.ResourceKey] = InitType(assemblies[4], "System.Windows", "ResourceKey");
			types[KnownTypes.ResumeStoryboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "ResumeStoryboard");
			types[KnownTypes.RichTextBox] = InitType(assemblies[4], "System.Windows.Controls", "RichTextBox");
			types[KnownTypes.RotateTransform] = InitType(assemblies[3], "System.Windows.Media", "RotateTransform");
			types[KnownTypes.RotateTransform3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "RotateTransform3D");
			types[KnownTypes.Rotation3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Rotation3D");
			types[KnownTypes.Rotation3DAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "Rotation3DAnimation");
			types[KnownTypes.Rotation3DAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "Rotation3DAnimationBase");
			types[KnownTypes.Rotation3DAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "Rotation3DAnimationUsingKeyFrames");
			types[KnownTypes.Rotation3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "Rotation3DKeyFrame");
			types[KnownTypes.Rotation3DKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "Rotation3DKeyFrameCollection");
			types[KnownTypes.RoutedCommand] = InitType(assemblies[3], "System.Windows.Input", "RoutedCommand");
			types[KnownTypes.RoutedEvent] = InitType(assemblies[3], "System.Windows", "RoutedEvent");
			types[KnownTypes.RoutedEventConverter] = InitType(assemblies[4], "System.Windows.Markup", "RoutedEventConverter");
			types[KnownTypes.RoutedUICommand] = InitType(assemblies[3], "System.Windows.Input", "RoutedUICommand");
			types[KnownTypes.RoutingStrategy] = InitType(assemblies[3], "System.Windows", "RoutingStrategy");
			types[KnownTypes.RowDefinition] = InitType(assemblies[4], "System.Windows.Controls", "RowDefinition");
			types[KnownTypes.Run] = InitType(assemblies[4], "System.Windows.Documents", "Run");
			types[KnownTypes.RuntimeNamePropertyAttribute] = InitType(assemblies[2], "System.Windows.Markup", "RuntimeNamePropertyAttribute");
			types[KnownTypes.SByte] = InitType(assemblies[0], "System", "SByte");
			types[KnownTypes.SByteConverter] = InitType(assemblies[1], "System.ComponentModel", "SByteConverter");
			types[KnownTypes.ScaleTransform] = InitType(assemblies[3], "System.Windows.Media", "ScaleTransform");
			types[KnownTypes.ScaleTransform3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "ScaleTransform3D");
			types[KnownTypes.ScrollBar] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "ScrollBar");
			types[KnownTypes.ScrollContentPresenter] = InitType(assemblies[4], "System.Windows.Controls", "ScrollContentPresenter");
			types[KnownTypes.ScrollViewer] = InitType(assemblies[4], "System.Windows.Controls", "ScrollViewer");
			types[KnownTypes.Section] = InitType(assemblies[4], "System.Windows.Documents", "Section");
			types[KnownTypes.SeekStoryboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "SeekStoryboard");
			types[KnownTypes.Selector] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "Selector");
			types[KnownTypes.Separator] = InitType(assemblies[4], "System.Windows.Controls", "Separator");
			types[KnownTypes.SetStoryboardSpeedRatio] = InitType(assemblies[4], "System.Windows.Media.Animation", "SetStoryboardSpeedRatio");
			types[KnownTypes.Setter] = InitType(assemblies[4], "System.Windows", "Setter");
			types[KnownTypes.SetterBase] = InitType(assemblies[4], "System.Windows", "SetterBase");
			types[KnownTypes.Shape] = InitType(assemblies[4], "System.Windows.Shapes", "Shape");
			types[KnownTypes.Single] = InitType(assemblies[0], "System", "Single");
			types[KnownTypes.SingleAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "SingleAnimation");
			types[KnownTypes.SingleAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "SingleAnimationBase");
			types[KnownTypes.SingleAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "SingleAnimationUsingKeyFrames");
			types[KnownTypes.SingleConverter] = InitType(assemblies[1], "System.ComponentModel", "SingleConverter");
			types[KnownTypes.SingleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SingleKeyFrame");
			types[KnownTypes.SingleKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "SingleKeyFrameCollection");
			types[KnownTypes.Size] = InitType(assemblies[2], "System.Windows", "Size");
			types[KnownTypes.Size3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Size3D");
			types[KnownTypes.Size3DConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Size3DConverter");
			types[KnownTypes.SizeAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "SizeAnimation");
			types[KnownTypes.SizeAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "SizeAnimationBase");
			types[KnownTypes.SizeAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "SizeAnimationUsingKeyFrames");
			types[KnownTypes.SizeConverter] = InitType(assemblies[2], "System.Windows", "SizeConverter");
			types[KnownTypes.SizeKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SizeKeyFrame");
			types[KnownTypes.SizeKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "SizeKeyFrameCollection");
			types[KnownTypes.SkewTransform] = InitType(assemblies[3], "System.Windows.Media", "SkewTransform");
			types[KnownTypes.SkipStoryboardToFill] = InitType(assemblies[4], "System.Windows.Media.Animation", "SkipStoryboardToFill");
			types[KnownTypes.Slider] = InitType(assemblies[4], "System.Windows.Controls", "Slider");
			types[KnownTypes.SolidColorBrush] = InitType(assemblies[3], "System.Windows.Media", "SolidColorBrush");
			types[KnownTypes.SoundPlayerAction] = InitType(assemblies[4], "System.Windows.Controls", "SoundPlayerAction");
			types[KnownTypes.Span] = InitType(assemblies[4], "System.Windows.Documents", "Span");
			types[KnownTypes.SpecularMaterial] = InitType(assemblies[3], "System.Windows.Media.Media3D", "SpecularMaterial");
			types[KnownTypes.SpellCheck] = InitType(assemblies[4], "System.Windows.Controls", "SpellCheck");
			types[KnownTypes.SplineByteKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineByteKeyFrame");
			types[KnownTypes.SplineColorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineColorKeyFrame");
			types[KnownTypes.SplineDecimalKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineDecimalKeyFrame");
			types[KnownTypes.SplineDoubleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineDoubleKeyFrame");
			types[KnownTypes.SplineInt16KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineInt16KeyFrame");
			types[KnownTypes.SplineInt32KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineInt32KeyFrame");
			types[KnownTypes.SplineInt64KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineInt64KeyFrame");
			types[KnownTypes.SplinePoint3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplinePoint3DKeyFrame");
			types[KnownTypes.SplinePointKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplinePointKeyFrame");
			types[KnownTypes.SplineQuaternionKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineQuaternionKeyFrame");
			types[KnownTypes.SplineRectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineRectKeyFrame");
			types[KnownTypes.SplineRotation3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineRotation3DKeyFrame");
			types[KnownTypes.SplineSingleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineSingleKeyFrame");
			types[KnownTypes.SplineSizeKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineSizeKeyFrame");
			types[KnownTypes.SplineThicknessKeyFrame] = InitType(assemblies[4], "System.Windows.Media.Animation", "SplineThicknessKeyFrame");
			types[KnownTypes.SplineVector3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineVector3DKeyFrame");
			types[KnownTypes.SplineVectorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineVectorKeyFrame");
			types[KnownTypes.SpotLight] = InitType(assemblies[3], "System.Windows.Media.Media3D", "SpotLight");
			types[KnownTypes.StackPanel] = InitType(assemblies[4], "System.Windows.Controls", "StackPanel");
			types[KnownTypes.StaticExtension] = InitType(assemblies[4], "System.Windows.Markup", "StaticExtension");
			type
Download .txt
gitextract_h8aaa6eu/

├── .editorconfig
├── .git-blame-ignore-revs
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── feature_request.md
│   │   └── wrong_decompilation.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── build-frontends.yml
│       ├── build-ilspy.yml
│       ├── codeql-analysis.yml
│       ├── generate-bom.yml
│       ├── lock.yml
│       └── scorecard.yml
├── .gitignore
├── .gitmodules
├── .tgitconfig
├── BuildTools/
│   ├── ILSpy.AddIn.VS2022.vsix.filelist
│   ├── ILSpy.AddIn.vsix.filelist
│   ├── ILSpy.msi.filelist
│   ├── bom-classify-encodings.ps1
│   ├── bom-strip.ps1
│   ├── create-filelists.ps1
│   ├── format.bat
│   ├── ghactions-install.ps1
│   ├── pre-commit
│   ├── sort-resx.ps1
│   └── update-assemblyinfo.ps1
├── Directory.Build.props
├── Directory.Packages.props
├── ICSharpCode.BamlDecompiler/
│   ├── Baml/
│   │   ├── BamlContext.cs
│   │   ├── BamlDocument.cs
│   │   ├── BamlNode.cs
│   │   ├── BamlReader.cs
│   │   ├── BamlRecords.cs
│   │   ├── BamlWriter.cs
│   │   ├── KnownMembers.cs
│   │   ├── KnownThings.cs
│   │   ├── KnownThings.g.cs
│   │   ├── KnownThings.gen.cs
│   │   └── KnownTypes.cs
│   ├── BamlConnectionId.cs
│   ├── BamlDecompilationResult.cs
│   ├── BamlDecompilerSettings.cs
│   ├── BamlDecompilerTypeSystem.cs
│   ├── BamlElement.cs
│   ├── Handlers/
│   │   ├── Blocks/
│   │   │   ├── ConstructorParametersHandler.cs
│   │   │   ├── DocumentHandler.cs
│   │   │   ├── ElementHandler.cs
│   │   │   ├── KeyElementStartHandler.cs
│   │   │   ├── PropertyArrayHandler.cs
│   │   │   ├── PropertyComplexHandler.cs
│   │   │   ├── PropertyDictionaryHandler.cs
│   │   │   └── PropertyListHandler.cs
│   │   └── Records/
│   │       ├── AssemblyInfoHandler.cs
│   │       ├── AttributeInfoHandler.cs
│   │       ├── ConnectionIdHandler.cs
│   │       ├── ConstructorParameterTypeHandler.cs
│   │       ├── ContentPropertyHandler.cs
│   │       ├── DefAttributeHandler.cs
│   │       ├── DefAttributeKeyStringHandler.cs
│   │       ├── DefAttributeKeyTypeHandler.cs
│   │       ├── DeferableContentStartHandler.cs
│   │       ├── LineNumberAndPositionHandler.cs
│   │       ├── LinePositionHandler.cs
│   │       ├── LiteralContentHandler.cs
│   │       ├── OptimizedStaticResourceHandler.cs
│   │       ├── PIMappingHandler.cs
│   │       ├── PresentationOptionsAttributeHandler.cs
│   │       ├── PropertyCustomHandler.cs
│   │       ├── PropertyHandler.cs
│   │       ├── PropertyTypeReferenceHandler.cs
│   │       ├── PropertyWithConverterHandler.cs
│   │       ├── PropertyWithExtensionHandler.cs
│   │       ├── PropertyWithStaticResourceIdHandler.cs
│   │       ├── StaticResourceIdHandler.cs
│   │       ├── StaticResourceStartHandler.cs
│   │       ├── TextHandler.cs
│   │       ├── TextWithConverterHandler.cs
│   │       ├── TypeInfoHandler.cs
│   │       └── XmlnsPropertyHandler.cs
│   ├── ICSharpCode.BamlDecompiler.csproj
│   ├── IHandlers.cs
│   ├── IRewritePass.cs
│   ├── PackageReadme.md
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Rewrite/
│   │   ├── AttributeRewritePass.cs
│   │   ├── ConnectionIdRewritePass.cs
│   │   ├── DocumentRewritePass.cs
│   │   ├── MarkupExtensionRewritePass.cs
│   │   └── XClassRewritePass.cs
│   ├── Xaml/
│   │   ├── NamespaceMap.cs
│   │   ├── XamlExtension.cs
│   │   ├── XamlPathDeserializer.cs
│   │   ├── XamlProperty.cs
│   │   ├── XamlResourceKey.cs
│   │   ├── XamlType.cs
│   │   └── XamlUtils.cs
│   ├── XamlContext.cs
│   ├── XamlDecompiler.cs
│   ├── XmlnsDictionary.cs
│   └── packages.lock.json
├── ICSharpCode.Decompiler/
│   ├── CSharp/
│   │   ├── Annotations.cs
│   │   ├── CSharpDecompiler.cs
│   │   ├── CSharpLanguageVersion.cs
│   │   ├── CallBuilder.cs
│   │   ├── ExpressionBuilder.cs
│   │   ├── OutputVisitor/
│   │   │   ├── CSharpAmbience.cs
│   │   │   ├── CSharpFormattingOptions.cs
│   │   │   ├── CSharpOutputVisitor.cs
│   │   │   ├── FormattingOptionsFactory.cs
│   │   │   ├── GenericGrammarAmbiguityVisitor.cs
│   │   │   ├── ITokenWriter.cs
│   │   │   ├── InsertMissingTokensDecorator.cs
│   │   │   ├── InsertParenthesesVisitor.cs
│   │   │   ├── InsertRequiredSpacesDecorator.cs
│   │   │   ├── InsertSpecialsDecorator.cs
│   │   │   └── TextWriterTokenWriter.cs
│   │   ├── ProjectDecompiler/
│   │   │   ├── IProjectFileWriter.cs
│   │   │   ├── IProjectInfoProvider.cs
│   │   │   ├── ProjectFileWriterDefault.cs
│   │   │   ├── ProjectFileWriterSdkStyle.cs
│   │   │   ├── TargetFramework.cs
│   │   │   ├── TargetServices.cs
│   │   │   └── WholeProjectDecompiler.cs
│   │   ├── RecordDecompiler.cs
│   │   ├── RequiredNamespaceCollector.cs
│   │   ├── Resolver/
│   │   │   ├── AliasNamespaceResolveResult.cs
│   │   │   ├── AliasTypeResolveResult.cs
│   │   │   ├── AwaitResolveResult.cs
│   │   │   ├── CSharpConversions.cs
│   │   │   ├── CSharpInvocationResolveResult.cs
│   │   │   ├── CSharpOperators.cs
│   │   │   ├── CSharpResolver.cs
│   │   │   ├── DynamicInvocationResolveResult.cs
│   │   │   ├── DynamicMemberResolveResult.cs
│   │   │   ├── LambdaResolveResult.cs
│   │   │   ├── Log.cs
│   │   │   ├── MemberLookup.cs
│   │   │   ├── MethodGroupResolveResult.cs
│   │   │   ├── NameLookupMode.cs
│   │   │   ├── OverloadResolution.cs
│   │   │   ├── OverloadResolutionErrors.cs
│   │   │   └── TypeInference.cs
│   │   ├── SequencePointBuilder.cs
│   │   ├── StatementBuilder.cs
│   │   ├── Syntax/
│   │   │   ├── AstNode.cs
│   │   │   ├── AstNodeCollection.cs
│   │   │   ├── AstType.cs
│   │   │   ├── CSharpModifierToken.cs
│   │   │   ├── CSharpTokenNode.cs
│   │   │   ├── ComposedType.cs
│   │   │   ├── DepthFirstAstVisitor.cs
│   │   │   ├── DocumentationReference.cs
│   │   │   ├── Expressions/
│   │   │   │   ├── AnonymousMethodExpression.cs
│   │   │   │   ├── AnonymousTypeCreateExpression.cs
│   │   │   │   ├── ArrayCreateExpression.cs
│   │   │   │   ├── ArrayInitializerExpression.cs
│   │   │   │   ├── AsExpression.cs
│   │   │   │   ├── AssignmentExpression.cs
│   │   │   │   ├── BaseReferenceExpression.cs
│   │   │   │   ├── BinaryOperatorExpression.cs
│   │   │   │   ├── CastExpression.cs
│   │   │   │   ├── CheckedExpression.cs
│   │   │   │   ├── ConditionalExpression.cs
│   │   │   │   ├── DeclarationExpression.cs
│   │   │   │   ├── DefaultValueExpression.cs
│   │   │   │   ├── DirectionExpression.cs
│   │   │   │   ├── ErrorExpression.cs
│   │   │   │   ├── Expression.cs
│   │   │   │   ├── IdentifierExpression.cs
│   │   │   │   ├── IndexerExpression.cs
│   │   │   │   ├── InterpolatedStringExpression.cs
│   │   │   │   ├── InvocationExpression.cs
│   │   │   │   ├── IsExpression.cs
│   │   │   │   ├── LambdaExpression.cs
│   │   │   │   ├── MemberReferenceExpression.cs
│   │   │   │   ├── NamedArgumentExpression.cs
│   │   │   │   ├── NamedExpression.cs
│   │   │   │   ├── NullReferenceExpression.cs
│   │   │   │   ├── ObjectCreateExpression.cs
│   │   │   │   ├── OutVarDeclarationExpression.cs
│   │   │   │   ├── ParenthesizedExpression.cs
│   │   │   │   ├── PointerReferenceExpression.cs
│   │   │   │   ├── PrimitiveExpression.cs
│   │   │   │   ├── QueryExpression.cs
│   │   │   │   ├── RecursivePatternExpression.cs
│   │   │   │   ├── SizeOfExpression.cs
│   │   │   │   ├── StackAllocExpression.cs
│   │   │   │   ├── SwitchExpression.cs
│   │   │   │   ├── ThisReferenceExpression.cs
│   │   │   │   ├── ThrowExpression.cs
│   │   │   │   ├── TupleExpression.cs
│   │   │   │   ├── TypeOfExpression.cs
│   │   │   │   ├── TypeReferenceExpression.cs
│   │   │   │   ├── UnaryOperatorExpression.cs
│   │   │   │   ├── UncheckedExpression.cs
│   │   │   │   ├── UndocumentedExpression.cs
│   │   │   │   └── WithInitializerExpression.cs
│   │   │   ├── FunctionPointerAstType.cs
│   │   │   ├── GeneralScope/
│   │   │   │   ├── Attribute.cs
│   │   │   │   ├── AttributeSection.cs
│   │   │   │   ├── Comment.cs
│   │   │   │   ├── Constraint.cs
│   │   │   │   ├── DelegateDeclaration.cs
│   │   │   │   ├── ExternAliasDeclaration.cs
│   │   │   │   ├── NamespaceDeclaration.cs
│   │   │   │   ├── PreProcessorDirective.cs
│   │   │   │   ├── TypeDeclaration.cs
│   │   │   │   ├── TypeParameterDeclaration.cs
│   │   │   │   ├── UsingAliasDeclaration.cs
│   │   │   │   └── UsingDeclaration.cs
│   │   │   ├── IAnnotatable.cs
│   │   │   ├── IAstVisitor.cs
│   │   │   ├── Identifier.cs
│   │   │   ├── IdentifierExpressionBackreference.cs
│   │   │   ├── InvocationAstType.cs
│   │   │   ├── MemberType.cs
│   │   │   ├── Modifiers.cs
│   │   │   ├── NodeType.cs
│   │   │   ├── PatternMatching/
│   │   │   │   ├── AnyNode.cs
│   │   │   │   ├── AnyNodeOrNull.cs
│   │   │   │   ├── Backreference.cs
│   │   │   │   ├── BacktrackingInfo.cs
│   │   │   │   ├── Choice.cs
│   │   │   │   ├── INode.cs
│   │   │   │   ├── Match.cs
│   │   │   │   ├── NamedNode.cs
│   │   │   │   ├── OptionalNode.cs
│   │   │   │   ├── Pattern.cs
│   │   │   │   └── Repeat.cs
│   │   │   ├── PrimitiveType.cs
│   │   │   ├── Role.cs
│   │   │   ├── Roles.cs
│   │   │   ├── SimpleType.cs
│   │   │   ├── Statements/
│   │   │   │   ├── BlockStatement.cs
│   │   │   │   ├── BreakStatement.cs
│   │   │   │   ├── CheckedStatement.cs
│   │   │   │   ├── ContinueStatement.cs
│   │   │   │   ├── DoWhileStatement.cs
│   │   │   │   ├── EmptyStatement.cs
│   │   │   │   ├── ExpressionStatement.cs
│   │   │   │   ├── FixedStatement.cs
│   │   │   │   ├── ForStatement.cs
│   │   │   │   ├── ForeachStatement.cs
│   │   │   │   ├── GotoStatement.cs
│   │   │   │   ├── IfElseStatement.cs
│   │   │   │   ├── LabelStatement.cs
│   │   │   │   ├── LocalFunctionDeclarationStatement.cs
│   │   │   │   ├── LockStatement.cs
│   │   │   │   ├── ReturnStatement.cs
│   │   │   │   ├── Statement.cs
│   │   │   │   ├── SwitchStatement.cs
│   │   │   │   ├── ThrowStatement.cs
│   │   │   │   ├── TryCatchStatement.cs
│   │   │   │   ├── UncheckedStatement.cs
│   │   │   │   ├── UnsafeStatement.cs
│   │   │   │   ├── UsingStatement.cs
│   │   │   │   ├── VariableDeclarationStatement.cs
│   │   │   │   ├── WhileStatement.cs
│   │   │   │   ├── YieldBreakStatement.cs
│   │   │   │   └── YieldReturnStatement.cs
│   │   │   ├── SyntaxExtensions.cs
│   │   │   ├── SyntaxTree.cs
│   │   │   ├── TextLocation.cs
│   │   │   ├── TokenRole.cs
│   │   │   ├── TupleAstType.cs
│   │   │   ├── TypeMembers/
│   │   │   │   ├── Accessor.cs
│   │   │   │   ├── ConstructorDeclaration.cs
│   │   │   │   ├── DestructorDeclaration.cs
│   │   │   │   ├── EntityDeclaration.cs
│   │   │   │   ├── EnumMemberDeclaration.cs
│   │   │   │   ├── EventDeclaration.cs
│   │   │   │   ├── ExtensionDeclaration.cs
│   │   │   │   ├── FieldDeclaration.cs
│   │   │   │   ├── FixedFieldDeclaration.cs
│   │   │   │   ├── FixedVariableInitializer.cs
│   │   │   │   ├── IndexerDeclaration.cs
│   │   │   │   ├── MethodDeclaration.cs
│   │   │   │   ├── OperatorDeclaration.cs
│   │   │   │   ├── ParameterDeclaration.cs
│   │   │   │   ├── PropertyDeclaration.cs
│   │   │   │   └── VariableInitializer.cs
│   │   │   ├── TypeSystemAstBuilder.cs
│   │   │   └── VariableDesignation.cs
│   │   ├── Transforms/
│   │   │   ├── AddCheckedBlocks.cs
│   │   │   ├── AddXmlDocumentationTransform.cs
│   │   │   ├── CombineQueryExpressions.cs
│   │   │   ├── ContextTrackingVisitor.cs
│   │   │   ├── CustomPatterns.cs
│   │   │   ├── DeclareVariables.cs
│   │   │   ├── EscapeInvalidIdentifiers.cs
│   │   │   ├── FixNameCollisions.cs
│   │   │   ├── FlattenSwitchBlocks.cs
│   │   │   ├── IAstTransform.cs
│   │   │   ├── IntroduceExtensionMethods.cs
│   │   │   ├── IntroduceQueryExpressions.cs
│   │   │   ├── IntroduceUnsafeModifier.cs
│   │   │   ├── IntroduceUsingDeclarations.cs
│   │   │   ├── NormalizeBlockStatements.cs
│   │   │   ├── PatternStatementTransform.cs
│   │   │   ├── PrettifyAssignments.cs
│   │   │   ├── RemoveCLSCompliantAttribute.cs
│   │   │   ├── ReplaceMethodCallsWithOperators.cs
│   │   │   ├── TransformContext.cs
│   │   │   └── TransformFieldAndConstructorInitializers.cs
│   │   ├── TranslatedExpression.cs
│   │   ├── TranslatedStatement.cs
│   │   ├── TranslationContext.cs
│   │   └── TypeSystem/
│   │       ├── CSharpTypeResolveContext.cs
│   │       └── UsingScope.cs
│   ├── DebugInfo/
│   │   ├── AsyncDebugInfo.cs
│   │   ├── DebugInfoGenerator.cs
│   │   ├── IDebugInfoProvider.cs
│   │   ├── ImportScopeInfo.cs
│   │   ├── KnownGuids.cs
│   │   ├── PortablePdbWriter.cs
│   │   └── SequencePoint.cs
│   ├── DecompilationProgress.cs
│   ├── DecompileRun.cs
│   ├── DecompilerException.cs
│   ├── DecompilerSettings.cs
│   ├── Disassembler/
│   │   ├── DisassemblerHelpers.cs
│   │   ├── DisassemblerSignatureTypeProvider.cs
│   │   ├── IEntityProcessor.cs
│   │   ├── ILParser.cs
│   │   ├── ILStructure.cs
│   │   ├── MethodBodyDisassembler.cs
│   │   ├── OpCodeInfo.cs
│   │   ├── ReflectionDisassembler.cs
│   │   └── SortByNameProcessor.cs
│   ├── Documentation/
│   │   ├── GetPotentiallyNestedClassTypeReference.cs
│   │   ├── IdStringMemberReference.cs
│   │   ├── IdStringProvider.cs
│   │   ├── XmlDocLoader.cs
│   │   ├── XmlDocumentationElement.cs
│   │   └── XmlDocumentationProvider.cs
│   ├── FlowAnalysis/
│   │   ├── ControlFlowNode.cs
│   │   ├── DataFlowVisitor.cs
│   │   ├── DefiniteAssignmentVisitor.cs
│   │   ├── Dominance.cs
│   │   └── ReachingDefinitionsVisitor.cs
│   ├── Humanizer/
│   │   ├── LICENSE
│   │   ├── StringHumanizeExtensions.cs
│   │   ├── Vocabularies.cs
│   │   └── Vocabulary.cs
│   ├── ICSharpCode.Decompiler.csproj
│   ├── ICSharpCode.Decompiler.snk
│   ├── IL/
│   │   ├── BlockBuilder.cs
│   │   ├── ControlFlow/
│   │   │   ├── AsyncAwaitDecompiler.cs
│   │   │   ├── AwaitInCatchTransform.cs
│   │   │   ├── AwaitInFinallyTransform.cs
│   │   │   ├── ConditionDetection.cs
│   │   │   ├── ControlFlowGraph.cs
│   │   │   ├── ControlFlowSimplification.cs
│   │   │   ├── DetectPinnedRegions.cs
│   │   │   ├── ExitPoints.cs
│   │   │   ├── LoopDetection.cs
│   │   │   ├── RemoveRedundantReturn.cs
│   │   │   ├── StateRangeAnalysis.cs
│   │   │   ├── SwitchAnalysis.cs
│   │   │   ├── SwitchDetection.cs
│   │   │   ├── SymbolicExecution.cs
│   │   │   └── YieldReturnDecompiler.cs
│   │   ├── ILAmbience.cs
│   │   ├── ILAstWritingOptions.cs
│   │   ├── ILInstructionExtensions.cs
│   │   ├── ILReader.cs
│   │   ├── ILTypeExtensions.cs
│   │   ├── ILVariable.cs
│   │   ├── InstructionFlags.cs
│   │   ├── InstructionOutputExtensions.cs
│   │   ├── Instructions/
│   │   │   ├── Await.cs
│   │   │   ├── BinaryNumericInstruction.cs
│   │   │   ├── Block.cs
│   │   │   ├── BlockContainer.cs
│   │   │   ├── Branch.cs
│   │   │   ├── CallIndirect.cs
│   │   │   ├── CallInstruction.cs
│   │   │   ├── Comp.cs
│   │   │   ├── CompoundAssignmentInstruction.cs
│   │   │   ├── Conv.cs
│   │   │   ├── DeconstructInstruction.cs
│   │   │   ├── DeconstructResultInstruction.cs
│   │   │   ├── DefaultValue.cs
│   │   │   ├── DynamicInstructions.cs
│   │   │   ├── ExpressionTreeCast.cs
│   │   │   ├── ILFunction.cs
│   │   │   ├── ILInstruction.cs
│   │   │   ├── ILVariableCollection.cs
│   │   │   ├── IfInstruction.cs
│   │   │   ├── InstructionCollection.cs
│   │   │   ├── IsInst.cs
│   │   │   ├── LdFlda.cs
│   │   │   ├── LdLen.cs
│   │   │   ├── Leave.cs
│   │   │   ├── LockInstruction.cs
│   │   │   ├── LogicInstructions.cs
│   │   │   ├── MatchInstruction.cs
│   │   │   ├── MemoryInstructions.cs
│   │   │   ├── NullCoalescingInstruction.cs
│   │   │   ├── NullableInstructions.cs
│   │   │   ├── PatternMatching.cs
│   │   │   ├── SimpleInstruction.cs
│   │   │   ├── StLoc.cs
│   │   │   ├── StringToInt.cs
│   │   │   ├── SwitchInstruction.cs
│   │   │   ├── TryInstruction.cs
│   │   │   ├── UnaryInstruction.cs
│   │   │   └── UsingInstruction.cs
│   │   ├── Instructions.cs
│   │   ├── Instructions.tt
│   │   ├── Patterns/
│   │   │   ├── AnyNode.cs
│   │   │   ├── ListMatch.cs
│   │   │   └── Match.cs
│   │   ├── PointerArithmeticOffset.cs
│   │   ├── PrimitiveType.cs
│   │   ├── SemanticHelper.cs
│   │   ├── SlotInfo.cs
│   │   ├── StackType.cs
│   │   └── Transforms/
│   │       ├── AssignVariableNames.cs
│   │       ├── BlockTransform.cs
│   │       ├── CachedDelegateInitialization.cs
│   │       ├── CombineExitsTransform.cs
│   │       ├── CopyPropagation.cs
│   │       ├── DeconstructionTransform.cs
│   │       ├── DelegateConstruction.cs
│   │       ├── DetectCatchWhenConditionBlocks.cs
│   │       ├── DynamicCallSiteTransform.cs
│   │       ├── DynamicIsEventAssignmentTransform.cs
│   │       ├── EarlyExpressionTransforms.cs
│   │       ├── ExpressionTransforms.cs
│   │       ├── FixRemainingIncrements.cs
│   │       ├── HighLevelLoopTransform.cs
│   │       ├── IILTransform.cs
│   │       ├── ILExtraction.cs
│   │       ├── ILInlining.cs
│   │       ├── IndexRangeTransform.cs
│   │       ├── InlineArrayTransform.cs
│   │       ├── InlineReturnTransform.cs
│   │       ├── InterpolatedStringTransform.cs
│   │       ├── IntroduceDynamicTypeOnLocals.cs
│   │       ├── IntroduceNativeIntTypeOnLocals.cs
│   │       ├── IntroduceRefReadOnlyModifierOnLocals.cs
│   │       ├── LdLocaDupInitObjTransform.cs
│   │       ├── LocalFunctionDecompiler.cs
│   │       ├── LockTransform.cs
│   │       ├── NamedArgumentTransform.cs
│   │       ├── NullCoalescingTransform.cs
│   │       ├── NullPropagationTransform.cs
│   │       ├── NullableLiftingTransform.cs
│   │       ├── PatternMatchingTransform.cs
│   │       ├── ProxyCallReplacer.cs
│   │       ├── ReduceNestingTransform.cs
│   │       ├── RemoveDeadVariableInit.cs
│   │       ├── RemoveInfeasiblePathTransform.cs
│   │       ├── RemoveUnconstrainedGenericReferenceTypeCheck.cs
│   │       ├── SplitVariables.cs
│   │       ├── StatementTransform.cs
│   │       ├── Stepper.cs
│   │       ├── SwitchOnNullableTransform.cs
│   │       ├── SwitchOnStringTransform.cs
│   │       ├── TransformArrayInitializers.cs
│   │       ├── TransformAssignment.cs
│   │       ├── TransformCollectionAndObjectInitializers.cs
│   │       ├── TransformDisplayClassUsage.cs
│   │       ├── TransformExpressionTrees.cs
│   │       ├── TupleTransform.cs
│   │       ├── UserDefinedLogicTransform.cs
│   │       └── UsingTransform.cs
│   ├── Instrumentation/
│   │   └── DecompilerEventSource.cs
│   ├── Metadata/
│   │   ├── AssemblyReferences.cs
│   │   ├── CodeMappingInfo.cs
│   │   ├── CustomAttributeDecoder.cs
│   │   ├── DotNetCorePathFinder.cs
│   │   ├── DotNetCorePathFinderExtensions.cs
│   │   ├── EnumUnderlyingTypeResolveException.cs
│   │   ├── ExportedTypeMetadata.cs
│   │   ├── FindTypeDecoder.cs
│   │   ├── FullTypeNameSignatureDecoder.cs
│   │   ├── ILOpCodes.cs
│   │   ├── ILOpCodes.tt
│   │   ├── LightJson/
│   │   │   ├── JsonArray.cs
│   │   │   ├── JsonObject.cs
│   │   │   ├── JsonValue.cs
│   │   │   ├── JsonValueType.cs
│   │   │   └── Serialization/
│   │   │       ├── JsonParseException.cs
│   │   │       ├── JsonReader.cs
│   │   │       ├── TextPosition.cs
│   │   │       └── TextScanner.cs
│   │   ├── MemberReferenceMetadata.cs
│   │   ├── MetadataExtensions.cs
│   │   ├── MetadataFile.cs
│   │   ├── MetadataGenericContext.cs
│   │   ├── MetadataTokenHelpers.cs
│   │   ├── MethodSemanticsLookup.cs
│   │   ├── ModuleReferenceMetadata.cs
│   │   ├── OperandType.cs
│   │   ├── PEFile.cs
│   │   ├── PropertyAndEventBackingFieldLookup.cs
│   │   ├── ReferenceLoadInfo.cs
│   │   ├── Resource.cs
│   │   ├── SignatureBlobComparer.cs
│   │   ├── TypeReferenceMetadata.cs
│   │   ├── UniversalAssemblyResolver.cs
│   │   ├── UnresolvedAssemblyNameReference.cs
│   │   └── WebCilFile.cs
│   ├── NRExtensions.cs
│   ├── NRTAttributes.cs
│   ├── Output/
│   │   ├── IAmbience.cs
│   │   ├── ITextOutput.cs
│   │   ├── PlainTextOutput.cs
│   │   ├── TextOutputWriter.cs
│   │   └── TextTokenWriter.cs
│   ├── PackageReadme.md
│   ├── PartialTypeInfo.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   └── DecompilerVersionInfo.template.cs
│   ├── SRMExtensions.cs
│   ├── SRMHacks.cs
│   ├── Semantics/
│   │   ├── AmbiguousResolveResult.cs
│   │   ├── ArrayAccessResolveResult.cs
│   │   ├── ArrayCreateResolveResult.cs
│   │   ├── ByReferenceResolveResult.cs
│   │   ├── ConstantResolveResult.cs
│   │   ├── Conversion.cs
│   │   ├── ConversionResolveResult.cs
│   │   ├── ErrorResolveResult.cs
│   │   ├── ForEachResolveResult.cs
│   │   ├── InitializedObjectResolveResult.cs
│   │   ├── InterpolatedStringResolveResult.cs
│   │   ├── InvocationResolveResult.cs
│   │   ├── LocalResolveResult.cs
│   │   ├── MemberResolveResult.cs
│   │   ├── NamedArgumentResolveResult.cs
│   │   ├── NamespaceResolveResult.cs
│   │   ├── OperatorResolveResult.cs
│   │   ├── OutVarResolveResult.cs
│   │   ├── ResolveResult.cs
│   │   ├── SizeOfResolveResult.cs
│   │   ├── ThisResolveResult.cs
│   │   ├── ThrowResolveResult.cs
│   │   ├── TupleResolveResult.cs
│   │   ├── TypeIsResolveResult.cs
│   │   ├── TypeOfResolveResult.cs
│   │   ├── TypeResolveResult.cs
│   │   └── UnknownMemberResolveResult.cs
│   ├── SingleFileBundle.cs
│   ├── Solution/
│   │   ├── ProjectId.cs
│   │   ├── ProjectItem.cs
│   │   └── SolutionCreator.cs
│   ├── TypeSystem/
│   │   ├── Accessibility.cs
│   │   ├── ApplyAttributeTypeVisitor.cs
│   │   ├── ArrayType.cs
│   │   ├── AssemblyQualifiedTypeName.cs
│   │   ├── ByReferenceType.cs
│   │   ├── ComHelper.cs
│   │   ├── DecompilerTypeSystem.cs
│   │   ├── ExtensionInfo.cs
│   │   ├── FullTypeName.cs
│   │   ├── FunctionPointerType.cs
│   │   ├── GenericContext.cs
│   │   ├── IAssembly.cs
│   │   ├── IAttribute.cs
│   │   ├── ICodeContext.cs
│   │   ├── ICompilation.cs
│   │   ├── IDecompilerTypeSystem.cs
│   │   ├── IEntity.cs
│   │   ├── IEvent.cs
│   │   ├── IField.cs
│   │   ├── IFreezable.cs
│   │   ├── IInterningProvider.cs
│   │   ├── IMember.cs
│   │   ├── IMethod.cs
│   │   ├── INamedElement.cs
│   │   ├── INamespace.cs
│   │   ├── IParameter.cs
│   │   ├── IParameterizedMember.cs
│   │   ├── IProperty.cs
│   │   ├── ISupportsInterning.cs
│   │   ├── ISymbol.cs
│   │   ├── IType.cs
│   │   ├── ITypeDefinition.cs
│   │   ├── ITypeDefinitionOrUnknown.cs
│   │   ├── ITypeParameter.cs
│   │   ├── ITypeReference.cs
│   │   ├── IVariable.cs
│   │   ├── Implementation/
│   │   │   ├── AbstractFreezable.cs
│   │   │   ├── AbstractType.cs
│   │   │   ├── AbstractTypeParameter.cs
│   │   │   ├── AttributeListBuilder.cs
│   │   │   ├── BaseTypeCollector.cs
│   │   │   ├── CustomAttribute.cs
│   │   │   ├── DecimalConstantHelper.cs
│   │   │   ├── DecoratedType.cs
│   │   │   ├── DefaultAssemblyReference.cs
│   │   │   ├── DefaultAttribute.cs
│   │   │   ├── DefaultParameter.cs
│   │   │   ├── DefaultTypeParameter.cs
│   │   │   ├── DefaultVariable.cs
│   │   │   ├── DummyTypeParameter.cs
│   │   │   ├── FakeMember.cs
│   │   │   ├── GetMembersHelper.cs
│   │   │   ├── KnownAttributes.cs
│   │   │   ├── KnownTypeCache.cs
│   │   │   ├── LocalFunctionMethod.cs
│   │   │   ├── MergedNamespace.cs
│   │   │   ├── MetadataEvent.cs
│   │   │   ├── MetadataField.cs
│   │   │   ├── MetadataMethod.cs
│   │   │   ├── MetadataNamespace.cs
│   │   │   ├── MetadataParameter.cs
│   │   │   ├── MetadataProperty.cs
│   │   │   ├── MetadataTypeDefinition.cs
│   │   │   ├── MetadataTypeParameter.cs
│   │   │   ├── MinimalCorlib.cs
│   │   │   ├── NestedTypeReference.cs
│   │   │   ├── NullabilityAnnotatedType.cs
│   │   │   ├── PinnedType.cs
│   │   │   ├── SimpleCompilation.cs
│   │   │   ├── SpecializedEvent.cs
│   │   │   ├── SpecializedField.cs
│   │   │   ├── SpecializedMember.cs
│   │   │   ├── SpecializedMethod.cs
│   │   │   ├── SpecializedParameter.cs
│   │   │   ├── SpecializedProperty.cs
│   │   │   ├── SyntheticRangeIndexer.cs
│   │   │   ├── ThreeState.cs
│   │   │   ├── TypeParameterReference.cs
│   │   │   ├── TypeWithElementType.cs
│   │   │   └── UnknownType.cs
│   │   ├── InheritanceHelper.cs
│   │   ├── IntersectionType.cs
│   │   ├── KnownTypeReference.cs
│   │   ├── MetadataModule.cs
│   │   ├── ModifiedType.cs
│   │   ├── NormalizeTypeVisitor.cs
│   │   ├── Nullability.cs
│   │   ├── NullableType.cs
│   │   ├── ParameterListComparer.cs
│   │   ├── ParameterizedType.cs
│   │   ├── PointerType.cs
│   │   ├── ReferenceResolvingException.cs
│   │   ├── ReflectionHelper.cs
│   │   ├── ReflectionNameParseException.cs
│   │   ├── SimpleTypeResolveContext.cs
│   │   ├── SpecialType.cs
│   │   ├── TaskType.cs
│   │   ├── TopLevelTypeName.cs
│   │   ├── TupleType.cs
│   │   ├── TypeKind.cs
│   │   ├── TypeParameterSubstitution.cs
│   │   ├── TypeProvider.cs
│   │   ├── TypeSystemExtensions.cs
│   │   ├── TypeUtils.cs
│   │   ├── TypeVisitor.cs
│   │   └── VarArgInstanceMethod.cs
│   ├── Util/
│   │   ├── BitOperations.cs
│   │   ├── BitSet.cs
│   │   ├── BusyManager.cs
│   │   ├── CSharpPrimitiveCast.cs
│   │   ├── CacheManager.cs
│   │   ├── CallbackOnDispose.cs
│   │   ├── CollectionExtensions.cs
│   │   ├── DelegateComparer.cs
│   │   ├── EmptyList.cs
│   │   ├── ExtensionMethods.cs
│   │   ├── FileUtility.cs
│   │   ├── GraphTraversal.cs
│   │   ├── Index.cs
│   │   ├── Interval.cs
│   │   ├── KeyComparer.cs
│   │   ├── LazyInit.cs
│   │   ├── LongDict.cs
│   │   ├── LongSet.cs
│   │   ├── MultiDictionary.cs
│   │   ├── Platform.cs
│   │   ├── ProjectedList.cs
│   │   ├── ReferenceComparer.cs
│   │   ├── ResXResourceWriter.cs
│   │   ├── ResourcesFile.cs
│   │   ├── TreeTraversal.cs
│   │   ├── UnicodeNewline.cs
│   │   ├── UnionFind.cs
│   │   └── Win32Resources.cs
│   └── packages.lock.json
├── ICSharpCode.Decompiler.PowerShell/
│   ├── Demo.ps1
│   ├── ErrorIds.cs
│   ├── GetDecompiledProjectCmdlet.cs
│   ├── GetDecompiledSourceCmdlet.cs
│   ├── GetDecompiledTypesCmdlet.cs
│   ├── GetDecompilerCmdlet.cs
│   ├── GetDecompilerVersion.cs
│   ├── GetTargetFramework.cs
│   ├── ICSharpCode.Decompiler.PowerShell.csproj
│   ├── NullAttributes.cs
│   ├── README.md
│   ├── TypesParser.cs
│   └── manifest.psd1
├── ICSharpCode.Decompiler.TestRunner/
│   ├── ICSharpCode.Decompiler.TestRunner.csproj
│   └── Program.cs
├── ICSharpCode.Decompiler.Tests/
│   ├── .editorconfig
│   ├── CorrectnessTestRunner.cs
│   ├── DataFlowTest.cs
│   ├── DisassemblerPrettyTestRunner.cs
│   ├── Helpers/
│   │   ├── CodeAssert.cs
│   │   ├── RemoveCompilerAttribute.cs
│   │   ├── RoslynToolset.cs
│   │   ├── SdkUtility.cs
│   │   ├── Tester.VB.cs
│   │   ├── Tester.cs
│   │   └── TestsAssemblyOutput.cs
│   ├── ICSharpCode.Decompiler.Tests.csproj
│   ├── ILPrettyTestRunner.cs
│   ├── Output/
│   │   ├── CSharpAmbienceTests.cs
│   │   ├── ILAmbienceTests.cs
│   │   └── InsertParenthesesVisitorTests.cs
│   ├── PdbGenerationTestRunner.cs
│   ├── PrettyTestRunner.cs
│   ├── ProjectDecompiler/
│   │   ├── TargetFrameworkTests.cs
│   │   └── WholeProjectDecompilerTests.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── RoundtripAssembly.cs
│   ├── Semantics/
│   │   ├── ConversionTests.cs
│   │   ├── ExplicitConversionTest.cs
│   │   └── OverloadResolutionTests.cs
│   ├── TestAssemblyResolver.cs
│   ├── TestCases/
│   │   ├── Correctness/
│   │   │   ├── Async.cs
│   │   │   ├── BitNot.il
│   │   │   ├── Capturing.cs
│   │   │   ├── ComInterop.cs
│   │   │   ├── Comparisons.cs
│   │   │   ├── CompoundAssignment.cs
│   │   │   ├── ConditionalAttr.cs
│   │   │   ├── ControlFlow.cs
│   │   │   ├── Conversions.cs
│   │   │   ├── DecimalFields.cs
│   │   │   ├── DeconstructionTests.cs
│   │   │   ├── DynamicTests.cs
│   │   │   ├── ExpressionTrees.cs
│   │   │   ├── FloatingPointArithmetic.cs
│   │   │   ├── Generics.cs
│   │   │   ├── HelloWorld.cs
│   │   │   ├── InitializerTests.cs
│   │   │   ├── Jmp.il
│   │   │   ├── LINQRaytracer.cs
│   │   │   ├── Loops.cs
│   │   │   ├── MemberLookup.cs
│   │   │   ├── MiniJSON.cs
│   │   │   ├── NonGenericConstrainedCallVirt.il
│   │   │   ├── NullPropagation.cs
│   │   │   ├── NullableTests.cs
│   │   │   ├── OverloadResolution.cs
│   │   │   ├── PropertiesAndEvents.cs
│   │   │   ├── Readme.txt
│   │   │   ├── StackTests.il
│   │   │   ├── StackTypes.il
│   │   │   ├── StringConcat.cs
│   │   │   ├── Switch.cs
│   │   │   ├── TrickyTypes.cs
│   │   │   ├── UndocumentedExpressions.cs
│   │   │   ├── Uninit.vb
│   │   │   ├── UnsafeCode.cs
│   │   │   ├── Using.cs
│   │   │   ├── ValueTypeCall.cs
│   │   │   └── YieldReturn.cs
│   │   ├── Disassembler/
│   │   │   └── Pretty/
│   │   │       ├── .gitignore
│   │   │       ├── GenericConstraints.il
│   │   │       ├── InterfaceImplAttributes.il
│   │   │       ├── SecurityDeclarations.il
│   │   │       ├── SortMembers.expected.il
│   │   │       └── SortMembers.il
│   │   ├── ILPretty/
│   │   │   ├── .gitignore
│   │   │   ├── CS1xSwitch_Debug.cs
│   │   │   ├── CS1xSwitch_Debug.il
│   │   │   ├── CS1xSwitch_Release.cs
│   │   │   ├── CS1xSwitch_Release.il
│   │   │   ├── CallIndirect.cs
│   │   │   ├── CallIndirect.il
│   │   │   ├── ConstantBlobs.cs
│   │   │   ├── ConstantBlobs.il
│   │   │   ├── DirectCallToExplicitInterfaceImpl.cs
│   │   │   ├── DirectCallToExplicitInterfaceImpl.il
│   │   │   ├── EmptyBodies.cs
│   │   │   ├── EmptyBodies.il
│   │   │   ├── EvalOrder.cs
│   │   │   ├── EvalOrder.il
│   │   │   ├── ExtensionEncodingV1.cs
│   │   │   ├── ExtensionEncodingV1.il
│   │   │   ├── ExtensionEncodingV2.cs
│   │   │   ├── ExtensionEncodingV2.il
│   │   │   ├── FSharpLoops.fs
│   │   │   ├── FSharpLoops_Debug.cs
│   │   │   ├── FSharpLoops_Debug.il
│   │   │   ├── FSharpLoops_Release.cs
│   │   │   ├── FSharpLoops_Release.il
│   │   │   ├── FSharpUsing.fs
│   │   │   ├── FSharpUsing_Debug.cs
│   │   │   ├── FSharpUsing_Debug.il
│   │   │   ├── FSharpUsing_Release.cs
│   │   │   ├── FSharpUsing_Release.il
│   │   │   ├── GuessAccessors.cs
│   │   │   ├── GuessAccessors.il
│   │   │   ├── Issue1038.cs
│   │   │   ├── Issue1038.il
│   │   │   ├── Issue1047.cs
│   │   │   ├── Issue1047.il
│   │   │   ├── Issue1145.cs
│   │   │   ├── Issue1145.il
│   │   │   ├── Issue1157.cs
│   │   │   ├── Issue1157.il
│   │   │   ├── Issue1256.cs
│   │   │   ├── Issue1256.il
│   │   │   ├── Issue1323.cs
│   │   │   ├── Issue1323.il
│   │   │   ├── Issue1325.cs
│   │   │   ├── Issue1325.il
│   │   │   ├── Issue1325.vb
│   │   │   ├── Issue1389.cs
│   │   │   ├── Issue1389.il
│   │   │   ├── Issue1454.cs
│   │   │   ├── Issue1454.il
│   │   │   ├── Issue1681.cs
│   │   │   ├── Issue1681.il
│   │   │   ├── Issue1918.cs
│   │   │   ├── Issue1918.il
│   │   │   ├── Issue1922.cs
│   │   │   ├── Issue1922.il
│   │   │   ├── Issue2104.cs
│   │   │   ├── Issue2104.il
│   │   │   ├── Issue2260SwitchString.cs
│   │   │   ├── Issue2260SwitchString.il
│   │   │   ├── Issue2443.cs
│   │   │   ├── Issue2443.il
│   │   │   ├── Issue3344CkFinite.cs
│   │   │   ├── Issue3344CkFinite.il
│   │   │   ├── Issue3421.cs
│   │   │   ├── Issue3421.il
│   │   │   ├── Issue3442.cs
│   │   │   ├── Issue3442.il
│   │   │   ├── Issue3465.cs
│   │   │   ├── Issue3465.il
│   │   │   ├── Issue3466.cs
│   │   │   ├── Issue3466.il
│   │   │   ├── Issue3504.cs
│   │   │   ├── Issue3504.il
│   │   │   ├── Issue3524.cs
│   │   │   ├── Issue3524.il
│   │   │   ├── Issue3552.cs
│   │   │   ├── Issue3552.il
│   │   │   ├── Issue379.cs
│   │   │   ├── Issue379.il
│   │   │   ├── Issue646.cs
│   │   │   ├── Issue646.il
│   │   │   ├── Issue684.cs
│   │   │   ├── Issue684.il
│   │   │   ├── Issue959.cs
│   │   │   ├── Issue959.il
│   │   │   ├── Issue982.cs
│   │   │   ├── Issue982.il
│   │   │   ├── MonoFixed.cs
│   │   │   ├── MonoFixed.il
│   │   │   ├── SequenceOfNestedIfs.cs
│   │   │   ├── SequenceOfNestedIfs.il
│   │   │   ├── UnknownTypes.cs
│   │   │   ├── UnknownTypes.il
│   │   │   ├── Unsafe.cs
│   │   │   ├── Unsafe.il
│   │   │   ├── WeirdEnums.cs
│   │   │   └── WeirdEnums.il
│   │   ├── PdbGen/
│   │   │   ├── .gitignore
│   │   │   ├── CustomPdbId.xml
│   │   │   ├── ForLoopTests.xml
│   │   │   ├── HelloWorld.xml
│   │   │   ├── LambdaCapturing.xml
│   │   │   ├── Members.xml
│   │   │   └── ProgressReporting.xml
│   │   ├── Pretty/
│   │   │   ├── .gitignore
│   │   │   ├── AnonymousTypes.cs
│   │   │   ├── AssemblyCustomAttributes.cs
│   │   │   ├── Async.cs
│   │   │   ├── AsyncForeach.cs
│   │   │   ├── AsyncMain.cs
│   │   │   ├── AsyncStreams.cs
│   │   │   ├── AsyncUsing.cs
│   │   │   ├── AutoProperties.cs
│   │   │   ├── CS72_PrivateProtected.cs
│   │   │   ├── CS73_StackAllocInitializers.cs
│   │   │   ├── CS9_ExtensionGetEnumerator.cs
│   │   │   ├── CheckedUnchecked.cs
│   │   │   ├── Comparisons.cs
│   │   │   ├── CompoundAssignmentTest.cs
│   │   │   ├── ConstantsTests.cs
│   │   │   ├── ConstructorInitializers.cs
│   │   │   ├── CovariantReturns.cs
│   │   │   ├── CustomAttributeConflicts.cs
│   │   │   ├── CustomAttributeSamples.cs
│   │   │   ├── CustomAttributes.cs
│   │   │   ├── CustomAttributes2.cs
│   │   │   ├── CustomShortCircuitOperators.cs
│   │   │   ├── CustomTaskType.cs
│   │   │   ├── DeconstructionTests.cs
│   │   │   ├── DelegateConstruction.cs
│   │   │   ├── Discards.cs
│   │   │   ├── DynamicTests.cs
│   │   │   ├── EnumTests.cs
│   │   │   ├── ExceptionHandling.cs
│   │   │   ├── ExpandParamsArgumentsDisabled.cs
│   │   │   ├── ExpressionTrees.cs
│   │   │   ├── ExtensionProperties.cs
│   │   │   ├── FileScopedNamespaces.cs
│   │   │   ├── FixProxyCalls.cs
│   │   │   ├── FunctionPointers.cs
│   │   │   ├── Generics.cs
│   │   │   ├── GloballyQualifiedTypeInStringInterpolation.cs
│   │   │   ├── HelloWorld.cs
│   │   │   ├── IndexRangeTest.cs
│   │   │   ├── InitializerTests.cs
│   │   │   ├── InlineArrayTests.cs
│   │   │   ├── InlineAssignmentTest.cs
│   │   │   ├── InterfaceTests.cs
│   │   │   ├── Issue1080.cs
│   │   │   ├── Issue3406.cs
│   │   │   ├── Issue3439.cs
│   │   │   ├── Issue3442.cs
│   │   │   ├── Issue3452.cs
│   │   │   ├── Issue3483.cs
│   │   │   ├── Issue3541.cs
│   │   │   ├── Issue3571_A.cs
│   │   │   ├── Issue3571_B.cs
│   │   │   ├── Issue3571_C.cs
│   │   │   ├── Issue3576.cs
│   │   │   ├── Issue3584.cs
│   │   │   ├── Issue3598.cs
│   │   │   ├── Issue3610.cs
│   │   │   ├── Issue3611.cs
│   │   │   ├── LiftedOperators.cs
│   │   │   ├── LocalFunctions.cs
│   │   │   ├── Lock.cs
│   │   │   ├── Loops.cs
│   │   │   ├── MemberTests.cs
│   │   │   ├── MetadataAttributes.cs
│   │   │   ├── MultidimensionalArray.cs
│   │   │   ├── NamedArguments.cs
│   │   │   ├── NativeInts.cs
│   │   │   ├── NullPropagation.cs
│   │   │   ├── NullableRefTypes.cs
│   │   │   ├── Operators.cs
│   │   │   ├── OptionalArguments.cs
│   │   │   ├── OptionalArgumentsDisabled.cs
│   │   │   ├── OutVariables.cs
│   │   │   ├── PInvoke.cs
│   │   │   ├── ParamsCollections.cs
│   │   │   ├── PatternMatching.cs
│   │   │   ├── PointerArithmetic.cs
│   │   │   ├── PropertiesAndEvents.cs
│   │   │   ├── QualifierTests.cs
│   │   │   ├── QueryExpressions.cs
│   │   │   ├── Readme.txt
│   │   │   ├── Records.cs
│   │   │   ├── ReduceNesting.cs
│   │   │   ├── RefFields.cs
│   │   │   ├── RefLocalsAndReturns.cs
│   │   │   ├── ShortCircuit.cs
│   │   │   ├── StaticAbstractInterfaceMembers.cs
│   │   │   ├── StringInterpolation.cs
│   │   │   ├── Structs.cs
│   │   │   ├── Switch.cs
│   │   │   ├── SwitchExpressions.cs
│   │   │   ├── ThrowExpressions.cs
│   │   │   ├── TupleTests.cs
│   │   │   ├── TypeAnalysisTests.cs
│   │   │   ├── TypeMemberTests.cs
│   │   │   ├── UnsafeCode.cs
│   │   │   ├── UserDefinedConversions.cs
│   │   │   ├── Using.cs
│   │   │   ├── UsingVariables.cs
│   │   │   ├── ValueTypes.cs
│   │   │   ├── VariableNaming.cs
│   │   │   ├── VariableNamingWithoutSymbols.cs
│   │   │   ├── WellKnownConstants.cs
│   │   │   └── YieldReturn.cs
│   │   ├── Ugly/
│   │   │   ├── .gitignore
│   │   │   ├── AggressiveScalarReplacementOfAggregates.Expected.cs
│   │   │   ├── AggressiveScalarReplacementOfAggregates.cs
│   │   │   ├── AggressiveScalarReplacementOfAggregates.net40.roslyn.il
│   │   │   ├── AggressiveScalarReplacementOfAggregates.opt.net40.roslyn.il
│   │   │   ├── AggressiveScalarReplacementOfAggregates.opt.roslyn.il
│   │   │   ├── AggressiveScalarReplacementOfAggregates.roslyn.il
│   │   │   ├── NoArrayInitializers.Expected.cs
│   │   │   ├── NoArrayInitializers.cs
│   │   │   ├── NoArrayInitializers.net40.roslyn.il
│   │   │   ├── NoArrayInitializers.opt.net40.roslyn.il
│   │   │   ├── NoArrayInitializers.opt.roslyn.il
│   │   │   ├── NoArrayInitializers.roslyn.il
│   │   │   ├── NoDecimalConstants.Expected.cs
│   │   │   ├── NoDecimalConstants.cs
│   │   │   ├── NoDecimalConstants.net40.roslyn.il
│   │   │   ├── NoDecimalConstants.opt.net40.roslyn.il
│   │   │   ├── NoDecimalConstants.opt.roslyn.il
│   │   │   ├── NoDecimalConstants.roslyn.il
│   │   │   ├── NoExtensionMethods.Expected.cs
│   │   │   ├── NoExtensionMethods.cs
│   │   │   ├── NoExtensionMethods.net40.roslyn.il
│   │   │   ├── NoExtensionMethods.opt.net40.roslyn.il
│   │   │   ├── NoExtensionMethods.opt.roslyn.il
│   │   │   ├── NoExtensionMethods.roslyn.il
│   │   │   ├── NoForEachStatement.Expected.cs
│   │   │   ├── NoForEachStatement.cs
│   │   │   ├── NoForEachStatement.il
│   │   │   ├── NoForEachStatement.net40.roslyn.il
│   │   │   ├── NoForEachStatement.opt.il
│   │   │   ├── NoForEachStatement.opt.net40.roslyn.il
│   │   │   ├── NoForEachStatement.opt.roslyn.il
│   │   │   ├── NoForEachStatement.roslyn.il
│   │   │   ├── NoLocalFunctions.Expected.cs
│   │   │   ├── NoLocalFunctions.cs
│   │   │   ├── NoLocalFunctions.net40.roslyn.il
│   │   │   ├── NoLocalFunctions.opt.net40.roslyn.il
│   │   │   ├── NoLocalFunctions.opt.roslyn.il
│   │   │   ├── NoLocalFunctions.roslyn.il
│   │   │   ├── NoNewOfT.Expected.cs
│   │   │   ├── NoNewOfT.cs
│   │   │   ├── NoNewOfT.il
│   │   │   ├── NoNewOfT.net40.roslyn.il
│   │   │   ├── NoNewOfT.opt.il
│   │   │   ├── NoNewOfT.opt.net40.roslyn.il
│   │   │   ├── NoNewOfT.opt.roslyn.il
│   │   │   ├── NoNewOfT.roslyn.il
│   │   │   ├── NoPropertiesAndEvents.Expected.cs
│   │   │   ├── NoPropertiesAndEvents.cs
│   │   │   ├── NoPropertiesAndEvents.il
│   │   │   ├── NoPropertiesAndEvents.net40.roslyn.il
│   │   │   ├── NoPropertiesAndEvents.opt.il
│   │   │   ├── NoPropertiesAndEvents.opt.net40.roslyn.il
│   │   │   ├── NoPropertiesAndEvents.opt.roslyn.il
│   │   │   └── NoPropertiesAndEvents.roslyn.il
│   │   └── VBPretty/
│   │       ├── .gitignore
│   │       ├── Async.cs
│   │       ├── Async.vb
│   │       ├── Issue1906.cs
│   │       ├── Issue1906.vb
│   │       ├── Issue2192.cs
│   │       ├── Issue2192.vb
│   │       ├── Select.cs
│   │       ├── Select.vb
│   │       ├── VBAutomaticEvents.cs
│   │       ├── VBAutomaticEvents.vb
│   │       ├── VBCompoundAssign.cs
│   │       ├── VBCompoundAssign.vb
│   │       ├── VBNonGenericForEach.cs
│   │       ├── VBNonGenericForEach.vb
│   │       ├── VBPropertiesTest.cs
│   │       ├── VBPropertiesTest.vb
│   │       ├── YieldReturn.cs
│   │       └── YieldReturn.vb
│   ├── TestTraceListener.cs
│   ├── TypeSystem/
│   │   ├── ReflectionHelperTests.cs
│   │   ├── TypeSystemLoaderTests.cs
│   │   └── TypeSystemTestCase.cs
│   ├── UglyTestRunner.cs
│   ├── Util/
│   │   ├── BitSetTests.cs
│   │   ├── FileUtilityTests.cs
│   │   ├── IntervalTests.cs
│   │   └── LongSetTests.cs
│   └── VBPrettyTestRunner.cs
├── ICSharpCode.ILSpyCmd/
│   ├── AsContainer/
│   │   ├── Dockerfile
│   │   ├── DockerfileForAutomation
│   │   └── README.md
│   ├── DotNetToolUpdateChecker.cs
│   ├── ICSharpCode.ILSpyCmd.csproj
│   ├── IlspyCmdProgram.cs
│   ├── ProgramExitCodes.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   └── launchSettings.json
│   ├── README.md
│   ├── TypesParser.cs
│   ├── ValidationAttributes.cs
│   └── packages.lock.json
├── ICSharpCode.ILSpyX/
│   ├── Abstractions/
│   │   ├── ILanguage.cs
│   │   └── ITreeNode.cs
│   ├── Analyzers/
│   │   ├── AnalyzerContext.cs
│   │   ├── AnalyzerHelpers.cs
│   │   ├── AnalyzerScope.cs
│   │   ├── Builtin/
│   │   │   ├── AttributeAppliedToAnalyzer.cs
│   │   │   ├── EventImplementedByAnalyzer.cs
│   │   │   ├── EventOverriddenByAnalyzer.cs
│   │   │   ├── FieldAccessAnalyzer.cs
│   │   │   ├── FindTypeInAttributeDecoder.cs
│   │   │   ├── MemberImplementsInterfaceAnalyzer.cs
│   │   │   ├── MethodImplementedByAnalyzer.cs
│   │   │   ├── MethodOverriddenByAnalyzer.cs
│   │   │   ├── MethodUsedByAnalyzer.cs
│   │   │   ├── MethodUsesAnalyzer.cs
│   │   │   ├── MethodVirtualUsedByAnalyzer.cs
│   │   │   ├── PropertyImplementedByAnalyzer.cs
│   │   │   ├── PropertyOverriddenByAnalyzer.cs
│   │   │   ├── TypeExposedByAnalyzer.cs
│   │   │   ├── TypeExtensionMethodsAnalyzer.cs
│   │   │   ├── TypeInstantiatedByAnalyzer.cs
│   │   │   └── TypeUsedByAnalyzer.cs
│   │   ├── ExportAnalyzerAttribute.cs
│   │   └── IAnalyzer.cs
│   ├── ApiVisibility.cs
│   ├── AssemblyList.cs
│   ├── AssemblyListManager.cs
│   ├── AssemblyListSnapshot.cs
│   ├── Extensions/
│   │   └── CollectionExtensions.cs
│   ├── FileLoaders/
│   │   ├── ArchiveFileLoader.cs
│   │   ├── BundleFileLoader.cs
│   │   ├── FileLoaderRegistry.cs
│   │   ├── LoadResult.cs
│   │   ├── MetadataFileLoader.cs
│   │   ├── PEFileLoader.cs
│   │   ├── WebCilFileLoader.cs
│   │   └── XamarinCompressedFileLoader.cs
│   ├── ICSharpCode.ILSpyX.csproj
│   ├── LanguageVersion.cs
│   ├── LoadedAssembly.cs
│   ├── LoadedAssemblyExtensions.cs
│   ├── LoadedPackage.cs
│   ├── MermaidDiagrammer/
│   │   ├── ClassDiagrammer.cs
│   │   ├── ClassDiagrammerFactory.cs
│   │   ├── EmbeddedResource.cs
│   │   ├── Extensions/
│   │   │   ├── StringExtensions.cs
│   │   │   └── TypeExtensions.cs
│   │   ├── Factory.BuildTypes.cs
│   │   ├── Factory.FlatMembers.cs
│   │   ├── Factory.Relationships.cs
│   │   ├── Factory.TypeIds.cs
│   │   ├── Factory.TypeNames.cs
│   │   ├── GenerateHtmlDiagrammer.cs
│   │   ├── Generator.Run.cs
│   │   ├── ReadMe.md
│   │   ├── XmlDocumentationFormatter.cs
│   │   └── html/
│   │       ├── .eslintrc.js
│   │       ├── .gitignore
│   │       ├── README.txt
│   │       ├── gulpfile.js
│   │       ├── package.json
│   │       ├── script.js
│   │       ├── styles.css
│   │       ├── styles.less
│   │       └── template.html
│   ├── PackageReadme.md
│   ├── PdbProvider/
│   │   ├── DebugInfoUtils.cs
│   │   ├── MonoCecilDebugInfoProvider.cs
│   │   └── PortableDebugInfoProvider.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Search/
│   │   ├── AbstractEntitySearchStrategy.cs
│   │   ├── AbstractSearchStrategy.cs
│   │   ├── AssemblySearchStrategy.cs
│   │   ├── CSharpLexer.cs
│   │   ├── LiteralSearchStrategy.cs
│   │   ├── MemberSearchStrategy.cs
│   │   ├── MetadataTokenSearchStrategy.cs
│   │   ├── NamespaceSearchStrategy.cs
│   │   ├── ResourceSearchStrategy.cs
│   │   └── SearchResult.cs
│   ├── Settings/
│   │   ├── DecompilerSettings.cs
│   │   ├── DefaultSettingsFilePathProvider.cs
│   │   ├── ILSpySettings.cs
│   │   ├── ISettingsFilePathProvider.cs
│   │   ├── ISettingsProvider.cs
│   │   └── SettingsServiceBase.cs
│   ├── TreeView/
│   │   ├── FlatListTreeNode.cs
│   │   ├── PlatformAbstractions/
│   │   │   ├── IPlatformDataObject.cs
│   │   │   ├── IPlatformDragDrop.cs
│   │   │   ├── IPlatformDragEventArgs.cs
│   │   │   ├── IPlatformRoutedEventArgs.cs
│   │   │   ├── ITreeNodeImagesProvider.cs
│   │   │   └── XPlatDragDropEffects.cs
│   │   ├── SharpTreeNode.cs
│   │   ├── SharpTreeNodeCollection.cs
│   │   ├── TreeFlattener.cs
│   │   └── TreeTraversal.cs
│   └── packages.lock.json
├── ILSpy/
│   ├── AboutPage.cs
│   ├── Analyzers/
│   │   ├── AnalyzeCommand.cs
│   │   ├── AnalyzerEntityTreeNode.cs
│   │   ├── AnalyzerRootNode.cs
│   │   ├── AnalyzerSearchTreeNode.cs
│   │   ├── AnalyzerTreeNode.cs
│   │   ├── AnalyzerTreeView.xaml
│   │   ├── AnalyzerTreeView.xaml.cs
│   │   ├── AnalyzerTreeViewModel.cs
│   │   ├── CopyAnalysisResultsContextMenuEntry.cs
│   │   ├── RemoveAnalyzeContextMenuEntry.cs
│   │   └── TreeNodes/
│   │       ├── AnalyzedAccessorTreeNode.cs
│   │       ├── AnalyzedEventTreeNode.cs
│   │       ├── AnalyzedFieldTreeNode.cs
│   │       ├── AnalyzedMethodTreeNode.cs
│   │       ├── AnalyzedModuleTreeNode.cs
│   │       ├── AnalyzedPropertyTreeNode.cs
│   │       └── AnalyzedTypeTreeNode.cs
│   ├── App.xaml
│   ├── App.xaml.cs
│   ├── AppEnv/
│   │   ├── AppEnvironment.cs
│   │   ├── CommandLineArguments.cs
│   │   ├── CommandLineTools.cs
│   │   └── SingleInstance.cs
│   ├── AssemblyTree/
│   │   ├── AssemblyListPane.xaml
│   │   ├── AssemblyListPane.xaml.cs
│   │   └── AssemblyTreeModel.cs
│   ├── AvalonEdit/
│   │   ├── ITextMarker.cs
│   │   └── TextMarkerService.cs
│   ├── Commands/
│   │   ├── BrowseBackCommand.cs
│   │   ├── BrowseForwardCommand.cs
│   │   ├── CheckForUpdatesCommand.cs
│   │   ├── CommandWrapper.cs
│   │   ├── CompareContextMenuEntry.cs
│   │   ├── CopyFullyQualifiedNameContextMenuEntry.cs
│   │   ├── CreateDiagramContextMenuEntry.cs
│   │   ├── DecompileAllCommand.cs
│   │   ├── DecompileCommand.cs
│   │   ├── DecompileInNewViewCommand.cs
│   │   ├── DelegateCommand.cs
│   │   ├── DisassembleAllCommand.cs
│   │   ├── ExitCommand.cs
│   │   ├── ExportCommandAttribute.cs
│   │   ├── ExtractPackageEntryContextMenuEntry.cs
│   │   ├── GeneratePdbContextMenuEntry.cs
│   │   ├── IProtocolHandler.cs
│   │   ├── ManageAssemblyListsCommand.cs
│   │   ├── OpenCommand.cs
│   │   ├── OpenFromGacCommand.cs
│   │   ├── Pdb2XmlCommand.cs
│   │   ├── RefreshCommand.cs
│   │   ├── RemoveAssembliesWithLoadErrors.cs
│   │   ├── SaveCodeContextMenuEntry.cs
│   │   ├── SaveCommand.cs
│   │   ├── ScopeSearchToAssembly.cs
│   │   ├── ScopeSearchToNamespace.cs
│   │   ├── SearchMsdnContextMenuEntry.cs
│   │   ├── SelectPdbContextMenuEntry.cs
│   │   ├── SetThemeCommand.cs
│   │   ├── ShowCFGContextMenuEntry.cs
│   │   ├── ShowPane.cs
│   │   ├── SimpleCommand.cs
│   │   └── SortAssemblyListCommand.cs
│   ├── ContextMenuEntry.cs
│   ├── Controls/
│   │   ├── CollapsiblePanel.cs
│   │   ├── CultureSelectionConverter.cs
│   │   ├── CustomDialog.cs
│   │   ├── ExtensionMethods.cs
│   │   ├── GridViewColumnAutoSize.cs
│   │   ├── MainMenu.xaml
│   │   ├── MainMenu.xaml.cs
│   │   ├── MainToolBar.xaml
│   │   ├── MainToolBar.xaml.cs
│   │   ├── MarkupExtensions.cs
│   │   ├── ResourceObjectTable.xaml
│   │   ├── ResourceObjectTable.xaml.cs
│   │   ├── ResourceStringTable.xaml
│   │   ├── ResourceStringTable.xaml.cs
│   │   ├── SearchBox.cs
│   │   ├── SearchBoxStyle.xaml
│   │   ├── SortableGridViewColumn.cs
│   │   ├── TreeView/
│   │   │   ├── EditTextBox.cs
│   │   │   ├── ExtensionMethods.cs
│   │   │   ├── GeneralAdorner.cs
│   │   │   ├── InsertMarker.cs
│   │   │   ├── LinesRenderer.cs
│   │   │   ├── SharpGridView.cs
│   │   │   ├── SharpTreeNodeView.cs
│   │   │   ├── SharpTreeView.cs
│   │   │   ├── SharpTreeView.xaml
│   │   │   ├── SharpTreeViewAutomationPeer.cs
│   │   │   ├── SharpTreeViewItem.cs
│   │   │   ├── SharpTreeViewItemAutomationPeer.cs
│   │   │   ├── SharpTreeViewTextSearch.cs
│   │   │   ├── WpfWindowsDataObject.cs
│   │   │   ├── WpfWindowsDragDropManager.cs
│   │   │   ├── WpfWindowsDragEventArgs.cs
│   │   │   └── WpfWindowsRoutedEventArgs.cs
│   │   ├── XamlResourceExtension.cs
│   │   ├── ZoomButtons.cs
│   │   ├── ZoomScrollViewer.cs
│   │   └── ZoomScrollViewer.xaml
│   ├── DecompilationOptions.cs
│   ├── Docking/
│   │   ├── CloseAllDocumentsCommand.cs
│   │   ├── DockLayoutSettings.cs
│   │   ├── DockWorkspace.cs
│   │   ├── PaneStyleSelector.cs
│   │   └── TabPageGuardConverter.cs
│   ├── EntityReference.cs
│   ├── ExtensionMethods.cs
│   ├── GlobalUsings.cs
│   ├── GuessFileType.cs
│   ├── ILSpy.csproj
│   ├── ILSpySettingsFilePathProvider.cs
│   ├── ILSpyTraceListener.cs
│   ├── ISmartTextOutput.cs
│   ├── Images/
│   │   ├── AccessOverlayIcon.cs
│   │   ├── Assembly.xaml
│   │   ├── AssemblyList.xaml
│   │   ├── AssemblyListGAC.xaml
│   │   ├── AssemblyLoading.xaml
│   │   ├── AssemblyWarning.xaml
│   │   ├── Back.xaml
│   │   ├── Class.xaml
│   │   ├── Close.xaml
│   │   ├── CollapseAll.xaml
│   │   ├── Constructor.xaml
│   │   ├── Copy.xaml
│   │   ├── Delegate.xaml
│   │   ├── Delete.xaml
│   │   ├── DictionaryContain.xaml
│   │   ├── Enum.xaml
│   │   ├── EnumValue.xaml
│   │   ├── Event.xaml
│   │   ├── ExpandAll.xaml
│   │   ├── ExportOverlay.xaml
│   │   ├── ExtensionMethod.xaml
│   │   ├── Field.xaml
│   │   ├── FieldReadOnly.xaml
│   │   ├── FindAssembly.xaml
│   │   ├── Folder.Closed.xaml
│   │   ├── Folder.Open.xaml
│   │   ├── Forward.xaml
│   │   ├── Header.xaml
│   │   ├── Heap.xaml
│   │   ├── ILSpy.pdn
│   │   ├── Images.cs
│   │   ├── Indexer.xaml
│   │   ├── Interface.xaml
│   │   ├── Library.xaml
│   │   ├── ListFolder.Open.xaml
│   │   ├── ListFolder.xaml
│   │   ├── Literal.xaml
│   │   ├── MemberIcon.cs
│   │   ├── Metadata.xaml
│   │   ├── MetadataFile.xaml
│   │   ├── MetadataTable.xaml
│   │   ├── MetadataTableGroup.xaml
│   │   ├── Method.xaml
│   │   ├── Namespace.xaml
│   │   ├── OK.xaml
│   │   ├── Open.xaml
│   │   ├── Operator.xaml
│   │   ├── OverlayCompilerControlled.xaml
│   │   ├── OverlayInternal.xaml
│   │   ├── OverlayPrivate.xaml
│   │   ├── OverlayPrivateProtected.xaml
│   │   ├── OverlayProtected.xaml
│   │   ├── OverlayProtectedInternal.xaml
│   │   ├── OverlayStatic.xaml
│   │   ├── PInvokeMethod.xaml
│   │   ├── ProgramDebugDatabase.xaml
│   │   ├── Property.xaml
│   │   ├── README.md
│   │   ├── ReferenceFolder.xaml
│   │   ├── ReferenceOverlay.xaml
│   │   ├── Refresh.xaml
│   │   ├── Resource.xaml
│   │   ├── ResourceImage.xaml
│   │   ├── ResourceResourcesFile.xaml
│   │   ├── ResourceXml.xaml
│   │   ├── ResourceXsd.xaml
│   │   ├── ResourceXsl.xaml
│   │   ├── ResourceXslt.xaml
│   │   ├── ResultToJSON.xaml
│   │   ├── Save.xaml
│   │   ├── Search.xaml
│   │   ├── SearchMsdn.xaml
│   │   ├── ShowAll.xaml
│   │   ├── ShowPrivateInternal.xaml
│   │   ├── ShowPublicOnly.xaml
│   │   ├── Sort.xaml
│   │   ├── Struct.xaml
│   │   ├── SubTypes.xaml
│   │   ├── SuperTypes.xaml
│   │   ├── SwitchSourceOrTarget.xaml
│   │   ├── TypeIcon.cs
│   │   ├── ViewCode.xaml
│   │   ├── VirtualMethod.xaml
│   │   ├── Warning.xaml
│   │   ├── WebAssembly.xaml
│   │   ├── WpfWindowsTreeNodeImagesProvider.cs
│   │   ├── ZoomIn.xaml
│   │   └── ZoomOut.xaml
│   ├── LanguageSettings.cs
│   ├── Languages/
│   │   ├── CSharpBracketSearcher.cs
│   │   ├── CSharpHighlightingTokenWriter.cs
│   │   ├── CSharpILMixedLanguage.cs
│   │   ├── CSharpLanguage.cs
│   │   ├── ILAstLanguage.cs
│   │   ├── ILLanguage.cs
│   │   ├── IResourceFileHandler.cs
│   │   ├── Language.cs
│   │   └── LanguageService.cs
│   ├── MainWindow.xaml
│   ├── MainWindow.xaml.cs
│   ├── MainWindowViewModel.cs
│   ├── Metadata/
│   │   ├── CoffHeaderTreeNode.cs
│   │   ├── CorTables/
│   │   │   ├── AssemblyRefTableTreeNode.cs
│   │   │   ├── AssemblyTableTreeNode.cs
│   │   │   ├── ClassLayoutTableTreeNode.cs
│   │   │   ├── ConstantTableTreeNode.cs
│   │   │   ├── CustomAttributeTableTreeNode.cs
│   │   │   ├── DeclSecurityTableTreeNode.cs
│   │   │   ├── EventMapTableTreeNode.cs
│   │   │   ├── EventTableTreeNode.cs
│   │   │   ├── ExportedTypeTableTreeNode.cs
│   │   │   ├── FieldLayoutTableTreeNode.cs
│   │   │   ├── FieldMarshalTableTreeNode.cs
│   │   │   ├── FieldRVATableTreeNode.cs
│   │   │   ├── FieldTableTreeNode.cs
│   │   │   ├── FileTableTreeNode.cs
│   │   │   ├── GenericParamConstraintTableTreeNode.cs
│   │   │   ├── GenericParamTableTreeNode.cs
│   │   │   ├── ImplMapTableTreeNode.cs
│   │   │   ├── InterfaceImplTableTreeNode.cs
│   │   │   ├── ManifestResourceTableTreeNode.cs
│   │   │   ├── MemberRefTableTreeNode.cs
│   │   │   ├── MethodImplTableTreeNode.cs
│   │   │   ├── MethodSemanticsTableTreeNode.cs
│   │   │   ├── MethodSpecTableTreeNode.cs
│   │   │   ├── MethodTableTreeNode.cs
│   │   │   ├── ModuleRefTableTreeNode.cs
│   │   │   ├── ModuleTableTreeNode.cs
│   │   │   ├── NestedClassTableTreeNode.cs
│   │   │   ├── ParamTableTreeNode.cs
│   │   │   ├── PropertyMapTableTreeNode.cs
│   │   │   ├── PropertyTableTreeNode.cs
│   │   │   ├── PtrTableTreeNode.cs
│   │   │   ├── StandAloneSigTableTreeNode.cs
│   │   │   ├── TypeDefTableTreeNode.cs
│   │   │   ├── TypeRefTableTreeNode.cs
│   │   │   └── TypeSpecTableTreeNode.cs
│   │   ├── DataDirectoriesTreeNode.cs
│   │   ├── DebugDirectory/
│   │   │   ├── CodeViewTreeNode.cs
│   │   │   ├── DebugDirectoryEntryTreeNode.cs
│   │   │   └── PdbChecksumTreeNode.cs
│   │   ├── DebugDirectoryTreeNode.cs
│   │   ├── DebugMetadataTablesTreeNode.cs
│   │   ├── DebugTables/
│   │   │   ├── CustomDebugInformationTableTreeNode.cs
│   │   │   ├── DocumentTableTreeNode.cs
│   │   │   ├── ImportScopeTableTreeNode.cs
│   │   │   ├── LocalConstantTableTreeNode.cs
│   │   │   ├── LocalScopeTableTreeNode.cs
│   │   │   ├── LocalVariableTableTreeNode.cs
│   │   │   ├── MethodDebugInformationTableTreeNode.cs
│   │   │   └── StateMachineMethodTableTreeNode.cs
│   │   ├── DosHeaderTreeNode.cs
│   │   ├── FlagsFilterControl.xaml
│   │   ├── FlagsFilterControl.xaml.cs
│   │   ├── FlagsTooltip.xaml
│   │   ├── FlagsTooltip.xaml.cs
│   │   ├── GoToTokenCommand.cs
│   │   ├── Heaps/
│   │   │   ├── BlobHeapTreeNode.cs
│   │   │   ├── GuidHeapTreeNode.cs
│   │   │   ├── StringHeapTreeNode.cs
│   │   │   └── UserStringHeapTreeNode.cs
│   │   ├── Helpers.cs
│   │   ├── HexFilterControl.xaml
│   │   ├── HexFilterControl.xaml.cs
│   │   ├── MetaDataGrid.cs
│   │   ├── MetadataHeapTreeNode.cs
│   │   ├── MetadataProtocolHandler.cs
│   │   ├── MetadataTableTreeNode.cs
│   │   ├── MetadataTableViews.xaml
│   │   ├── MetadataTableViews.xaml.cs
│   │   ├── MetadataTablesTreeNode.cs
│   │   ├── MetadataTreeNode.cs
│   │   └── OptionalHeaderTreeNode.cs
│   ├── NativeMethods.cs
│   ├── NavigationHistory.cs
│   ├── NavigationState.cs
│   ├── Options/
│   │   ├── DecompilerSettingsPanel.xaml
│   │   ├── DecompilerSettingsPanel.xaml.cs
│   │   ├── DecompilerSettingsViewModel.cs
│   │   ├── DisplaySettings.cs
│   │   ├── DisplaySettingsPanel.xaml
│   │   ├── DisplaySettingsPanel.xaml.cs
│   │   ├── DisplaySettingsViewModel.cs
│   │   ├── MiscSettings.cs
│   │   ├── MiscSettingsPanel.xaml
│   │   ├── MiscSettingsPanel.xaml.cs
│   │   ├── MiscSettingsViewModel.cs
│   │   ├── OptionsDialog.xaml
│   │   ├── OptionsDialog.xaml.cs
│   │   └── OptionsDialogViewModel.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   ├── Resources.resx
│   │   ├── WPFAssemblyInfo.cs
│   │   └── launchSettings.json
│   ├── Search/
│   │   ├── SearchPane.xaml
│   │   ├── SearchPane.xaml.cs
│   │   ├── SearchPaneModel.cs
│   │   └── SearchResultFactory.cs
│   ├── SessionSettings.cs
│   ├── SolutionWriter.cs
│   ├── TaskHelper.cs
│   ├── TextView/
│   │   ├── Asm-Mode.xshd
│   │   ├── AvalonEditTextOutput.cs
│   │   ├── BracketHighlightRenderer.cs
│   │   ├── CSharp-Mode.xshd
│   │   ├── CaretHighlightAdorner.cs
│   │   ├── DecompilerTextEditor.cs
│   │   ├── DecompilerTextView.cs
│   │   ├── DecompilerTextView.xaml
│   │   ├── DocumentationUIBuilder.cs
│   │   ├── EditorCommands.cs
│   │   ├── FoldingCommands.cs
│   │   ├── ILAsm-Mode.xshd
│   │   ├── OutputLengthExceededException.cs
│   │   ├── ReferenceElementGenerator.cs
│   │   ├── ThemeAwareHighlightingColorizer.cs
│   │   ├── UIElementGenerator.cs
│   │   ├── XML-Mode.xshd
│   │   └── ZoomLevelToTextFormattingModeConverter.cs
│   ├── Themes/
│   │   ├── Base.Dark.xaml
│   │   ├── Base.Light.xaml
│   │   ├── ResourceKeys.cs
│   │   ├── SyntaxColor.cs
│   │   ├── Theme.Dark.xaml
│   │   ├── Theme.Light.xaml
│   │   ├── Theme.RSharpDark.xaml
│   │   ├── Theme.RSharpLight.xaml
│   │   ├── Theme.VSCodeDarkPlus.xaml
│   │   ├── Theme.VSCodeLightPlus.xaml
│   │   ├── ThemeManager.cs
│   │   ├── WindowStyleManagerBehavior.cs
│   │   └── generic.xaml
│   ├── TreeNodes/
│   │   ├── AssemblyListTreeNode.cs
│   │   ├── AssemblyReferenceReferencedTypesTreeNode.cs
│   │   ├── AssemblyReferenceTreeNode.cs
│   │   ├── AssemblyTreeNode.cs
│   │   ├── BaseTypesEntryNode.cs
│   │   ├── BaseTypesTreeNode.cs
│   │   ├── DerivedTypesEntryNode.cs
│   │   ├── DerivedTypesTreeNode.cs
│   │   ├── EventTreeNode.cs
│   │   ├── ExportedTypeTreeNode.cs
│   │   ├── FieldTreeNode.cs
│   │   ├── FilterResult.cs
│   │   ├── ILSpyTreeNode.cs
│   │   ├── IMemberTreeNode.cs
│   │   ├── MemberReferenceTreeNode.cs
│   │   ├── MethodTreeNode.cs
│   │   ├── ModuleReferenceTreeNode.cs
│   │   ├── NamespaceTreeNode.cs
│   │   ├── NaturalStringComparer.cs
│   │   ├── PackageFolderTreeNode.cs
│   │   ├── PropertyTreeNode.cs
│   │   ├── ReferenceFolderTreeNode.cs
│   │   ├── ResourceListTreeNode.cs
│   │   ├── ResourceNodes/
│   │   │   ├── CursorResourceEntryNode.cs
│   │   │   ├── IResourceNodeFactory.cs
│   │   │   ├── IconResourceEntryNode.cs
│   │   │   ├── ImageListResourceEntryNode.cs
│   │   │   ├── ImageResourceEntryNode.cs
│   │   │   ├── ResourceEntryNode.cs
│   │   │   ├── ResourceTreeNode.cs
│   │   │   ├── ResourcesFileTreeNode.cs
│   │   │   ├── XamlResourceNode.cs
│   │   │   └── XmlResourceNode.cs
│   │   ├── ThreadingSupport.cs
│   │   ├── TypeReferenceTreeNode.cs
│   │   └── TypeTreeNode.cs
│   ├── Updates/
│   │   ├── AppUpdateService.cs
│   │   ├── AvailableVersionInfo.cs
│   │   ├── UpdateService.cs
│   │   └── UpdateSettings.cs
│   ├── Util/
│   │   ├── GlobalUtils.cs
│   │   ├── GraphVizGraph.cs
│   │   ├── MessageBus.cs
│   │   ├── ResourceHelper.cs
│   │   ├── SettingsService.cs
│   │   └── ShellHelper.cs
│   ├── ViewModels/
│   │   ├── CompareViewModel.cs
│   │   ├── DebugStepsPaneModel.cs
│   │   ├── LegacyToolPaneModel.cs
│   │   ├── ManageAssemblyListsViewModel.cs
│   │   ├── PaneModel.cs
│   │   ├── TabPageModel.cs
│   │   ├── ToolPaneModel.cs
│   │   └── UpdatePanelViewModel.cs
│   ├── Views/
│   │   ├── CompareView.xaml
│   │   ├── CompareView.xaml.cs
│   │   ├── CreateListDialog.xaml
│   │   ├── CreateListDialog.xaml.cs
│   │   ├── DebugSteps.xaml
│   │   ├── DebugSteps.xaml.cs
│   │   ├── ManageAssemblyLIstsDialog.xaml.cs
│   │   ├── ManageAssemblyListsDialog.xaml
│   │   ├── OpenFromGacDialog.xaml
│   │   ├── OpenFromGacDialog.xaml.cs
│   │   ├── UpdatePanel.xaml
│   │   └── UpdatePanel.xaml.cs
│   └── app.manifest
├── ILSpy.AddIn/
│   ├── Decompiler/
│   │   └── Dummy.cs
│   ├── ILSpy.AddIn.csproj
│   ├── ILSpyAddIn.en-US.vsct
│   ├── ILSpyAddIn.vsct
│   ├── Key.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   └── launchSettings.json
│   ├── README.md
│   └── source.extension.vsixmanifest.template
├── ILSpy.AddIn.Shared/
│   ├── AssemblyFileFinder.cs
│   ├── Commands/
│   │   ├── AssemblyReferenceForILSpy.cs
│   │   ├── NuGetReferenceForILSpy.cs
│   │   ├── OpenCodeItemCommand.cs
│   │   ├── OpenILSpyCommand.cs
│   │   ├── OpenProjectOutputCommand.cs
│   │   ├── OpenReferenceCommand.cs
│   │   ├── ProjectItemForILSpy.cs
│   │   └── ProjectReferenceForILSpy.cs
│   ├── GlobalSuppressions.cs
│   ├── Guids.cs
│   ├── ILSpy.AddIn.Shared.projitems
│   ├── ILSpy.AddIn.Shared.shproj
│   ├── ILSpyAddInPackage.cs
│   ├── ILSpyInstance.cs
│   ├── PkgCmdID.cs
│   ├── Resources.Designer.cs
│   ├── Resources.resx
│   ├── SyntaxNodeExtensions.cs
│   ├── Utils.cs
│   ├── VSPackage.en-US.resx
│   └── VSPackage.resx
├── ILSpy.AddIn.VS2022/
│   ├── Decompiler/
│   │   └── Dummy.cs
│   ├── ILSpy.AddIn.VS2022.csproj
│   ├── ILSpyAddIn.en-US.vsct
│   ├── ILSpyAddIn.vsct
│   ├── Key.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   └── launchSettings.json
│   ├── README.md
│   └── source.extension.vsixmanifest.template
├── ILSpy.BamlDecompiler/
│   ├── BamlResourceEntryNode.cs
│   ├── BamlResourceNodeFactory.cs
│   ├── ILSpy.BamlDecompiler.csproj
│   └── Properties/
│       ├── AssemblyInfo.cs
│       └── launchSettings.json
├── ILSpy.BamlDecompiler.Tests/
│   ├── BamlTestRunner.cs
│   ├── Cases/
│   │   ├── AttachedEvent.xaml
│   │   ├── AttachedEvent.xaml.cs
│   │   ├── AvalonDockBrushes.xaml
│   │   ├── AvalonDockCommon.xaml
│   │   ├── CustomControl.cs
│   │   ├── Dictionary1.xaml
│   │   ├── EscapeSequence.xaml
│   │   ├── Issue1435.xaml
│   │   ├── Issue1546.xaml
│   │   ├── Issue1547.xaml
│   │   ├── Issue1547.xaml.cs
│   │   ├── Issue2052.xaml
│   │   ├── Issue2097.xaml
│   │   ├── Issue2097.xaml.cs
│   │   ├── Issue2116.xaml
│   │   ├── Issue2116.xaml.cs
│   │   ├── Issue3318.xaml
│   │   ├── Issue3318.xaml.cs
│   │   ├── Issue445.xaml
│   │   ├── Issue775.xaml
│   │   ├── MarkupExtension.xaml
│   │   ├── MyControl.xaml
│   │   ├── MyControl.xaml.cs
│   │   ├── NamespacePrefix.xaml
│   │   ├── ReadonlyProperty.xaml
│   │   ├── ReadonlyProperty.xaml.cs
│   │   ├── Resources.xaml
│   │   ├── Resources.xaml.cs
│   │   ├── Simple.xaml
│   │   ├── Simple.xaml.cs
│   │   ├── SimpleDictionary.xaml
│   │   ├── SimpleNames.xaml
│   │   ├── SimpleNames.xaml.cs
│   │   └── SimplePropertyElement.xaml
│   ├── ILSpy.BamlDecompiler.Tests.csproj
│   └── Mocks/
│       └── AvalonDock.cs
├── ILSpy.Installer/
│   ├── AppPackage.cs
│   ├── ILSpy.Installer.csproj
│   ├── README.md
│   ├── setup.cs
│   └── winui.wxl
├── ILSpy.Installer.sln
├── ILSpy.ReadyToRun/
│   ├── ILSpy.ReadyToRun.csproj
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   ├── Resources.resx
│   │   └── launchSettings.json
│   ├── ReadyToRunDisassembler.cs
│   ├── ReadyToRunLanguage.cs
│   ├── ReadyToRunOptionPage.xaml
│   ├── ReadyToRunOptionPage.xaml.cs
│   └── ReadyToRunOptions.cs
├── ILSpy.Tests/
│   ├── Analyzers/
│   │   ├── AnalyzerScopeTests.cs
│   │   ├── ExportAnalyzerAttributeTests.cs
│   │   ├── MemberImplementsInterfaceAnalyzerTests.cs
│   │   ├── MethodUsesAnalyzerTests.cs
│   │   ├── TestCases/
│   │   │   └── MainAssembly.cs
│   │   └── TypeUsedByAnalyzerTests.cs
│   ├── BitmapContainer.resources
│   ├── CommandLineArgumentsTests.cs
│   ├── ILSpy.Tests.csproj
│   ├── IconContainer.resx
│   ├── ResourceReaderWriterTests.cs
│   └── Test.resources
├── ILSpy.VSExtensions.sln
├── ILSpy.Wpf.slnf
├── ILSpy.XPlat.slnf
├── ILSpy.sln
├── LICENSE
├── NuGet.config
├── README.md
├── SECURITY.md
├── TestPlugin/
│   ├── AboutPageAddition.cs
│   ├── ContextMenuCommand.cs
│   ├── CustomLanguage.cs
│   ├── CustomOptionPage.xaml
│   ├── CustomOptionPage.xaml.cs
│   ├── MainMenuCommand.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   └── launchSettings.json
│   ├── Readme.txt
│   └── TestPlugin.csproj
├── clean.bat
├── debugbuild.bat
├── decompiler-nuget-demos.ipynb
├── doc/
│   ├── Command Line.txt
│   ├── ILAst Pattern Matching.md
│   ├── ILAst.txt
│   ├── ILSpyAboutPage.txt
│   ├── IntPtr.txt
│   ├── Pattern Matching.html
│   ├── README.md
│   ├── Resources.txt
│   ├── copyright.txt
│   └── third-party-notices.txt
├── global.json
├── publish.ps1
├── publishlocaldev.ps1
├── releasebuild.bat
└── updatedeps.bat
Download .txt
Showing preview only (1,980K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (17593 symbols across 1323 files)

FILE: ICSharpCode.BamlDecompiler/Baml/BamlContext.cs
  class BamlContext (line 35) | internal class BamlContext
    method BamlContext (line 47) | BamlContext(IDecompilerTypeSystem typeSystem)
    method ConstructContext (line 58) | public static BamlContext ConstructContext(IDecompilerTypeSystem typeS...
    method ResolveAssembly (line 91) | public (string FullAssemblyName, IModule Assembly) ResolveAssembly(ush...
    method FindMatchingReference (line 117) | private IModule FindMatchingReference(AssemblyNameReference name)

FILE: ICSharpCode.BamlDecompiler/Baml/BamlDocument.cs
  class BamlDocument (line 27) | internal class BamlDocument : List<BamlRecord>
    type BamlVersion (line 36) | public struct BamlVersion

FILE: ICSharpCode.BamlDecompiler/Baml/BamlNode.cs
  class BamlNode (line 30) | internal abstract class BamlNode
    method IsHeader (line 38) | public static bool IsHeader(BamlRecord rec)
    method IsFooter (line 57) | public static bool IsFooter(BamlRecord rec)
    method IsMatch (line 75) | public static bool IsMatch(BamlRecord header, BamlRecord footer)
    method Parse (line 110) | public static BamlNode Parse(BamlDocument document, CancellationToken ...
  class BamlRecordNode (line 159) | internal class BamlRecordNode : BamlNode
    method BamlRecordNode (line 166) | public BamlRecordNode(BamlRecord record) => this.record = record;
  class BamlBlockNode (line 169) | internal class BamlBlockNode : BamlNode
    method BamlBlockNode (line 178) | public BamlBlockNode() => Children = new List<BamlNode>();

FILE: ICSharpCode.BamlDecompiler/Baml/BamlReader.cs
  class BamlBinaryReader (line 31) | internal class BamlBinaryReader : BinaryReader
    method BamlBinaryReader (line 33) | public BamlBinaryReader(Stream stream)
    method ReadEncodedInt (line 38) | public int ReadEncodedInt() => Read7BitEncodedInt();
  class BamlReader (line 41) | internal class BamlReader
    method IsBamlHeader (line 45) | internal static bool IsBamlHeader(Stream str)
    method ReadSignature (line 63) | static string ReadSignature(Stream str)
    method ReadDocument (line 72) | public static BamlDocument ReadDocument(Stream str, CancellationToken ...

FILE: ICSharpCode.BamlDecompiler/Baml/BamlRecords.cs
  type BamlRecordType (line 29) | internal enum BamlRecordType : byte
  class BamlRecord (line 90) | internal abstract class BamlRecord
    method Read (line 94) | public abstract void Read(BamlBinaryReader reader);
    method Write (line 95) | public abstract void Write(BamlBinaryWriter writer);
  class SizedBamlRecord (line 98) | internal abstract class SizedBamlRecord : BamlRecord
    method Read (line 100) | public override void Read(BamlBinaryReader reader)
    method SizeofEncodedInt (line 108) | int SizeofEncodedInt(int val)
    method Write (line 129) | public override void Write(BamlBinaryWriter writer)
    method ReadData (line 140) | protected abstract void ReadData(BamlBinaryReader reader, int size);
    method WriteData (line 141) | protected abstract void WriteData(BamlBinaryWriter writer);
  type IBamlDeferRecord (line 144) | internal interface IBamlDeferRecord
    method ReadDefer (line 148) | void ReadDefer(BamlDocument doc, int index, Func<long, BamlRecord> res...
    method WriteDefer (line 149) | void WriteDefer(BamlDocument doc, int index, BinaryWriter wtr);
  class XmlnsPropertyRecord (line 152) | internal class XmlnsPropertyRecord : SizedBamlRecord
    method ReadData (line 160) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 169) | protected override void WriteData(BamlBinaryWriter writer)
  class PresentationOptionsAttributeRecord (line 179) | internal class PresentationOptionsAttributeRecord : SizedBamlRecord
    method ReadData (line 186) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 192) | protected override void WriteData(BamlBinaryWriter writer)
  class PIMappingRecord (line 199) | internal class PIMappingRecord : SizedBamlRecord
    method ReadData (line 207) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 214) | protected override void WriteData(BamlBinaryWriter writer)
  class AssemblyInfoRecord (line 222) | internal class AssemblyInfoRecord : SizedBamlRecord
    method ReadData (line 229) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 235) | protected override void WriteData(BamlBinaryWriter writer)
  class PropertyRecord (line 242) | internal class PropertyRecord : SizedBamlRecord
    method ReadData (line 249) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 255) | protected override void WriteData(BamlBinaryWriter writer)
  class PropertyWithConverterRecord (line 262) | internal class PropertyWithConverterRecord : PropertyRecord
    method ReadData (line 268) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 274) | protected override void WriteData(BamlBinaryWriter writer)
  class PropertyCustomRecord (line 281) | internal class PropertyCustomRecord : SizedBamlRecord
    method ReadData (line 289) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 297) | protected override void WriteData(BamlBinaryWriter writer)
  class DefAttributeRecord (line 305) | internal class DefAttributeRecord : SizedBamlRecord
    method ReadData (line 312) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 318) | protected override void WriteData(BamlBinaryWriter writer)
  class DefAttributeKeyStringRecord (line 325) | internal class DefAttributeKeyStringRecord : SizedBamlRecord, IBamlDefer...
    method ReadDefer (line 337) | public void ReadDefer(BamlDocument doc, int index, Func<long, BamlReco...
    method WriteDefer (line 367) | public void WriteDefer(BamlDocument doc, int index, BinaryWriter wtr)
    method ReadData (line 398) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 406) | protected override void WriteData(BamlBinaryWriter writer)
    method NavigateTree (line 415) | static void NavigateTree(BamlDocument doc, BamlRecordType start, BamlR...
  class TypeInfoRecord (line 429) | internal class TypeInfoRecord : SizedBamlRecord
    method ReadData (line 437) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 444) | protected override void WriteData(BamlBinaryWriter writer)
  class TypeSerializerInfoRecord (line 452) | internal class TypeSerializerInfoRecord : TypeInfoRecord
    method ReadData (line 458) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 464) | protected override void WriteData(BamlBinaryWriter writer)
  class AttributeInfoRecord (line 471) | internal class AttributeInfoRecord : SizedBamlRecord
    method ReadData (line 480) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 488) | protected override void WriteData(BamlBinaryWriter writer)
  class StringInfoRecord (line 497) | internal class StringInfoRecord : SizedBamlRecord
    method ReadData (line 504) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 510) | protected override void WriteData(BamlBinaryWriter writer)
  class TextRecord (line 517) | internal class TextRecord : SizedBamlRecord
    method ReadData (line 523) | protected override void ReadData(BamlBinaryReader reader, int size) =>...
    method WriteData (line 525) | protected override void WriteData(BamlBinaryWriter writer) => writer.W...
  class TextWithConverterRecord (line 528) | internal class TextWithConverterRecord : TextRecord
    method ReadData (line 534) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 540) | protected override void WriteData(BamlBinaryWriter writer)
  class TextWithIdRecord (line 547) | internal class TextWithIdRecord : SizedBamlRecord
    method ReadData (line 553) | protected override void ReadData(BamlBinaryReader reader, int size) =>...
    method WriteData (line 555) | protected override void WriteData(BamlBinaryWriter writer) => writer.W...
  class LiteralContentRecord (line 558) | internal class LiteralContentRecord : SizedBamlRecord
    method ReadData (line 566) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 573) | protected override void WriteData(BamlBinaryWriter writer)
  class RoutedEventRecord (line 581) | internal class RoutedEventRecord : SizedBamlRecord
    method ReadData (line 589) | protected override void ReadData(BamlBinaryReader reader, int size)
    method WriteData (line 595) | protected override void WriteData(BamlBinaryWriter writer)
  class DocumentStartRecord (line 602) | internal class DocumentStartRecord : BamlRecord
    method Read (line 610) | public override void Read(BamlBinaryReader reader)
    method Write (line 617) | public override void Write(BamlBinaryWriter writer)
  class DocumentEndRecord (line 625) | internal class DocumentEndRecord : BamlRecord
    method Read (line 629) | public override void Read(BamlBinaryReader reader)
    method Write (line 633) | public override void Write(BamlBinaryWriter writer)
  class ElementStartRecord (line 638) | internal class ElementStartRecord : BamlRecord
    method Read (line 645) | public override void Read(BamlBinaryReader reader)
    method Write (line 651) | public override void Write(BamlBinaryWriter writer)
  class ElementEndRecord (line 658) | internal class ElementEndRecord : BamlRecord
    method Read (line 662) | public override void Read(BamlBinaryReader reader)
    method Write (line 666) | public override void Write(BamlBinaryWriter writer)
  class KeyElementStartRecord (line 671) | internal class KeyElementStartRecord : DefAttributeKeyTypeRecord
  class KeyElementEndRecord (line 676) | internal class KeyElementEndRecord : BamlRecord
    method Read (line 680) | public override void Read(BamlBinaryReader reader)
    method Write (line 684) | public override void Write(BamlBinaryWriter writer)
  class ConnectionIdRecord (line 689) | internal class ConnectionIdRecord : BamlRecord
    method Read (line 695) | public override void Read(BamlBinaryReader reader) => ConnectionId = r...
    method Write (line 697) | public override void Write(BamlBinaryWriter writer) => writer.Write(Co...
  class PropertyWithExtensionRecord (line 700) | internal class PropertyWithExtensionRecord : BamlRecord
    method Read (line 708) | public override void Read(BamlBinaryReader reader)
    method Write (line 715) | public override void Write(BamlBinaryWriter writer)
  class PropertyTypeReferenceRecord (line 723) | internal class PropertyTypeReferenceRecord : PropertyComplexStartRecord
    method Read (line 729) | public override void Read(BamlBinaryReader reader)
    method Write (line 735) | public override void Write(BamlBinaryWriter writer)
  class PropertyStringReferenceRecord (line 742) | internal class PropertyStringReferenceRecord : PropertyComplexStartRecord
    method Read (line 748) | public override void Read(BamlBinaryReader reader)
    method Write (line 754) | public override void Write(BamlBinaryWriter writer)
  class PropertyWithStaticResourceIdRecord (line 761) | internal class PropertyWithStaticResourceIdRecord : StaticResourceIdRecord
    method Read (line 767) | public override void Read(BamlBinaryReader reader)
    method Write (line 773) | public override void Write(BamlBinaryWriter writer)
  class ContentPropertyRecord (line 780) | internal class ContentPropertyRecord : BamlRecord
    method Read (line 786) | public override void Read(BamlBinaryReader reader) => AttributeId = re...
    method Write (line 788) | public override void Write(BamlBinaryWriter writer) => writer.Write(At...
  class DefAttributeKeyTypeRecord (line 791) | internal class DefAttributeKeyTypeRecord : ElementStartRecord, IBamlDefe...
    method ReadDefer (line 802) | public void ReadDefer(BamlDocument doc, int index, Func<long, BamlReco...
    method WriteDefer (line 832) | public void WriteDefer(BamlDocument doc, int index, BinaryWriter wtr)
    method Read (line 863) | public override void Read(BamlBinaryReader reader)
    method Write (line 871) | public override void Write(BamlBinaryWriter writer)
    method NavigateTree (line 880) | static void NavigateTree(BamlDocument doc, BamlRecordType start, BamlR...
  class PropertyListStartRecord (line 894) | internal class PropertyListStartRecord : PropertyComplexStartRecord
  class PropertyListEndRecord (line 899) | internal class PropertyListEndRecord : BamlRecord
    method Read (line 903) | public override void Read(BamlBinaryReader reader)
    method Write (line 907) | public override void Write(BamlBinaryWriter writer)
  class PropertyDictionaryStartRecord (line 912) | internal class PropertyDictionaryStartRecord : PropertyComplexStartRecord
  class PropertyDictionaryEndRecord (line 917) | internal class PropertyDictionaryEndRecord : BamlRecord
    method Read (line 921) | public override void Read(BamlBinaryReader reader)
    method Write (line 925) | public override void Write(BamlBinaryWriter writer)
  class PropertyArrayStartRecord (line 930) | internal class PropertyArrayStartRecord : PropertyComplexStartRecord
  class PropertyArrayEndRecord (line 935) | internal class PropertyArrayEndRecord : BamlRecord
    method Read (line 939) | public override void Read(BamlBinaryReader reader)
    method Write (line 943) | public override void Write(BamlBinaryWriter writer)
  class PropertyComplexStartRecord (line 948) | internal class PropertyComplexStartRecord : BamlRecord
    method Read (line 954) | public override void Read(BamlBinaryReader reader) => AttributeId = re...
    method Write (line 956) | public override void Write(BamlBinaryWriter writer) => writer.Write(At...
  class PropertyComplexEndRecord (line 959) | internal class PropertyComplexEndRecord : BamlRecord
    method Read (line 963) | public override void Read(BamlBinaryReader reader)
    method Write (line 967) | public override void Write(BamlBinaryWriter writer)
  class ConstructorParametersStartRecord (line 972) | internal class ConstructorParametersStartRecord : BamlRecord
    method Read (line 976) | public override void Read(BamlBinaryReader reader)
    method Write (line 980) | public override void Write(BamlBinaryWriter writer)
  class ConstructorParametersEndRecord (line 985) | internal class ConstructorParametersEndRecord : BamlRecord
    method Read (line 989) | public override void Read(BamlBinaryReader reader)
    method Write (line 993) | public override void Write(BamlBinaryWriter writer)
  class ConstructorParameterTypeRecord (line 998) | internal class ConstructorParameterTypeRecord : BamlRecord
    method Read (line 1004) | public override void Read(BamlBinaryReader reader) => TypeId = reader....
    method Write (line 1006) | public override void Write(BamlBinaryWriter writer) => writer.Write(Ty...
  class DeferableContentStartRecord (line 1009) | internal class DeferableContentStartRecord : BamlRecord, IBamlDeferRecord
    method ReadDefer (line 1018) | public void ReadDefer(BamlDocument doc, int index, Func<long, BamlReco...
    method WriteDefer (line 1020) | public void WriteDefer(BamlDocument doc, int index, BinaryWriter wtr)
    method Read (line 1026) | public override void Read(BamlBinaryReader reader)
    method Write (line 1032) | public override void Write(BamlBinaryWriter writer)
  class StaticResourceStartRecord (line 1039) | internal class StaticResourceStartRecord : ElementStartRecord
  class StaticResourceEndRecord (line 1044) | internal class StaticResourceEndRecord : BamlRecord
    method Read (line 1048) | public override void Read(BamlBinaryReader reader)
    method Write (line 1052) | public override void Write(BamlBinaryWriter writer)
  class StaticResourceIdRecord (line 1057) | internal class StaticResourceIdRecord : BamlRecord
    method Read (line 1063) | public override void Read(BamlBinaryReader reader) => StaticResourceId...
    method Write (line 1065) | public override void Write(BamlBinaryWriter writer) => writer.Write(St...
  class OptimizedStaticResourceRecord (line 1068) | internal class OptimizedStaticResourceRecord : BamlRecord
    method Read (line 1079) | public override void Read(BamlBinaryReader reader)
    method Write (line 1085) | public override void Write(BamlBinaryWriter writer)
  class LineNumberAndPositionRecord (line 1092) | internal class LineNumberAndPositionRecord : BamlRecord
    method Read (line 1099) | public override void Read(BamlBinaryReader reader)
    method Write (line 1105) | public override void Write(BamlBinaryWriter writer)
  class LinePositionRecord (line 1112) | internal class LinePositionRecord : BamlRecord
    method Read (line 1118) | public override void Read(BamlBinaryReader reader) => LinePosition = r...
    method Write (line 1120) | public override void Write(BamlBinaryWriter writer) => writer.Write(Li...
  class NamedElementStartRecord (line 1123) | internal class NamedElementStartRecord : ElementStartRecord
    method Read (line 1129) | public override void Read(BamlBinaryReader reader)
    method Write (line 1135) | public override void Write(BamlBinaryWriter writer)

FILE: ICSharpCode.BamlDecompiler/Baml/BamlWriter.cs
  class BamlBinaryWriter (line 29) | internal class BamlBinaryWriter : BinaryWriter
    method BamlBinaryWriter (line 31) | public BamlBinaryWriter(Stream stream)
    method WriteEncodedInt (line 36) | public void WriteEncodedInt(int val) => Write7BitEncodedInt(val);
  class BamlWriter (line 39) | internal class BamlWriter
    method WriteDocument (line 41) | public static void WriteDocument(BamlDocument doc, Stream str)

FILE: ICSharpCode.BamlDecompiler/Baml/KnownMembers.cs
  type KnownMembers (line 27) | internal enum KnownMembers : short

FILE: ICSharpCode.BamlDecompiler/Baml/KnownThings.cs
  class KnownThings (line 32) | internal partial class KnownThings
    method KnownThings (line 42) | public KnownThings(IDecompilerTypeSystem typeSystem)
    method ResolveAssembly (line 71) | IModule ResolveAssembly(string name)
    method InitType (line 79) | ITypeDefinition InitType(IModule assembly, string ns, string name) => ...
    method InitMember (line 80) | KnownMember InitMember(KnownTypes parent, string name, ITypeDefinition...
  class KnownMember (line 83) | internal class KnownMember
    method KnownMember (line 85) | public KnownMember(KnownTypes parent, ITypeDefinition declType, string...

FILE: ICSharpCode.BamlDecompiler/Baml/KnownThings.g.cs
  class KnownThings (line 27) | internal partial class KnownThings
    method InitAssemblies (line 31) | void InitAssemblies()
    method InitTypes (line 41) | void InitTypes()
    method InitMembers (line 805) | void InitMembers()
    method InitStrings (line 1077) | void InitStrings()
    method InitResources (line 1083) | void InitResources()

FILE: ICSharpCode.BamlDecompiler/Baml/KnownThings.gen.cs
  class Program (line 30) | internal class Program {
    method GetMember (line 31) | static T GetMember<T>(Func<string, BindingFlags, T> func, string name) =>
    method GetDeclAssembly (line 34) | static Assembly GetDeclAssembly(Type type) {
    method Main (line 42) | static void Main(string[] args) {
    method ExtractAssemblies (line 160) | static List<Assembly> ExtractAssemblies(Type ctx, object instance) {
    method ExtractTypes (line 181) | static List<Type> ExtractTypes(Type ctx, object instance) {
    method ExtractMembers (line 202) | static List<Tuple<Type, string, Type>> ExtractMembers(Type ctx, object...
    method ExtractStrings (line 236) | static List<string> ExtractStrings(Type ctx, object instance) {
    method ExtractResources (line 252) | static List<Tuple<Type, string, string>> ExtractResources(Assembly asm) {

FILE: ICSharpCode.BamlDecompiler/Baml/KnownTypes.cs
  type KnownTypes (line 27) | internal enum KnownTypes : short

FILE: ICSharpCode.BamlDecompiler/BamlConnectionId.cs
  class FieldAssignment (line 30) | internal sealed class FieldAssignment
  class EventRegistration (line 38) | internal sealed class EventRegistration
  class BamlConnectionId (line 43) | internal class BamlConnectionId
    method BamlConnectionId (line 47) | public BamlConnectionId(uint id) => Id = id;

FILE: ICSharpCode.BamlDecompiler/BamlDecompilationResult.cs
  class BamlDecompilationResult (line 28) | public class BamlDecompilationResult
    method BamlDecompilationResult (line 37) | public BamlDecompilationResult(XDocument xaml, FullTypeName? typeName,...

FILE: ICSharpCode.BamlDecompiler/BamlDecompilerSettings.cs
  class BamlDecompilerSettings (line 24) | public class BamlDecompilerSettings : INotifyPropertyChanged
    method OnPropertyChanged (line 42) | protected virtual void OnPropertyChanged([CallerMemberName] string pro...

FILE: ICSharpCode.BamlDecompiler/BamlDecompilerTypeSystem.cs
  class BamlDecompilerTypeSystem (line 31) | public class BamlDecompilerTypeSystem : SimpleCompilation, IDecompilerTy...
    method BamlDecompilerTypeSystem (line 43) | public BamlDecompilerTypeSystem(MetadataFile mainModule, IAssemblyReso...

FILE: ICSharpCode.BamlDecompiler/BamlElement.cs
  type XamlNode (line 30) | internal readonly struct XamlNode
    method XamlNode (line 32) | XamlNode(XElement value)
    method XamlNode (line 38) | XamlNode(string value)
  class BamlElement (line 53) | internal class BamlElement
    method BamlElement (line 61) | public BamlElement(BamlNode node)

FILE: ICSharpCode.BamlDecompiler/Handlers/Blocks/ConstructorParametersHandler.cs
  class ConstructorParametersStartHandler (line 29) | internal class ConstructorParametersStartHandler : IHandler
    method Translate (line 33) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Blocks/DocumentHandler.cs
  class DocumentHandler (line 29) | internal class DocumentHandler : IHandler
    method Translate (line 33) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Blocks/ElementHandler.cs
  class ElementHandler (line 30) | internal class ElementHandler : IHandler
    method Translate (line 34) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Blocks/KeyElementStartHandler.cs
  class KeyElementStartHandler (line 30) | internal class KeyElementStartHandler : ElementHandler, IHandler, IDefer...
    method Translate (line 34) | BamlElement IHandler.Translate(XamlContext ctx, BamlNode node, BamlEle...
    method TranslateDefer (line 40) | public BamlElement TranslateDefer(XamlContext ctx, BamlNode node, Baml...

FILE: ICSharpCode.BamlDecompiler/Handlers/Blocks/PropertyArrayHandler.cs
  class PropertyArrayHandler (line 29) | internal class PropertyArrayHandler : IHandler
    method Translate (line 33) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Blocks/PropertyComplexHandler.cs
  class PropertyComplexHandler (line 29) | internal class PropertyComplexHandler : IHandler
    method Translate (line 33) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Blocks/PropertyDictionaryHandler.cs
  class PropertyDictionaryHandler (line 29) | internal class PropertyDictionaryHandler : IHandler
    method Translate (line 33) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Blocks/PropertyListHandler.cs
  class PropertyListHandler (line 29) | internal class PropertyListHandler : IHandler
    method Translate (line 33) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/AssemblyInfoHandler.cs
  class AssemblyInfoHandler (line 27) | internal class AssemblyInfoHandler : IHandler
    method Translate (line 31) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/AttributeInfoHandler.cs
  class AttributeInfoHandler (line 27) | internal class AttributeInfoHandler : IHandler
    method Translate (line 31) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/ConnectionIdHandler.cs
  class ConnectionIdHandler (line 27) | internal class ConnectionIdHandler : IHandler
    method Translate (line 31) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/ConstructorParameterTypeHandler.cs
  class ConstructorParameterTypeHandler (line 30) | internal class ConstructorParameterTypeHandler : IHandler
    method Translate (line 34) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/ContentPropertyHandler.cs
  class ContentPropertyHandler (line 27) | internal class ContentPropertyHandler : IHandler
    method Translate (line 31) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/DefAttributeHandler.cs
  class DefAttributeHandler (line 29) | internal class DefAttributeHandler : IHandler
    method Translate (line 33) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/DefAttributeKeyStringHandler.cs
  class DefAttributeStringHandler (line 30) | internal class DefAttributeStringHandler : IHandler, IDeferHandler
    method Translate (line 34) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...
    method TranslateDefer (line 40) | public BamlElement TranslateDefer(XamlContext ctx, BamlNode node, Baml...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/DefAttributeKeyTypeHandler.cs
  class DefAttributeTypeHandler (line 30) | internal class DefAttributeTypeHandler : IHandler, IDeferHandler
    method Translate (line 34) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...
    method TranslateDefer (line 40) | public BamlElement TranslateDefer(XamlContext ctx, BamlNode node, Baml...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/DeferableContentStartHandler.cs
  class DeferableContentStartHandler (line 29) | internal class DeferableContentStartHandler : IHandler
    method Translate (line 33) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/LineNumberAndPositionHandler.cs
  class LineNumberAndPositionHandler (line 27) | internal class LineNumberAndPositionHandler : IHandler
    method Translate (line 31) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/LinePositionHandler.cs
  class LinePositionHandler (line 27) | internal class LinePositionHandler : IHandler
    method Translate (line 31) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/LiteralContentHandler.cs
  class LiteralContentHandler (line 29) | internal class LiteralContentHandler : IHandler
    method Translate (line 33) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/OptimizedStaticResourceHandler.cs
  class OptimizedStaticResourceHandler (line 30) | internal class OptimizedStaticResourceHandler : IHandler, IDeferHandler
    method Translate (line 34) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...
    method TranslateDefer (line 43) | public BamlElement TranslateDefer(XamlContext ctx, BamlNode node, Baml...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/PIMappingHandler.cs
  class PIMappingHandler (line 27) | internal class PIMappingHandler : IHandler
    method Translate (line 31) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/PresentationOptionsAttributeHandler.cs
  class PresentationOptionsAttributeHandler (line 29) | internal class PresentationOptionsAttributeHandler : IHandler
    method Translate (line 33) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/PropertyCustomHandler.cs
  class PropertyCustomHandler (line 35) | internal class PropertyCustomHandler : IHandler
    type IntegerCollectionType (line 39) | enum IntegerCollectionType : byte
    method Deserialize (line 48) | string Deserialize(XamlContext ctx, XElement elem, KnownTypes ser, byt...
    method NeedsFullName (line 169) | private bool NeedsFullName(XamlProperty property, XamlContext ctx, XEl...
    method Translate (line 182) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/PropertyHandler.cs
  class PropertyHandler (line 30) | internal class PropertyHandler : IHandler
    method Translate (line 34) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/PropertyTypeReferenceHandler.cs
  class PropertyTypeReferenceHandler (line 32) | internal class PropertyTypeReferenceHandler : IHandler
    method Translate (line 36) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...
  class TargetTypeAnnotation (line 68) | internal class TargetTypeAnnotation
    method TargetTypeAnnotation (line 72) | public TargetTypeAnnotation(XamlType type)

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/PropertyWithConverterHandler.cs
  class PropertyWithConverterHandler (line 27) | internal class PropertyWithConverterHandler : PropertyHandler, IHandler

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/PropertyWithExtensionHandler.cs
  class PropertyWithExtensionHandler (line 30) | internal class PropertyWithExtensionHandler : IHandler
    method Translate (line 34) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/PropertyWithStaticResourceIdHandler.cs
  class PropertyWithStaticResourceIdHandler (line 31) | internal class PropertyWithStaticResourceIdHandler : IHandler
    method Translate (line 35) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/StaticResourceIdHandler.cs
  class StaticResourceIdHandler (line 26) | class StaticResourceIdHandler : IHandler
    method Translate (line 30) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/StaticResourceStartHandler.cs
  class StaticResourceStartHandler (line 28) | class StaticResourceStartHandler : IHandler, IDeferHandler
    method Translate (line 32) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...
    method TranslateDefer (line 41) | public BamlElement TranslateDefer(XamlContext ctx, BamlNode node, Baml...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/TextHandler.cs
  class TextHandler (line 27) | internal class TextHandler : IHandler
    method Translate (line 31) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...
  class TextWithIdHandler (line 41) | internal class TextWithIdHandler : IHandler
    method Translate (line 45) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/TextWithConverterHandler.cs
  class TextWithConverterHandler (line 27) | internal class TextWithConverterHandler : TextHandler, IHandler

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/TypeInfoHandler.cs
  class TypeInfoHandler (line 27) | internal class TypeInfoHandler : IHandler
    method Translate (line 31) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...
  class TypeSerializerInfoHandler (line 34) | internal class TypeSerializerInfoHandler : IHandler
    method Translate (line 38) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/Handlers/Records/XmlnsPropertyHandler.cs
  class XmlnsPropertyHandler (line 36) | internal class XmlnsPropertyHandler : IHandler
    method ResolveCLRNamespaces (line 40) | IEnumerable<string> ResolveCLRNamespaces(IModule assembly, string ns)
    method Translate (line 55) | public BamlElement Translate(XamlContext ctx, BamlNode node, BamlEleme...

FILE: ICSharpCode.BamlDecompiler/IHandlers.cs
  type IHandler (line 31) | internal interface IHandler
    method Translate (line 34) | BamlElement Translate(XamlContext ctx, BamlNode node, BamlElement pare...
  type IDeferHandler (line 37) | internal interface IDeferHandler
    method TranslateDefer (line 39) | BamlElement TranslateDefer(XamlContext ctx, BamlNode node, BamlElement...
  class HandlerMap (line 42) | internal static class HandlerMap
    method HandlerMap (line 46) | static HandlerMap()
    method LookupHandler (line 61) | public static IHandler LookupHandler(BamlRecordType type)
    method ProcessChildren (line 80) | public static void ProcessChildren(XamlContext ctx, BamlBlockNode node...

FILE: ICSharpCode.BamlDecompiler/IRewritePass.cs
  type IRewritePass (line 27) | internal interface IRewritePass
    method Run (line 29) | void Run(XamlContext ctx, XDocument document);

FILE: ICSharpCode.BamlDecompiler/Rewrite/AttributeRewritePass.cs
  class AttributeRewritePass (line 30) | internal class AttributeRewritePass : IRewritePass
    method Run (line 34) | public void Run(XamlContext ctx, XDocument document)
    method ProcessElement (line 49) | bool ProcessElement(XamlContext ctx, XElement elem)
    method RewriteElement (line 60) | bool RewriteElement(XamlContext ctx, XElement parent, XElement elem)

FILE: ICSharpCode.BamlDecompiler/Rewrite/ConnectionIdRewritePass.cs
  class ConnectionIdRewritePass (line 35) | internal class ConnectionIdRewritePass : IRewritePass
    method Run (line 42) | public void Run(XamlContext ctx, XDocument document)
    method ProcessConnectionIds (line 48) | static void ProcessConnectionIds(XamlContext ctx, XElement element,
    method DecompileConnections (line 103) | (List<(LongSet, FieldAssignment)>, List<(LongSet, EventRegistration[])...
    method DecompileConnections (line 125) | void DecompileConnections(XamlContext ctx, List<(LongSet, FieldAssignm...
    method FindField (line 238) | FieldAssignment FindField(ILInstruction inst)
    method MatchFieldAssignment (line 256) | bool MatchFieldAssignment(ILInstruction inst, out FieldAssignment field)
    method FindEvents (line 267) | void FindEvents(ILInstruction inst, List<EventRegistration> events)
    method MatchEventSetterCreation (line 300) | bool MatchEventSetterCreation(Block b, ref int pos, out EventRegistrat...
    method MatchSimpleEventRegistration (line 369) | bool MatchSimpleEventRegistration(ILInstruction inst, out EventRegistr...
    method IsAddAttachedEvent (line 385) | bool IsAddAttachedEvent(CallInstruction call, out string eventName, ou...
    method IsAddEvent (line 409) | bool IsAddEvent(CallInstruction call, out string eventName, out string...
    method MatchEventHandlerCreation (line 429) | bool MatchEventHandlerCreation(ILInstruction inst, out string handlerN...

FILE: ICSharpCode.BamlDecompiler/Rewrite/DocumentRewritePass.cs
  class DocumentRewritePass (line 29) | internal class DocumentRewritePass : IRewritePass
    method Run (line 31) | public void Run(XamlContext ctx, XDocument document)

FILE: ICSharpCode.BamlDecompiler/Rewrite/MarkupExtensionRewritePass.cs
  class MarkupExtensionRewritePass (line 33) | internal class MarkupExtensionRewritePass : IRewritePass
    method Run (line 38) | public void Run(XamlContext ctx, XDocument document)
    method ProcessElement (line 54) | bool ProcessElement(XamlContext ctx, XElement elem)
    method RewriteElement (line 65) | bool RewriteElement(XamlContext ctx, XElement parent, XElement elem)
    method CanInlineExt (line 114) | bool CanInlineExt(XamlContext ctx, XElement ctxElement)
    method InlineObject (line 145) | object InlineObject(XamlContext ctx, XNode obj)
    method InlineCtor (line 155) | object[] InlineCtor(XamlContext ctx, XElement ctor)
    method InlineExtension (line 170) | XamlExtension InlineExtension(XamlContext ctx, XElement ctxElement)

FILE: ICSharpCode.BamlDecompiler/Rewrite/XClassRewritePass.cs
  class XClassRewritePass (line 30) | internal class XClassRewritePass : IRewritePass
    method Run (line 32) | public void Run(XamlContext ctx, XDocument document)
    method RewriteClass (line 38) | void RewriteClass(XamlContext ctx, XElement elem)

FILE: ICSharpCode.BamlDecompiler/Xaml/NamespaceMap.cs
  class NamespaceMap (line 30) | internal class NamespaceMap
    method NamespaceMap (line 37) | public NamespaceMap(string prefix, string fullAssemblyName, string xmlNs)
    method NamespaceMap (line 42) | public NamespaceMap(string prefix, string fullAssemblyName, string xml...
    method ToString (line 50) | public override string ToString() => $"{XmlnsPrefix}:[{FullAssemblyNam...

FILE: ICSharpCode.BamlDecompiler/Xaml/XamlExtension.cs
  class XamlExtension (line 29) | internal class XamlExtension
    method XamlExtension (line 35) | public XamlExtension(XamlType type)
    method WriteObject (line 41) | static void WriteObject(StringBuilder sb, XamlContext ctx, XElement ct...
    method ToString (line 49) | public string ToString(XamlContext ctx, XElement ctxElement)

FILE: ICSharpCode.BamlDecompiler/Xaml/XamlPathDeserializer.cs
  class XamlPathDeserializer (line 30) | class XamlPathDeserializer
    type PathOpCodes (line 32) | enum PathOpCodes
    type Point (line 46) | readonly struct Point
      method Point (line 51) | public Point(double x, double y)
      method ToString (line 57) | public override string ToString() => string.Format(CultureInfo.Invar...
    method UnpackBools (line 60) | static void UnpackBools(byte b, out bool b1, out bool b2, out bool b3,...
    method ReadPoint (line 68) | static Point ReadPoint(BinaryReader reader) => new Point(reader.ReadXa...
    method ReadPointBoolBool (line 70) | static void ReadPointBoolBool(BinaryReader reader, byte b, out Point p...
    method ReadPointsBoolBool (line 77) | static IList<Point> ReadPointsBoolBool(BinaryReader reader, byte b, ou...
    method Deserialize (line 89) | public static string Deserialize(BinaryReader reader)

FILE: ICSharpCode.BamlDecompiler/Xaml/XamlProperty.cs
  class XamlProperty (line 31) | internal class XamlProperty
    method XamlProperty (line 38) | public XamlProperty(XamlType type, string name)
    method TryResolve (line 44) | public void TryResolve()
    method IsAttachedTo (line 68) | public bool IsAttachedTo(XamlType type)
    method ToXName (line 85) | public XName ToXName(XamlContext ctx, XElement parent, bool isFullName...
    method ToString (line 101) | public override string ToString() => PropertyName;

FILE: ICSharpCode.BamlDecompiler/Xaml/XamlResourceKey.cs
  class XamlResourceKey (line 30) | internal class XamlResourceKey
    method XamlResourceKey (line 32) | XamlResourceKey(BamlNode node)
    method Create (line 75) | public static XamlResourceKey Create(BamlNode node) => new XamlResourc...
    method FindKeyInSiblings (line 81) | public static XamlResourceKey FindKeyInSiblings(BamlNode node)
    method FindKeyInAncestors (line 93) | public static XamlResourceKey FindKeyInAncestors(BamlNode node) => Fin...
    method FindKeyInAncestors (line 95) | public static XamlResourceKey FindKeyInAncestors(BamlNode node, out Ba...

FILE: ICSharpCode.BamlDecompiler/Xaml/XamlType.cs
  class XamlType (line 30) | internal class XamlType
    method XamlType (line 43) | public XamlType(IModule assembly, string fullAssemblyName, string ns, ...
    method XamlType (line 48) | public XamlType(IModule assembly, string fullAssemblyName, string ns, ...
    method ResolveNamespace (line 57) | public void ResolveNamespace(XElement elem, XamlContext ctx)
    method ToXName (line 112) | public XName ToXName(XamlContext ctx)
    method ToString (line 119) | public override string ToString() => TypeName;

FILE: ICSharpCode.BamlDecompiler/Xaml/XamlUtils.cs
  class XamlUtils (line 29) | internal static class XamlUtils
    method Escape (line 31) | public static string Escape(string value)
    method ToString (line 40) | public static string ToString(this XamlContext ctx, XElement elem, Xam...
    method ToString (line 46) | public static string ToString(this XamlContext ctx, XElement elem, XNa...
    method ReadXamlDouble (line 62) | public static double ReadXamlDouble(this BinaryReader reader, bool sca...
    method EscapeName (line 91) | public static StringBuilder EscapeName(StringBuilder sb, string name)
    method EscapeName (line 106) | public static string EscapeName(string name)

FILE: ICSharpCode.BamlDecompiler/XamlContext.cs
  class XamlContext (line 36) | internal class XamlContext
    method XamlContext (line 38) | XamlContext(IDecompilerTypeSystem typeSystem)
    method Construct (line 65) | public static XamlContext Construct(IDecompilerTypeSystem typeSystem, ...
    method BuildNodeMap (line 80) | void BuildNodeMap(BamlBlockNode node)
    method BuildPIMappings (line 94) | void BuildPIMappings(BamlDocument document)
    method ResolveType (line 106) | public XamlType ResolveType(ushort id)
    method ResolveProperty (line 138) | public XamlProperty ResolveProperty(ushort id)
    method ResolveString (line 171) | public string ResolveString(ushort id)
    method GetXmlNamespace (line 181) | public XNamespace GetXmlNamespace(string xmlns)
    method TryGetXmlNamespace (line 195) | public string TryGetXmlNamespace(IModule assembly, string typeNamespace)
    method GetKnownNamespace (line 223) | public XName GetKnownNamespace(string name, string xmlNamespace, XElem...
    method GetPseudoName (line 234) | public XName GetPseudoName(string name) => XNamespace.Get("https://git...

FILE: ICSharpCode.BamlDecompiler/XamlDecompiler.cs
  class XamlDecompiler (line 39) | public class XamlDecompiler
    method XamlDecompiler (line 60) | public XamlDecompiler(string fileName, BamlDecompilerSettings settings)
    method XamlDecompiler (line 65) | public XamlDecompiler(string fileName, IAssemblyResolver assemblyResol...
    method XamlDecompiler (line 70) | public XamlDecompiler(PEFile module, IAssemblyResolver assemblyResolve...
    method XamlDecompiler (line 75) | public XamlDecompiler(BamlDecompilerTypeSystem typeSystem, BamlDecompi...
    method LoadPEFile (line 84) | static PEFile LoadPEFile(string fileName, BamlDecompilerSettings setti...
    method CreateTypeSystemFromFile (line 94) | static BamlDecompilerTypeSystem CreateTypeSystemFromFile(string fileNa...
    method Decompile (line 104) | public BamlDecompilationResult Decompile(Stream stream)

FILE: ICSharpCode.BamlDecompiler/XmlnsDictionary.cs
  class XmlnsScope (line 32) | internal class XmlnsScope : List<NamespaceMap>
    method XmlnsScope (line 37) | public XmlnsScope(XmlnsScope prev, BamlElement elem)
    method LookupXmlns (line 43) | public string LookupXmlns(string fullAssemblyName, string clrNs)
  class XmlnsDictionary (line 55) | internal class XmlnsDictionary
    method XmlnsDictionary (line 59) | public XmlnsDictionary() => CurrentScope = null;
    method PushScope (line 63) | public void PushScope(BamlElement element) => CurrentScope = new Xmlns...
    method PopScope (line 65) | public void PopScope() => CurrentScope = CurrentScope.PreviousScope;
    method Add (line 67) | public void Add(NamespaceMap map) => CurrentScope.Add(map);
    method SetPIMapping (line 69) | public void SetPIMapping(string xmlNs, string clrNs, string fullAssemb...
    method PIFixup (line 78) | NamespaceMap PIFixup(NamespaceMap map)
    method LookupNamespaceFromPrefix (line 88) | public NamespaceMap LookupNamespaceFromPrefix(string prefix)
    method LookupNamespaceFromXmlns (line 105) | public NamespaceMap LookupNamespaceFromXmlns(string xmlNs)
    method LookupXmlns (line 122) | public string LookupXmlns(string fullAssemblyName, string clrNs)

FILE: ICSharpCode.Decompiler.PowerShell/ErrorIds.cs
  class ErrorIds (line 7) | public static class ErrorIds

FILE: ICSharpCode.Decompiler.PowerShell/GetDecompiledProjectCmdlet.cs
  class GetDecompiledProjectCmdlet (line 13) | [Cmdlet(VerbsCommon.Get, "DecompiledProject")]
    method Report (line 30) | public void Report(DecompilationProgress value)
    method ProcessRecord (line 41) | protected override void ProcessRecord()
    method DoDecompile (line 89) | private void DoDecompile(string path)

FILE: ICSharpCode.Decompiler.PowerShell/GetDecompiledSourceCmdlet.cs
  class GetDecompiledSourceCmdlet (line 12) | [Cmdlet(VerbsCommon.Get, "DecompiledSource")]
    method ProcessRecord (line 22) | protected override void ProcessRecord()

FILE: ICSharpCode.Decompiler.PowerShell/GetDecompiledTypesCmdlet.cs
  class GetDecompiledTypesCmdlet (line 13) | [Cmdlet(VerbsCommon.Get, "DecompiledTypes")]
    method ProcessRecord (line 23) | protected override void ProcessRecord()

FILE: ICSharpCode.Decompiler.PowerShell/GetDecompilerCmdlet.cs
  class GetDecompilerCmdlet (line 14) | [Cmdlet(VerbsCommon.Get, "Decompiler")]
    method ProcessRecord (line 35) | protected override void ProcessRecord()

FILE: ICSharpCode.Decompiler.PowerShell/GetDecompilerVersion.cs
  class GetDecompilerVersion (line 8) | [Cmdlet(VerbsCommon.Get, "DecompilerVersion")]
    method ProcessRecord (line 12) | protected override void ProcessRecord()

FILE: ICSharpCode.Decompiler.PowerShell/GetTargetFramework.cs
  class GetTargetFramework (line 8) | [Cmdlet(VerbsCommon.Get, "TargetFramework")]
    method ProcessRecord (line 15) | protected override void ProcessRecord()

FILE: ICSharpCode.Decompiler.PowerShell/NullAttributes.cs
  class NotNullIfNotNullAttribute (line 7) | [AttributeUsage(AttributeTargets.Property | AttributeTargets.Parameter |...
    method NotNullIfNotNullAttribute (line 12) | public NotNullIfNotNullAttribute(string parameterName)
  class NotNullWhenAttribute (line 18) | [AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
    method NotNullWhenAttribute (line 21) | public NotNullWhenAttribute(bool returnValue)
  class DoesNotReturnIfAttribute (line 29) | [AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
    method DoesNotReturnIfAttribute (line 32) | public DoesNotReturnIfAttribute(bool parameterValue) => ParameterValue...

FILE: ICSharpCode.Decompiler.PowerShell/TypesParser.cs
  class TypesParser (line 10) | public static class TypesParser
    method ParseSelection (line 12) | public static HashSet<TypeKind> ParseSelection(string[] values)

FILE: ICSharpCode.Decompiler.TestRunner/Program.cs
  class Program (line 25) | public static class Program
    method Main (line 27) | static int Main(string[] args)
    method ContextResolving (line 52) | private static Assembly? ContextResolving(AssemblyLoadContext context,...

FILE: ICSharpCode.Decompiler.Tests/CorrectnessTestRunner.cs
  class CorrectnessTestRunner (line 30) | [TestFixture, Parallelizable(ParallelScope.All)]
    method AllFilesHaveTests (line 35) | [Test]
    method Comparisons (line 157) | [Test]
    method Conversions (line 163) | [Test]
    method FloatingPointArithmetic (line 169) | [Test]
    method HelloWorld (line 181) | [Test]
    method ControlFlow (line 187) | [Test]
    method CompoundAssignment (line 193) | [Test]
    method PropertiesAndEvents (line 199) | [Test]
    method Switch (line 205) | [Test]
    method Using (line 211) | [Test]
    method Loops (line 217) | [Test]
    method NullableTests (line 223) | [Test]
    method Generics (line 229) | [Test]
    method ValueTypeCall (line 235) | [Test]
    method InitializerTests (line 241) | [Test]
    method DecimalFields (line 247) | [Test]
    method UndocumentedExpressions (line 253) | [Test]
    method Uninit (line 259) | [Test]
    method MemberLookup (line 265) | [Test]
    method OverloadResolution (line 271) | [Test]
    method ExpressionTrees (line 277) | [Test]
    method NullPropagation (line 283) | [Test]
    method DeconstructionTests (line 289) | [Test]
    method BitNot (line 295) | [Test]
    method Jmp (line 308) | [Test]
    method NonGenericConstrainedCallVirt (line 314) | [Test]
    method StackTests (line 320) | [Test]
    method StackTypes (line 327) | [Test]
    method UnsafeCode (line 340) | [Test]
    method ConditionalAttr (line 346) | [Test]
    method TrickyTypes (line 352) | [Test]
    method Capturing (line 358) | [Test]
    method YieldReturn (line 364) | [Test]
    method Async (line 374) | [Test]
    method LINQRaytracer (line 380) | [Test]
    method StringConcat (line 386) | [Test]
    method DynamicTests (line 392) | [Test]
    method MiniJSON (line 398) | [Test]
    method ComInterop (line 404) | [Test]
    method RunCS (line 410) | async Task RunCS([CallerMemberName] string testName = null, CompilerOp...
    method RunVB (line 453) | async Task RunVB([CallerMemberName] string testName = null, CompilerOp...
    method RunIL (line 481) | async Task RunIL(string testFileName, CompilerOptions options = Compil...

FILE: ICSharpCode.Decompiler.Tests/DataFlowTest.cs
  class DataFlowTest (line 34) | [TestFixture]
    class RDTest (line 37) | class RDTest : ReachingDefinitionsVisitor
      method RDTest (line 41) | public RDTest(ILFunction f, ILVariable v) : base(f, _ => true, Cance...
      method VisitTryFinally (line 46) | protected internal override void VisitTryFinally(TryFinally inst)
    method TryFinallyWithAssignmentInFinally (line 56) | [Test]

FILE: ICSharpCode.Decompiler.Tests/DisassemblerPrettyTestRunner.cs
  class DisassemblerPrettyTestRunner (line 33) | [TestFixture, Parallelizable(ParallelScope.All)]
    method AllFilesHaveTests (line 38) | [Test]
    method GenericConstraints (line 55) | [Test]
    method SecurityDeclarations (line 61) | [Test]
    method SortMembers (line 67) | [Test]
    method InterfaceImplAttributes (line 73) | [Test]
    method Run (line 79) | async Task Run([CallerMemberName] string testName = null, string ilExp...

FILE: ICSharpCode.Decompiler.Tests/Helpers/CodeAssert.cs
  class CodeAssert (line 16) | public static class CodeAssert
    method FilesAreEqual (line 18) | public static void FilesAreEqual(string fileName1, string fileName2, s...
    method AreEqual (line 23) | public static void AreEqual(string input1, string input2, string[] def...
  class CodeComparer (line 33) | public static class CodeComparer
    method Compare (line 35) | public static bool Compare(string input1, string input2, StringWriter ...
    class CodeLineEqualityComparer (line 126) | class CodeLineEqualityComparer : IEqualityComparer<string>
      method CodeLineEqualityComparer (line 131) | public CodeLineEqualityComparer(Func<string, string> normalizeLine)
      method Equals (line 136) | public bool Equals(string x, string y)
      method GetHashCode (line 144) | public int GetHashCode(string obj)
    method NormalizeLine (line 150) | public static string NormalizeLine(string line)
    method ShouldIgnoreChange (line 168) | private static bool ShouldIgnoreChange(string line)
    class DeleteDisabledTextRewriter (line 174) | class DeleteDisabledTextRewriter : CSharpSyntaxRewriter
      method VisitTrivia (line 176) | public override SyntaxTrivia VisitTrivia(SyntaxTrivia trivia)
    method NormalizeAndSplitCode (line 190) | private static IList<string> NormalizeAndSplitCode(string input, IEnum...

FILE: ICSharpCode.Decompiler.Tests/Helpers/RemoveCompilerAttribute.cs
  class RemoveCompilerAttribute (line 10) | class RemoveCompilerAttribute : DepthFirstAstVisitor, IAstTransform
    method VisitAttribute (line 12) | public override void VisitAttribute(CSharp.Syntax.Attribute attribute)
    method Run (line 31) | public void Run(AstNode rootNode, TransformContext context)
  class RemoveNamespaceMy (line 37) | public class RemoveNamespaceMy : DepthFirstAstVisitor, IAstTransform
    method VisitNamespaceDeclaration (line 39) | public override void VisitNamespaceDeclaration(NamespaceDeclaration na...
    method Run (line 51) | public void Run(AstNode rootNode, TransformContext context)

FILE: ICSharpCode.Decompiler.Tests/Helpers/RoslynToolset.cs
  class AbstractToolset (line 39) | [System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1001:Types...
    method AbstractToolset (line 48) | public AbstractToolset(string baseDir)
    method FetchPackage (line 56) | protected async Task FetchPackage(string packageName, string version, ...
  class RoslynToolset (line 100) | class RoslynToolset : AbstractToolset
    method RoslynToolset (line 106) | public RoslynToolset()
    method Fetch (line 111) | public async Task Fetch(string version, string packageName = "Microsof...
    method GetCSharpCompiler (line 122) | public string GetCSharpCompiler(string version)
    method GetVBCompiler (line 127) | public string GetVBCompiler(string version)
    method GetCompiler (line 132) | string GetCompiler(string compiler, string version)
    method SanitizeVersion (line 139) | internal static string SanitizeVersion(string version)
  class VsWhereToolset (line 148) | class VsWhereToolset : AbstractToolset
    method VsWhereToolset (line 152) | public VsWhereToolset()
    method Fetch (line 157) | public async Task Fetch()
    method GetVsWhere (line 167) | public string GetVsWhere() => vswherePath;
  class RefAssembliesToolset (line 170) | class RefAssembliesToolset : AbstractToolset
    method RefAssembliesToolset (line 177) | public RefAssembliesToolset()
    method Fetch (line 182) | public async Task Fetch(string version, string packageName = "Microsof...
    method GetPath (line 193) | internal string GetPath(string targetFramework)

FILE: ICSharpCode.Decompiler.Tests/Helpers/SdkUtility.cs
  class SdkUtility (line 25) | public static class SdkUtility
    method GetPathFromRegistry (line 27) | static string GetPathFromRegistry(string key, string valueName)
    method GetPathFromRegistryX86 (line 45) | static string GetPathFromRegistryX86(string key, string valueName)
    method GetSdkPath (line 201) | public static string GetSdkPath(string exeName)

FILE: ICSharpCode.Decompiler.Tests/Helpers/Tester.VB.cs
  class Tester (line 32) | partial class Tester
    method CompileVB (line 34) | public static async Task<CompilerResults> CompileVB(string sourceFileN...

FILE: ICSharpCode.Decompiler.Tests/Helpers/Tester.cs
  type CompilerOptions (line 52) | [Flags]
  type AssemblerOptions (line 79) | [Flags]
  class Tester (line 94) | public static partial class Tester
    method Tester (line 106) | static Tester()
    method Initialize (line 129) | internal static async Task Initialize()
    method BuildTestRunner (line 149) | static async Task BuildTestRunner(string runtime, string config)
    method AssembleIL (line 156) | public static async Task<string> AssembleIL(string sourceFileName, Ass...
    method Disassemble (line 211) | public static async Task<string> Disassemble(string sourceFileName, st...
    method ReplacePrivImplDetails (line 279) | private static string ReplacePrivImplDetails(string il)
    method GetTargetFrameworkAttributeSnippetFile (line 349) | static string GetTargetFrameworkAttributeSnippetFile(string targetFram...
    method GetNonEmbeddedAttributesSnippetFile (line 392) | static string GetNonEmbeddedAttributesSnippetFile()
    method GetPreprocessorSymbols (line 400) | public static List<string> GetPreprocessorSymbols(CompilerOptions flags)
    method CompileCSharp (line 485) | public static async Task<CompilerResults> CompileCSharp(string sourceF...
    method GetSettings (line 714) | internal static DecompilerSettings GetSettings(CompilerOptions cscOpti...
    method CompileCSharpWithPdb (line 742) | public static void CompileCSharpWithPdb(string assemblyName, Dictionar...
    method GetSuffix (line 781) | internal static string GetSuffix(CompilerOptions cscOptions)
    method Run (line 807) | public static async Task<(int ExitCode, string Output, string Error)> ...
    method RunWithTestRunner (line 817) | public static async Task<(int ExitCode, string Output, string Error)> ...
    method DecompileCSharp (line 829) | public static Task<string> DecompileCSharp(string assemblyFileName, De...
    method CreateFormattingPolicyForTests (line 866) | private static CSharpFormattingOptions CreateFormattingPolicyForTests()
    method RunAndCompareOutput (line 877) | public static async Task RunAndCompareOutput(string testFileName, stri...
    method RepeatOnIOError (line 949) | internal static void RepeatOnIOError(Action action, int numTries = 5)
    method SignAssembly (line 971) | public static async Task SignAssembly(string assemblyPath, string keyF...
    method FindMSBuild (line 992) | public static async Task<string> FindMSBuild()
  class CompilerResults (line 1006) | public class CompilerResults
    method DeleteTempFiles (line 1029) | public void DeleteTempFiles()
    method AddTempFile (line 1037) | public void AddTempFile(string file)

FILE: ICSharpCode.Decompiler.Tests/Helpers/TestsAssemblyOutput.cs
  class TestsAssemblyOutput (line 34) | internal static class TestsAssemblyOutput
    method TestsAssemblyOutput (line 40) | static TestsAssemblyOutput()
    method GetFilePath (line 57) | public static string GetFilePath(string testCasePath, string testName,...
    method GetTempFileName (line 66) | public static string GetTempFileName()

FILE: ICSharpCode.Decompiler.Tests/ILPrettyTestRunner.cs
  class ILPrettyTestRunner (line 31) | [TestFixture, Parallelizable(ParallelScope.All)]
    method AllFilesHaveTests (line 36) | [Test]
    method Issue379 (line 54) | [Test, Ignore("Need to decide how to represent virtual methods without...
    method Issue646 (line 60) | [Test]
    method Issue684 (line 66) | [Test]
    method Issue959 (line 72) | [Test]
    method Issue982 (line 78) | [Test]
    method Issue1038 (line 84) | [Test]
    method Issue1047 (line 90) | [Test]
    method Issue1389 (line 96) | [Test]
    method Issue1918 (line 102) | [Test]
    method Issue1922 (line 108) | [Test]
    method FSharpUsing_Debug (line 114) | [Test]
    method FSharpUsing_Release (line 120) | [Test]
    method DirectCallToExplicitInterfaceImpl (line 126) | [Test]
    method EvalOrder (line 132) | [Test]
    method CS1xSwitch_Debug (line 138) | [Test]
    method CS1xSwitch_Release (line 144) | [Test]
    method UnknownTypes (line 150) | [Test]
    method Issue1145 (line 156) | [Test]
    method Issue1157 (line 162) | [Test]
    method Issue1256 (line 168) | [Test]
    method Issue1323 (line 174) | [Test]
    method Issue1325 (line 180) | [Test]
    method Issue1681 (line 186) | [Test]
    method Issue1454 (line 192) | [Test]
    method Issue2104 (line 198) | [Test]
    method Issue2443 (line 204) | [Test]
    method Issue3344CkFinite (line 210) | [Test]
    method Issue3421 (line 216) | [Test]
    method Issue3442 (line 222) | [Test]
    method Issue3465 (line 228) | [Test]
    method Issue3466 (line 234) | [Test]
    method Issue3504 (line 240) | [Test]
    method Issue3524 (line 246) | [Test]
    method Issue3552 (line 252) | [Test]
    method Issue2260SwitchString (line 258) | [Test]
    method ConstantBlobs (line 264) | [Test]
    method SequenceOfNestedIfs (line 270) | [Test]
    method Unsafe (line 276) | [Test]
    method CallIndirect (line 282) | [Test]
    method FSharpLoops_Debug (line 288) | [Test]
    method FSharpLoops_Release (line 295) | [Test]
    method WeirdEnums (line 302) | [Test]
    method GuessAccessors (line 308) | [Test]
    method EmptyBodies (line 314) | [Test]
    method MonoFixed (line 320) | [Test]
    method ExtensionEncodingV1 (line 326) | [Test]
    method ExtensionEncodingV2 (line 334) | [Test]
    method Run (line 342) | async Task Run([CallerMemberName] string testName = null, DecompilerSe...
    method CopyFSharpCoreDll (line 362) | static void CopyFSharpCoreDll()

FILE: ICSharpCode.Decompiler.Tests/Output/CSharpAmbienceTests.cs
  class CSharpAmbienceTests (line 35) | [TestFixture]
    method FixtureSetUp (line 41) | [OneTimeSetUp]
    method GetDefinition (line 50) | ITypeDefinition GetDefinition(Type type)
    method GenericType (line 66) | [TestCase(None, "Dictionary")]
    method SimpleType (line 82) | [TestCase(None, "Object")]
    method GenericInterface (line 98) | [TestCase(None, "IEnumerable")]
    method GenericTypeWithNested (line 110) | [TestCase(None, "Enumerator")]
    method StaticClassTest (line 127) | [TestCase(None, "StaticClass")]
    method SealedClassTest (line 143) | [TestCase(None, "SealedClass")]
    method RefStructTest (line 159) | [TestCase(None, "RefStruct")]
    method ReadonlyStructTest (line 175) | [TestCase(None, "ReadonlyStruct")]
    method ReadonlyRefStructTest (line 191) | [TestCase(None, "ReadonlyRefStruct")]
    method FuncDelegate (line 209) | [TestCase(None, "Func")]
    method SimpleField (line 227) | [TestCase(All & ~PlaceReturnTypeAfterParameterList, "private int ICSha...
    method SimpleConstField (line 238) | [TestCase(All & ~PlaceReturnTypeAfterParameterList, "private const int...
    method EventWithDeclaringType (line 250) | [Test]
    method CustomEvent (line 260) | [Test]
    method AutomaticProperty (line 272) | [TestCase(StandardConversionFlags, "public int Test { get; set; }")]
    method Indexer (line 282) | [TestCase(StandardConversionFlags, "public int this[int index] { get; ...
    method ExplicitIndexer (line 292) | [TestCase(StandardConversionFlags, "int Interface.this[int index] { ge...
    method ConstructorTests (line 304) | [TestCase(StandardConversionFlags, "public Program(int x);")]
    method DestructorTests (line 314) | [TestCase(StandardConversionFlags, "~Program();")]
    class Test (line 329) | class Test { }
    class StaticClass (line 330) | static class StaticClass { }
    class SealedClass (line 331) | sealed class SealedClass { }
    type RefStruct (line 332) | ref struct RefStruct { }
    type ReadonlyStruct (line 333) | readonly struct ReadonlyStruct { }
    type ReadonlyRefStruct (line 334) | readonly ref struct ReadonlyRefStruct { }
    type Interface (line 336) | interface Interface
    class Program (line 341) | class Program : Interface
      method Program (line 382) | public Program(int x)
      method Main (line 392) | public static void Main(string[] args)
      method InParameter (line 400) | public static void InParameter(in int a)

FILE: ICSharpCode.Decompiler.Tests/Output/ILAmbienceTests.cs
  class ILAmbienceTests (line 35) | [TestFixture]
    method FixtureSetUp (line 41) | [OneTimeSetUp]
    method GetDefinition (line 50) | ITypeDefinition GetDefinition(Type type)
    method GenericType (line 66) | [TestCase(None, "Dictionary`2")]
    method SimpleType (line 82) | [TestCase(None, "Object")]
    method GenericInterface (line 98) | [TestCase(None, "IEnumerable`1")]
    method GenericTypeWithNested (line 110) | [TestCase(None, "Enumerator")]
    method StaticClassTest (line 127) | [TestCase(None, "StaticClass")]
    method SealedClassTest (line 143) | [TestCase(None, "SealedClass")]
    method RefStructTest (line 159) | [TestCase(None, "RefStruct")]
    method ReadonlyStructTest (line 175) | [TestCase(None, "ReadonlyStruct")]
    method ReadonlyRefStructTest (line 191) | [TestCase(None, "ReadonlyRefStruct")]
    method FuncDelegate (line 209) | [TestCase(None, "Func`2")]
    method SimpleField (line 223) | [TestCase(All & ~PlaceReturnTypeAfterParameterList, ".field private in...
    method SimpleConstField (line 234) | [TestCase(All & ~PlaceReturnTypeAfterParameterList, ".field private st...
    method EventWithDeclaringType (line 246) | [Test]
    method CustomEvent (line 256) | [Test]
    method AutomaticProperty (line 268) | [TestCase(StandardConversionFlags, ".property instance int32 Test")]
    method Indexer (line 278) | [TestCase(StandardConversionFlags, ".property instance int32 Item(int3...
    method ExplicitIndexer (line 288) | [TestCase(StandardConversionFlags, ".property instance int32 ICSharpCo...
    method ConstructorTests (line 300) | [TestCase(StandardConversionFlags, ".method public hidebysig specialna...
    method DestructorTests (line 310) | [TestCase(StandardConversionFlags, ".method family hidebysig virtual i...
  class Test (line 326) | class Test { }
  class StaticClass (line 327) | static class StaticClass { }
  class SealedClass (line 328) | sealed class SealedClass { }
  type RefStruct (line 329) | ref struct RefStruct { }
  type ReadonlyStruct (line 330) | readonly struct ReadonlyStruct { }
  type ReadonlyRefStruct (line 331) | readonly ref struct ReadonlyRefStruct { }
  type Interface (line 333) | interface Interface
  class Program (line 338) | class Program : Interface
    method Program (line 379) | public Program(int x)
    method Main (line 389) | public static void Main(string[] args)
    method InParameter (line 397) | public static void InParameter(in int a)

FILE: ICSharpCode.Decompiler.Tests/Output/InsertParenthesesVisitorTests.cs
  class InsertParenthesesVisitorTests (line 28) | [TestFixture]
    method SetUp (line 33) | [SetUp]
    method InsertReadable (line 39) | string InsertReadable(Expression expr)
    method InsertRequired (line 49) | string InsertRequired(Expression expr)
    method EqualityInAssignment (line 59) | [Test]
    method LambdaInAssignment (line 75) | [Test]
    method LambdaInDelegateAdditionRHS (line 93) | [Test]
    method LambdaInDelegateAdditionLHS (line 112) | [Test]
    method TrickyCast1 (line 131) | [Test]
    method TrickyCast2 (line 145) | [Test]
    method TrickyCast3 (line 159) | [Test]
    method TrickyCast4 (line 173) | [Test]
    method TrickyCast5 (line 185) | [Test]
    method TrickyCast6 (line 197) | [Test]
    method CastAndInvoke (line 209) | [Test]
    method DoubleNegation (line 224) | [Test]
    method AdditionWithConditional (line 236) | [Test]
    method TypeTestInConditional (line 257) | [Test]
    method MethodCallOnQueryExpression (line 284) | [Test]
    method SumOfQueries (line 309) | [Test]
    method QueryInTypeTest (line 335) | [Test]
    method PrePost (line 357) | [Test]
    method PostPre (line 372) | [Test]
    method Logical1 (line 387) | [Test]
    method Logical2 (line 404) | [Test]
    method Logical3 (line 421) | [Test]
    method Logical4 (line 438) | [Test]
    method ArrayCreationInIndexer (line 455) | [Test]
    method ArrayCreationWithInitializerInIndexer (line 470) | [Test]
    method AssignmentInObjectOrCollectionInitializer (line 488) | [Test]

FILE: ICSharpCode.Decompiler.Tests/PdbGenerationTestRunner.cs
  class PdbGenerationTestRunner (line 21) | [TestFixture, Parallelizable(ParallelScope.All)]
    method HelloWorld (line 26) | [Test]
    method ForLoopTests (line 32) | [Test]
    method LambdaCapturing (line 39) | [Test]
    method Members (line 46) | [Test]
    method CustomPdbId (line 53) | [Test]
    method ProgressReporting (line 78) | [Test]
    class TestProgressReporter (line 117) | private class TestProgressReporter : IProgress<DecompilationProgress>
      method TestProgressReporter (line 121) | public TestProgressReporter(Action<DecompilationProgress> reportFunc)
      method Report (line 126) | public void Report(DecompilationProgress value)
    method TestGeneratePdb (line 132) | private void TestGeneratePdb([CallerMemberName] string testName = null)
    method CompileTestCase (line 168) | private (string peFileName, string pdbFileName) CompileTestCase(string...
    method ProcessXmlFile (line 182) | private void ProcessXmlFile(string fileName)
    method Normalize (line 194) | private string Normalize(string inputFileName)
  class StringWriterWithEncoding (line 200) | class StringWriterWithEncoding : StringWriter
    method StringWriterWithEncoding (line 204) | public StringWriterWithEncoding(Encoding encoding)

FILE: ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs
  class PrettyTestRunner (line 31) | [TestFixture, Parallelizable(ParallelScope.All)]
    method AllFilesHaveTests (line 36) | [Test]
    method HelloWorld (line 194) | [Test]
    method IndexRangeTest (line 201) | [Test]
    method InlineAssignmentTest (line 211) | [Test]
    method CompoundAssignmentTest (line 217) | [Test]
    method ShortCircuit (line 223) | [Test]
    method CustomShortCircuitOperators (line 229) | [Test]
    method ExceptionHandling (line 235) | [Test]
    method Switch (line 246) | [Test]
    method SwitchExpressions (line 256) | [Test]
    method ReduceNesting (line 262) | [Test]
    method DelegateConstruction (line 268) | [Test]
    method AnonymousTypes (line 277) | [Test]
    method Async (line 283) | [Test]
    method Lock (line 289) | [Test]
    method Using (line 295) | [Test]
    method UsingVariables (line 307) | [Test]
    method GloballyQualifiedTypeInStringInterpolation (line 313) | [Test]
    method LiftedOperators (line 326) | [Test]
    method Operators (line 332) | [Test]
    method Generics (line 338) | [Test]
    method Loops (line 344) | [Test]
    method LocalFunctions (line 354) | [Test]
    method PropertiesAndEvents (line 360) | [Test]
    method AutoProperties (line 366) | [Test]
    method QueryExpressions (line 372) | [Test]
    method TypeAnalysisTests (line 378) | [Test]
    method CheckedUnchecked (line 384) | [Test]
    method UnsafeCode (line 390) | [Test]
    method ConstructorInitializers (line 396) | [Test]
    method PInvoke (line 402) | [Test]
    method OutVariables (line 409) | [Test]
    method PatternMatching (line 415) | [Test]
    method InitializerTests (line 421) | [Test]
    method DynamicTests (line 427) | [Test]
    method ExpressionTrees (line 433) | [Test]
    method FixProxyCalls (line 439) | [Test]
    method ValueTypes (line 445) | [Test]
    method VariableNaming (line 451) | [Test]
    method VariableNamingWithoutSymbols (line 457) | [Test]
    method CS72_PrivateProtected (line 463) | [Test]
    method AsyncForeach (line 469) | [Test]
    method AsyncMain (line 475) | [Test]
    method AsyncStreams (line 481) | [Test]
    method AsyncUsing (line 487) | [Test]
    method CustomTaskType (line 496) | [Test]
    method NullableRefTypes (line 502) | [Test]
    method NativeInts (line 508) | [Test]
    method FileScopedNamespaces (line 514) | [Test]
    method Structs (line 520) | [Test]
    method FunctionPointers (line 526) | [Test]
    method Records (line 532) | [Test]
    method Issue3610 (line 538) | [Test]
    method Issue3611 (line 544) | [Test]
    method Issue3452 (line 550) | [Test]
    method Issue3598 (line 556) | [Test]
    method ExtensionProperties (line 562) | [Test]
    method NullPropagation (line 568) | [Test]
    method StringInterpolation (line 574) | [Test]
    method CS73_StackAllocInitializers (line 580) | [Test]
    method RefLocalsAndReturns (line 586) | [Test]
    method RefFields (line 592) | [Test]
    method ThrowExpressions (line 598) | [Test]
    method WellKnownConstants (line 604) | [Test]
    method QualifierTests (line 610) | [Test]
    method TupleTests (line 616) | [Test]
    method NamedArguments (line 622) | [Test]
    method OptionalArguments (line 628) | [Test]
    method OptionalArgumentsDisabled (line 634) | [Test]
    method Comparisons (line 645) | [Test]
    method ConstantsTests (line 651) | [Test]
    method ParamsCollections (line 657) | [Test]
    method ExpandParamsArgumentsDisabled (line 663) | [Test]
    method Issue1080 (line 669) | [Test]
    method Issue3439 (line 675) | [Test]
    method Issue3406 (line 681) | [Test]
    method Issue3442 (line 687) | [Test]
    method Issue3483 (line 693) | [Test]
    method Issue3541 (line 699) | [Test]
    method Issue3571_A (line 705) | [Test]
    method Issue3571_B (line 711) | [Test]
    method Issue3571_C (line 717) | [Test]
    method Issue3576 (line 723) | [Test]
    method Issue3584 (line 729) | [Test]
    method AssemblyCustomAttributes (line 735) | [Test]
    method CustomAttributes (line 741) | [Test]
    method CustomAttributes2 (line 747) | [Test]
    method CustomAttributeConflicts (line 753) | [Test]
    method CustomAttributeSamples (line 759) | [Test]
    method MemberTests (line 765) | [Test]
    method MultidimensionalArray (line 771) | [Test]
    method EnumTests (line 777) | [Test]
    method InterfaceTests (line 783) | [Test]
    method TypeMemberTests (line 789) | [Test]
    method YieldReturn (line 795) | [Test]
    method UserDefinedConversions (line 801) | [Test]
    method Discards (line 807) | [Test]
    method DeconstructionTests (line 813) | [Test]
    method CS9_ExtensionGetEnumerator (line 819) | [Test]
    method CovariantReturns (line 825) | [Test]
    method StaticAbstractInterfaceMembers (line 831) | [Test]
    method MetadataAttributes (line 837) | [Test]
    method PointerArithmetic (line 843) | [Test]
    method InlineArrayTests (line 849) | [Test]
    method RunForLibrary (line 855) | async Task RunForLibrary([CallerMemberName] string testName = null, As...
    method Run (line 860) | async Task Run([CallerMemberName] string testName = null, AssemblerOpt...

FILE: ICSharpCode.Decompiler.Tests/ProjectDecompiler/TargetFrameworkTests.cs
  class TargetFrameworkTests (line 28) | [TestFixture]
    method VerifyThrowsForInvalidVersion (line 31) | [TestCase(-1)]
    method VerifyVersion (line 47) | [TestCase(100, "v1.0")]
    method VerifyPortableLibrary (line 65) | [Test]
    method VerifyIdentifierAndProfile (line 79) | [Test]
    method VerifyMoniker (line 95) | [TestCase(null, 350, "net35")]
    method VerifyUniversalAssemblyResolverParseTargetFramework (line 124) | [TestCase(".NETCoreApp, Version=v5.0", TargetFrameworkIdentifier.NET, ...

FILE: ICSharpCode.Decompiler.Tests/ProjectDecompiler/WholeProjectDecompilerTests.cs
  class WholeProjectDecompilerTests (line 30) | [TestFixture]
    method UseNestedDirectoriesForNamespacesTrueWorks (line 33) | [Test]
    method UseNestedDirectoriesForNamespacesFalseWorks (line 52) | [Test]
    method AssertDirectoryDoesntExist (line 71) | static void AssertDirectoryDoesntExist(string directory)
    class TestFriendlyProjectDecompiler (line 80) | sealed class TestFriendlyProjectDecompiler(IAssemblyResolver assemblyR...
      method CreateFile (line 85) | protected override TextWriter CreateFile(string path)
      method CreateDirectory (line 95) | protected override void CreateDirectory(string path)
      method WriteMiscellaneousFilesInProject (line 103) | protected override IEnumerable<ProjectItemInfo> WriteMiscellaneousFi...
      method WriteResourceFilesInProject (line 105) | protected override IEnumerable<ProjectItemInfo> WriteResourceFilesIn...

FILE: ICSharpCode.Decompiler.Tests/RoundtripAssembly.cs
  class RoundtripAssembly (line 39) | [TestFixture, Parallelizable(ParallelScope.All)]
    method Cecil_net45 (line 45) | [Test]
    method NewtonsoftJson_net45 (line 51) | [Test]
    method NewtonsoftJson_pcl_debug (line 57) | [Test]
    method NRefactory_CSharp (line 70) | [Test]
    method ICSharpCode_Decompiler (line 76) | [Test]
    method ImplicitConversions (line 82) | [Test]
    method ImplicitConversions_32 (line 88) | [Test]
    method ExplicitConversions (line 94) | [Test]
    method ExplicitConversions_32 (line 100) | [Test]
    method ExplicitConversions_With_NativeInts (line 106) | [Test]
    method ExplicitConversions_32_With_NativeInts (line 112) | [Test]
    method Random_TestCase_1 (line 118) | [Test]
    method Random_TestCase_1_With_NativeInts (line 124) | [Test]
    method RunWithTest (line 135) | async Task RunWithTest(string dir, string fileToRoundtrip, string file...
    method RunWithOutput (line 140) | async Task RunWithOutput(string dir, string fileToRoundtrip, LanguageV...
    method RunOnly (line 148) | async Task RunOnly(string dir, string fileToRoundtrip, LanguageVersion...
    method RunInternal (line 153) | async Task RunInternal(string dir, string fileToRoundtrip, Action<stri...
    method ClearDirectory (line 222) | static void ClearDirectory(string dir)
    method Compile (line 248) | static async Task Compile(string projectFile, string outputDir)
    method RunTest (line 278) | static async Task RunTest(string outputDir, string fileToTest)
    class TestProjectDecompiler (line 291) | class TestProjectDecompiler : WholeProjectDecompiler
      method TestProjectDecompiler (line 293) | public TestProjectDecompiler(Guid projectGuid, IAssemblyResolver res...
    class CompilationFailedException (line 299) | class CompilationFailedException : Exception
      method CompilationFailedException (line 301) | public CompilationFailedException(string message) : base(message)
    class TestRunFailedException (line 306) | class TestRunFailedException : Exception
      method TestRunFailedException (line 308) | public TestRunFailedException(string message) : base(message)

FILE: ICSharpCode.Decompiler.Tests/Semantics/ConversionTests.cs
  class ConversionTest (line 40) | [TestFixture, Parallelizable(ParallelScope.All)]
    class Null (line 46) | public sealed class Null { }
    class Dynamic (line 51) | public sealed class Dynamic { }
    class NInt (line 56) | public sealed class NInt { }
    class NUInt (line 61) | public sealed class NUInt { }
    method SetUp (line 66) | [OneTimeSetUp]
    class ReplaceSpecialTypesVisitor (line 75) | public class ReplaceSpecialTypesVisitor : TypeVisitor
      method VisitTypeDefinition (line 77) | public override IType VisitTypeDefinition(ITypeDefinition type)
    method ImplicitConversion (line 95) | Conversion ImplicitConversion(Type from, Type to)
    method ExplicitConversion (line 102) | Conversion ExplicitConversion(Type from, Type to)
    method IdentityConversions (line 109) | [Test]
    method DynamicIdentityConversions (line 122) | [Test]
    method ComplexDynamicIdentityConversions (line 129) | [Test]
    method TupleIdentityConversions (line 142) | [Test]
    method TupleConversions (line 156) | [Test]
    method PrimitiveConversions (line 166) | [Test]
    method EnumerationConversion (line 181) | [Test]
    method NullableConversions (line 191) | [Test]
    method NullableConversions2 (line 204) | [Test]
    method NullableEnumerationConversion (line 217) | [Test]
    method NullLiteralConversions (line 227) | [Test]
    method SimpleReferenceConversions (line 239) | [Test]
    method ConversionToDynamic (line 250) | [Test]
    method ConversionFromDynamic (line 257) | [Test]
    method ParameterizedTypeConversions (line 271) | [Test]
    method ArrayConversions (line 280) | [Test]
    method VarianceConversions (line 298) | [Test]
    method ImplicitPointerConversion (line 319) | [Test]
    method NoConversionFromPointerTypeToObject (line 326) | [Test]
    method ConversionToNInt (line 333) | [Test]
    method ConversionToNUInt (line 355) | [Test]
    method ConversionFromNInt (line 377) | [Test]
    method ConversionFromNUInt (line 400) | [Test]
    method NIntEnumConversion (line 423) | [Test]
    method IntegerLiteralToNIntConversions (line 433) | [Test]
    method IntegerLiteralToNUIntConversions (line 442) | [Test]
    method UnconstrainedTypeParameter (line 451) | [Test]
    method TypeParameterWithReferenceTypeConstraint (line 470) | [Test]
    method TypeParameterWithValueTypeConstraint (line 481) | [Test]
    method TypeParameterWithClassConstraint (line 492) | [Test]
    method TypeParameterWithInterfaceConstraint (line 508) | [Test]
    method UserDefinedImplicitConversion (line 522) | [Test]
    method UserDefinedImplicitNullableConversion (line 543) | [Test]
    method IntegerLiteralConversion (line 558) | bool IntegerLiteralConversion(object value, Type to)
    method IntegerLiteralToEnumConversions (line 566) | [Test]
    method ImplicitConstantExpressionConversion (line 576) | [Test]
    method ImplicitLongConstantExpressionConversion (line 592) | [Test]
    method ImplicitConstantExpressionConversionToNullable (line 604) | [Test]
    method ImplicitConstantExpressionConversionNumberInterfaces (line 627) | [Test]
    method BetterConversion (line 636) | int BetterConversion(Type s, Type t1, Type t2)
    method BetterConversion (line 644) | int BetterConversion(object value, Type t1, Type t2)
    method BetterConversion (line 653) | [Test]
    method BetterPrimitiveConversion (line 661) | [Test]
    method BetterNullableConversion (line 676) | [Test]

FILE: ICSharpCode.Decompiler.Tests/Semantics/ExplicitConversionTest.cs
  class ExplicitConversionsTest (line 35) | [TestFixture, Parallelizable(ParallelScope.All)]
    method SetUp (line 41) | [OneTimeSetUp]
    method ExplicitConversion (line 50) | Conversion ExplicitConversion(Type from, Type to)
    method PointerConversion (line 57) | [Test]
    method ConversionFromDynamic (line 67) | [Test]
    method NumericConversions (line 80) | [Test]
    method EnumerationConversions (line 98) | [Test]
    method NullableConversion_BasedOnIdentityConversion (line 112) | [Test]
    method NullableConversion_BasedOnImplicitNumericConversion (line 120) | [Test]
    method NullableConversion_BasedOnImplicitEnumerationConversion (line 128) | [Test]
    method NullableConversion_BasedOnExplicitNumericConversion (line 137) | [Test]
    method NullableConversion_BasedOnExplicitEnumerationConversion (line 145) | [Test]
    method ExplicitReferenceConversion_SealedClass (line 162) | [Test]
    method ExplicitReferenceConversion_NonSealedClass (line 174) | [Test]
    method ExplicitReferenceConversion_Interfaces (line 190) | [Test]
    method ExplicitReferenceConversion_Arrays (line 200) | [Test]
    method ExplicitReferenceConversion_InterfaceToArray (line 211) | [Test]
    method ExplicitReferenceConversion_ArrayToInterface (line 224) | [Test]
    method ExplicitReferenceConversion_Delegates (line 237) | [Test]
    method ExplicitReferenceConversion_GenericDelegates (line 246) | [Test]
    method UnboxingConversion (line 265) | [Test]
    method LiftedUnboxingConversion (line 277) | [Test]

FILE: ICSharpCode.Decompiler.Tests/Semantics/OverloadResolutionTests.cs
  class OverloadResolutionTests (line 34) | [TestFixture, Parallelizable(ParallelScope.All)]
    method SetUp (line 39) | [OneTimeSetUp]
    method MakeArgumentList (line 47) | ResolveResult[] MakeArgumentList(params Type[] argumentTypes)
    method MakeMethod (line 52) | IMethod MakeMethod(params object[] parameterTypesOrDefaultValues)
    method MakeParamsMethod (line 73) | IMethod MakeParamsMethod(params object[] parameterTypesOrDefaultValues)
    method PreferIntOverUInt (line 84) | [Test]
    method PreferUIntOverLong_FromIntLiteral (line 95) | [Test]
    method NullableIntAndNullableUIntIsAmbiguous (line 107) | [Test]
    method ParamsMethodMatchesEmptyArgumentList (line 121) | [Test]
    method ParamsMethodMatchesOneArgumentInExpandedForm (line 129) | [Test]
    method ParamsMethodMatchesInUnexpandedForm (line 137) | [Test]
    method LessArgumentsPassedToParamsIsBetter (line 145) | [Test]
    method CallInvalidParamsDeclaration (line 155) | [Test]
    method PreferMethodWithoutOptionalParameters (line 163) | [Test]
    method SkeetEvilOverloadResolution (line 176) | [Test]
    class SkeetEvilOverloadResolutionTestCase (line 207) | class SkeetEvilOverloadResolutionTestCase
      class ClassConstraint (line 209) | class ClassConstraint<T> where T : class { }
      method Foo (line 210) | static void Foo<T>(T? ignored = default(T?)) where T : struct { }
      method Foo (line 211) | static void Foo<T>(ClassConstraint<T> ignored = default(ClassConstra...
      method Foo (line 212) | static void Foo<T>() { }
    class MockLambda (line 218) | class MockLambda : LambdaResolveResult
      method MockLambda (line 223) | public MockLambda(IType returnType)
      method IsValid (line 232) | public override Conversion IsValid(IType[] parameterTypes, IType ret...
      method GetInferredReturnType (line 261) | public override IType GetInferredReturnType(IType[] parameterTypes)
    method BetterConversionByLambdaReturnValue (line 267) | [Test]
    method BetterConversionByLambdaReturnValue_ExpressionTree (line 285) | [Test]
    method Lambda_DelegateAndExpressionTreeOverloadsAreAmbiguous (line 303) | [Test]
    method BetterFunctionMemberIsNotTransitive (line 320) | [Test, Ignore("Overload Resolution bug")]
    class BetterFunctionMemberIsNotTransitiveTestCase (line 338) | class BetterFunctionMemberIsNotTransitiveTestCase
      method Method (line 340) | static void Method(Action<string> a) { }
      method Method (line 341) | static void Method<T>(Func<string, T> a) { }
      method Method (line 342) | static void Method(Action<object> a) { }
      method Method (line 343) | static void Method<T>(Func<object, T> a) { }
      method Main (line 345) | public static void Main(string[] args)

FILE: ICSharpCode.Decompiler.Tests/TestAssemblyResolver.cs
  class TestAssemblyResolver (line 11) | sealed class TestAssemblyResolver : UniversalAssemblyResolver
    method TestAssemblyResolver (line 15) | public TestAssemblyResolver(string mainAssemblyFileName, string baseDi...
    method IsGacAssembly (line 25) | public override bool IsGacAssembly(IAssemblyReference reference)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/Async.cs
  class Async (line 28) | public class Async
    method Main (line 30) | public static void Main()
    method Run (line 35) | public async Task Run()
    method SimpleBoolTaskMethod (line 84) | public async Task<bool> SimpleBoolTaskMethod()
    method StreamCopyTo (line 92) | public async void StreamCopyTo(Stream destination, int bufferSize)
    method StreamCopyToWithConfigureAwait (line 107) | public async void StreamCopyToWithConfigureAwait(Stream destination, i...
    method AwaitInForEach (line 122) | public async Task<int> AwaitInForEach(IEnumerable<Task<int>> elements)
    method TaskMethodWithoutAwaitButWithExceptionHandling (line 136) | public async Task TaskMethodWithoutAwaitButWithExceptionHandling()
    method AwaitCatch (line 152) | public async Task AwaitCatch(Task<int> task)
    method AwaitMultipleCatchBlocks (line 165) | public async Task AwaitMultipleCatchBlocks(Task<int> task)
    method AwaitMultipleCatchBlocks2 (line 183) | public async Task AwaitMultipleCatchBlocks2(Task<int> task)
    method AwaitFinally (line 205) | public async Task AwaitFinally(Task<int> task)
    method NestedAwait (line 219) | public async Task<int> NestedAwait(Task<Task<int>> task)
    method AwaitWithStack (line 224) | public async Task AwaitWithStack(Task<int> task)
    method AwaitWithStack2 (line 229) | public async Task AwaitWithStack2(Task<int> task)
    method AwaitInCatch (line 243) | public async Task AwaitInCatch(Task<int> task1, Task<int> task2)
    method AwaitInFinally (line 260) | public async Task AwaitInFinally(Task<int> task1, Task<int> task2)
    method AwaitInComplexFinally (line 277) | public static async Task<int> AwaitInComplexFinally()
    method AwaitInCatchAndFinally (line 313) | public async Task AwaitInCatchAndFinally(Task<int> task1, Task<int> ta...
    method AwaitInFinallyInUsing (line 336) | public async Task<int> AwaitInFinallyInUsing(Task<IDisposable> task1, ...

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/Capturing.cs
  class Capturing (line 7) | class Capturing
    method Main (line 9) | static void Main(string[] args)
    method TestCase1 (line 25) | static void TestCase1()
    method TestCase2 (line 45) | static void TestCase2()
    method TestCase3 (line 63) | static void TestCase3()
    method TestCase4 (line 81) | static void TestCase4(string capture)
    method ReadLine (line 91) | private static bool ReadLine(out string line, ref int v)
    method OutsideLoop (line 97) | static void OutsideLoop()
    method InsideLoop (line 119) | static void InsideLoop()
    method OutsideLoopOverArray (line 138) | static void OutsideLoopOverArray()
    method OutsideLoopOverArray2 (line 157) | static void OutsideLoopOverArray2()
    method InsideLoopOverArray2 (line 177) | static void InsideLoopOverArray2()
    method GetVal (line 196) | static int GetVal()
    method NotWhileDueToVariableInsideLoop (line 201) | static void NotWhileDueToVariableInsideLoop()
    method NotDoWhileDueToVariableInsideLoop (line 218) | static void NotDoWhileDueToVariableInsideLoop()
    method Issue1936 (line 235) | public static void Issue1936()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/ComInterop.cs
  class ComInterop (line 6) | public class ComInterop
    method Main (line 8) | public static void Main()
    type IMixedPropsAndMethods (line 19) | [Guid("761618B8-3994-449A-A96B-F1FF2795EA85")]
      method MyMethod1 (line 24) | int MyMethod1();
      method MyOverload (line 27) | int MyOverload();
      method MyMethod2 (line 29) | int MyMethod2();
      method MyOverload (line 33) | int MyOverload(int x);
      method MyMethod3 (line 37) | int MyMethod3();

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/Comparisons.cs
  class Comparisons (line 26) | public class Comparisons
    method Main (line 28) | public static int Main()
    method TestFloatOp (line 58) | static void TestFloatOp(string name, Func<float, float, bool> f)
    method Id (line 74) | static T Id<T>(T arg)
    method TestUShort (line 79) | static void TestUShort(ushort i)
    method TestUInt (line 87) | static void TestUInt(uint i)
    method Issue2398 (line 95) | static void Issue2398(long value)
    method IsNull (line 101) | static bool IsNull(OverloadedOperators oo)
    method IsNotNull (line 106) | static bool IsNotNull(OverloadedOperators oo)
    method NullIs (line 111) | static bool NullIs(OverloadedOperators oo)
    method NullIsNot (line 116) | static bool NullIsNot(OverloadedOperators oo)
  class OverloadedOperators (line 124) | class OverloadedOperators

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/CompoundAssignment.cs
  class CompoundAssignment (line 24) | class CompoundAssignment
    method Main (line 26) | static void Main()
    method Test (line 38) | static void Test(int a, int b)
    method X (line 45) | static int X()
    method GetDict (line 119) | public static Dictionary<string, int> GetDict()
    method GetObject (line 125) | static CompoundAssignment GetObject()
    method GetString (line 132) | static string GetString()
    method PreIncrementProperty (line 138) | static void PreIncrementProperty()
    method PreIncrementIndexer (line 145) | static void PreIncrementIndexer()
    method CallTwice (line 151) | static void CallTwice()
    method UnsignedShiftRightInstanceField (line 164) | static void UnsignedShiftRightInstanceField()
    method UnsignedShiftRightStaticProperty (line 172) | static void UnsignedShiftRightStaticProperty()
    method DivideByBigValue (line 185) | static void DivideByBigValue()
    method Overflow (line 199) | static void Overflow()
    method Id (line 226) | static T Id<T>(T val)
    method IntPtr_CompoundAssign (line 231) | static void IntPtr_CompoundAssign()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/ConditionalAttr.cs
  class ConditionalAttr (line 8) | class ConditionalAttr
    method Print (line 10) | [Conditional("PRINT")]
    method Main (line 16) | static void Main()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/ControlFlow.cs
  class ControlFlow (line 24) | class ControlFlow
    method Main (line 26) | public static int Main()
    method EmptyIf (line 48) | static void EmptyIf(string input, ref int result)
    method NormalIf (line 57) | static void NormalIf(string input, ref int result)
    method NormalIf2 (line 71) | static void NormalIf2(string input, ref int result)
    method NormalIf3 (line 81) | static void NormalIf3(string input, ref int result)
    method Test (line 94) | static void Test(string input, ref int result)
    method Dim2Search (line 111) | int Dim2Search(int arg)
    method ForeachWithAssignment (line 128) | static void ForeachWithAssignment(IEnumerable<int> inputs)
    method BreakUnlessContinue (line 140) | static void BreakUnlessContinue(bool b)
    method TestConditionals (line 159) | static void TestConditionals()
    method CastAfterConditional (line 165) | static byte CastAfterConditional(int value)
    method Issue1946 (line 171) | static string Issue1946()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/Conversions.cs
  class Conversions (line 28) | public class Conversions
    method Main (line 108) | static void Main(string[] args)
    method RunTest (line 120) | static void RunTest(bool checkForOverflow)
    method MM (line 143) | static object MM(sbyte c)
    method ReadZeroTerminatedString (line 151) | static string ReadZeroTerminatedString(int length)
    method ReadBytes (line 168) | static byte[] ReadBytes(int length)
  class C1 (line 174) | class C1
    method Test (line 181) | public static void Test()
    method ExplicitUseOfImplicitConversion (line 188) | static void ExplicitUseOfImplicitConversion(C1 c)
    method ChainedImplicitConversions (line 193) | static Type ChainedImplicitConversions(C2 c)
  class C2 (line 199) | class C2
  class C3 (line 208) | class C3
    type MyArray (line 210) | [InlineArray(4)] struct MyArray { private int elem; }
    method Foo (line 212) | static void Foo(object o)
    method Foo (line 217) | static void Foo(ReadOnlySpan<int> o)
    method Test (line 222) | static void Test(MyArray arr)
    method Run (line 227) | public static void Run()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/DecimalFields.cs
  class DecimalFields (line 26) | public class DecimalFields
    method Main (line 33) | public static int Main()
    method IntToDecimal (line 46) | public static decimal IntToDecimal()
    method UIntToDecimal (line 51) | public static decimal UIntToDecimal()
    method LongToDecimal (line 56) | public static decimal LongToDecimal()
    method ULongToDecimal (line 61) | public static decimal ULongToDecimal()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/DeconstructionTests.cs
  class DeconstructionTests (line 9) | class DeconstructionTests
    method Main (line 11) | public static void Main()
    type MyInt (line 16) | public struct MyInt
    class DeconstructionSource (line 31) | private class DeconstructionSource<T, T2>
      method Deconstruct (line 38) | public void Deconstruct(out T a, out T2 b)
    class AssignmentTargets (line 46) | private class AssignmentTargets
      method AssignmentTargets (line 50) | public AssignmentTargets(int id)
    method GetSource (line 104) | private DeconstructionSource<T, T2> GetSource<T, T2>()
    method GetTuple (line 110) | private (T, T2) GetTuple<T, T2>()
    method GetTuple (line 116) | private (T, T2, T3) GetTuple<T, T2, T3>()
    method Get (line 122) | private AssignmentTargets Get(int i)
    method Test (line 128) | public void Test()
    method Property_NoDeconstruction_SwappedAssignments (line 142) | public void Property_NoDeconstruction_SwappedAssignments()
    method Property_NoDeconstruction_SwappedInits (line 152) | public void Property_NoDeconstruction_SwappedInits()
    method Property_IntToUIntConversion (line 159) | public void Property_IntToUIntConversion()
    method NoDeconstruction_NotUsingConver (line 171) | public void NoDeconstruction_NotUsingConver()
    method NoDeconstruction_NotUsingConver_Tuple (line 184) | public void NoDeconstruction_NotUsingConver_Tuple()
    method NullReferenceException_Field_Deconstruction (line 195) | public void NullReferenceException_Field_Deconstruction(out int a)
    method NullReferenceException_RefLocalReferencesField_Deconstruction (line 209) | public void NullReferenceException_RefLocalReferencesField_Deconstruct...
    method NullReferenceException_RefLocalReferencesArrayElement_Deconstruction (line 224) | public void NullReferenceException_RefLocalReferencesArrayElement_Deco...
    method DeconstructTupleSameVar (line 238) | public void DeconstructTupleSameVar((string, string) tuple)
    method DeconstructTupleListForEachSameVar (line 247) | public void DeconstructTupleListForEachSameVar(List<(string, string)> ...

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/DynamicTests.cs
  class DynamicTests (line 5) | class DynamicTests
    method Main (line 9) | static void Main(string[] args)
    method PrintResult (line 29) | private static void PrintResult(RefAction<dynamic> p, dynamic arg)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/ExpressionTrees.cs
  class ExpressionTrees (line 24) | class ExpressionTrees
    method Main (line 26) | static void Main()
    method Test (line 33) | static void Test()
    method GetExpression (line 41) | static Expression<Func<int, int>> GetExpression(Expression factor)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/FloatingPointArithmetic.cs
  class FloatingPointArithmetic (line 5) | class FloatingPointArithmetic
    method Main (line 7) | public static int Main(string[] args)
    method Issue999 (line 15) | static void Issue999()
    method M (line 21) | static float M(float v)
    method Issue1656 (line 26) | static void Issue1656()
    method Issue1794 (line 35) | static void Issue1794()
    method CastUnsignedToFloat (line 54) | static float CastUnsignedToFloat(ulong val)
    method CastUnsignedToDouble (line 59) | static double CastUnsignedToDouble(ulong val)
    method CastUnsignedToFloatViaDouble (line 64) | static float CastUnsignedToFloatViaDouble(ulong val)
    method CastSignedToFloat (line 70) | static float CastSignedToFloat(long val)
    method CastSignedToDouble (line 75) | static double CastSignedToDouble(long val)
    method CastSignedToFloatViaDouble (line 80) | static float CastSignedToFloatViaDouble(long val)
    method ImplicitCastSignedToFloat (line 86) | static float ImplicitCastSignedToFloat(long val)
    method CxAssert (line 91) | static void CxAssert(bool v)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/Generics.cs
  class Generics (line 26) | public class Generics
    method Main (line 28) | public static void Main()
    method TestGenericReturn (line 36) | public static T TestGenericReturn<T>()
    method TestGenericParam (line 41) | public static void TestGenericParam<T>()
    method TestGenericParam (line 46) | public static void TestGenericParam<T1, T2>()
  class GenericClass (line 52) | class GenericClass<T>
    method M (line 54) | public void M(out GenericClass<T> self)
  class BaseClass (line 60) | public abstract class BaseClass
    method Method1 (line 62) | protected abstract void Method1<T>(T test);
    method Method1 (line 78) | protected abstract void Method1();
  class DerivedClass (line 65) | public class DerivedClass : BaseClass
    method Method1 (line 67) | protected override void Method1<T>(T test) { }
    method Method2 (line 69) | private void Method2()
    method Method1 (line 83) | protected override void Method1() { }
    method Method2 (line 85) | private void Method2()
  class BaseClass (line 76) | internal abstract class BaseClass<T>
    method Method1 (line 62) | protected abstract void Method1<T>(T test);
    method Method1 (line 78) | protected abstract void Method1();
  class DerivedClass (line 81) | internal class DerivedClass<T> : BaseClass<T>
    method Method1 (line 67) | protected override void Method1<T>(T test) { }
    method Method2 (line 69) | private void Method2()
    method Method1 (line 83) | protected override void Method1() { }
    method Method2 (line 85) | private void Method2()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/HelloWorld.cs
  class HelloWorld (line 23) | class HelloWorld
    method Main (line 25) | public static int Main(string[] args)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/InitializerTests.cs
  class InitializerTests (line 27) | public class InitializerTests
    method Main (line 29) | public static int Main()
    type MyEnum (line 40) | private enum MyEnum
    type MyEnum2 (line 46) | private enum MyEnum2
    class Data (line 52) | private class Data
    type StructData (line 93) | private struct StructData
      method StructData (line 106) | public StructData(int initialValue)
    method X (line 115) | private static void X(object a, object b)
    method Y (line 119) | private static object Y()
    method CollectionInitializerList (line 124) | public static void CollectionInitializerList()
    method RecursiveCollectionInitializer (line 134) | public static object RecursiveCollectionInitializer()
    method CollectionInitializerDictionary (line 141) | public static void CollectionInitializerDictionary()
    method CollectionInitializerDictionaryWithEnumTypes (line 160) | public static void CollectionInitializerDictionaryWithEnumTypes()
    method NotACollectionInitializer (line 175) | public static void NotACollectionInitializer()
    method ObjectInitializer (line 184) | public static void ObjectInitializer()
    method NotAnObjectInitializer (line 191) | public static void NotAnObjectInitializer()
    method ObjectInitializerAssignCollectionToField (line 198) | public static void ObjectInitializerAssignCollectionToField()
    method ObjectInitializerAddToCollectionInField (line 210) | public static void ObjectInitializerAddToCollectionInField()
    method ObjectInitializerAssignCollectionToProperty (line 222) | public static void ObjectInitializerAssignCollectionToProperty()
    method ObjectInitializerAddToCollectionInProperty (line 234) | public static void ObjectInitializerAddToCollectionInProperty()
    method ObjectInitializerWithInitializationOfNestedObjects (line 246) | public static void ObjectInitializerWithInitializationOfNestedObjects()
    method GetInt (line 259) | static int GetInt()
    method GetString (line 264) | static string GetString()
    method SimpleDictInitializer (line 270) | public static void SimpleDictInitializer()
    method MixedObjectAndDictInitializer (line 281) | public static void MixedObjectAndDictInitializer()
    method ObjectInitializerWithInitializationOfDeeplyNestedObjects (line 298) | public static void ObjectInitializerWithInitializationOfDeeplyNestedOb...
    method CollectionInitializerInsideObjectInitializers (line 310) | public static void CollectionInitializerInsideObjectInitializers()
    method StructInitializer_DefaultConstructor (line 321) | public static void StructInitializer_DefaultConstructor()
    method StructInitializer_ExplicitConstructor (line 329) | public static void StructInitializer_ExplicitConstructor()
    method StructInitializerWithInitializationOfNestedObjects (line 337) | public static void StructInitializerWithInitializationOfNestedObjects()
    method StructInitializerWithinObjectInitializer (line 352) | public static void StructInitializerWithinObjectInitializer()
    method Bug270_NestedInitialisers (line 362) | public static void Bug270_NestedInitialisers()
    class Issue2622a (line 379) | class Issue2622a
      class C (line 381) | public class C
        method M (line 383) | public ServiceHost M()
      class EWSService (line 391) | class EWSService { }
      class ServiceHost (line 393) | public class ServiceHost
        method ServiceHost (line 395) | public ServiceHost(Type type, object x) { }
      class Descr (line 400) | public class Descr
      class EP (line 405) | public class EP
      class Beh (line 410) | public abstract class Beh { }
      class EwsWebHttpBehavior (line 412) | public class EwsWebHttpBehavior : Beh { }
    class Issue855 (line 416) | class Issue855
      class Data (line 418) | class Data
      class Items (line 423) | class Items
        method SetItem (line 425) | public void SetItem(int i, object item) { }
      method Item (line 428) | object Item(string s, Data d)
      method Test (line 433) | void Test()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/LINQRaytracer.cs
  class RayTracer (line 9) | public class RayTracer
    method Main (line 11) | static void Main()
    method RayTracer (line 28) | public RayTracer(int screenWidth, int screenHeight, Action<int, int, C...
    class Wrap (line 35) | private class Wrap<T>
      method Wrap (line 38) | public Wrap(Func<Wrap<T>, T> it) { It = it; }
    method Y (line 41) | public static Func<T, U> Y<T, U>(Func<Func<T, U>, Func<T, U>> f)
    class TraceRayArgs (line 47) | class TraceRayArgs
      method TraceRayArgs (line 53) | public TraceRayArgs(Ray ray, Scene scene, int depth) { Ray = ray; Sc...
    method Render (line 56) | internal void Render(Scene scene)
  class Surfaces (line 163) | static class Surfaces
  class Vector (line 187) | class Vector
    method Vector (line 193) | public Vector(double x, double y, double z) { X = x; Y = y; Z = z; }
    method Make (line 195) | public static Vector Make(double x, double y, double z) { return new V...
    method Times (line 196) | public static Vector Times(double n, Vector v)
    method Minus (line 200) | public static Vector Minus(Vector v1, Vector v2)
    method Plus (line 204) | public static Vector Plus(Vector v1, Vector v2)
    method Dot (line 208) | public static double Dot(Vector v1, Vector v2)
    method Mag (line 212) | public static double Mag(Vector v) { return Math.Sqrt(Dot(v, v)); }
    method Norm (line 213) | public static Vector Norm(Vector v)
    method Cross (line 219) | public static Vector Cross(Vector v1, Vector v2)
    method Equals (line 225) | public static bool Equals(Vector v1, Vector v2)
  class Color (line 231) | public class Color
    method Color (line 237) | public Color(double r, double g, double b) { R = r; G = g; B = b; }
    method Make (line 239) | public static Color Make(double r, double g, double b) { return new Co...
    method Times (line 241) | public static Color Times(double n, Color v)
    method Times (line 245) | public static Color Times(Color v1, Color v2)
    method Plus (line 250) | public static Color Plus(Color v1, Color v2)
    method Minus (line 254) | public static Color Minus(Color v1, Color v2)
    method Legalize (line 262) | private double Legalize(double d)
    method ToString (line 267) | public override string ToString()
  class Ray (line 273) | class Ray
  class ISect (line 279) | class ISect
  class Surface (line 286) | class Surface
  class Camera (line 294) | class Camera
    method Create (line 301) | public static Camera Create(Vector pos, Vector lookAt)
  class Light (line 312) | class Light
  class SceneObject (line 318) | abstract class SceneObject
    method Intersect (line 321) | public abstract ISect Intersect(Ray ray);
    method Normal (line 322) | public abstract Vector Normal(Vector pos);
  class Sphere (line 325) | class Sphere : SceneObject
    method Intersect (line 330) | public override ISect Intersect(Ray ray)
    method Normal (line 353) | public override Vector Normal(Vector pos)
  class Plane (line 359) | class Plane : SceneObject
    method Intersect (line 364) | public override ISect Intersect(Ray ray)
    method Normal (line 376) | public override Vector Normal(Vector pos)
  class Scene (line 382) | class Scene
    method Intersect (line 388) | public IEnumerable<ISect> Intersect(Ray r)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/Loops.cs
  class Loops (line 25) | class Loops
    class CustomClassEnumeratorWithIDisposable (line 27) | public class CustomClassEnumeratorWithIDisposable<T> : IDisposable
      method Dispose (line 37) | public void Dispose()
      method MoveNext (line 42) | public bool MoveNext()
      method GetEnumerator (line 52) | public CustomClassEnumeratorWithIDisposable<T> GetEnumerator()
    method Operation (line 58) | static void Operation(ref int item)
    method CallWithSideEffect (line 63) | static T CallWithSideEffect<T>()
    method Main (line 69) | static void Main()
    method ForWithMultipleVariables (line 87) | public static void ForWithMultipleVariables()
    method DoubleForEachWithSameVariable (line 99) | public static void DoubleForEachWithSameVariable(IEnumerable<string> e...
    method ForeachExceptForNameCollision (line 114) | public static void ForeachExceptForNameCollision(IEnumerable<int> inputs)
    method ForeachExceptForContinuedUse (line 130) | public static void ForeachExceptForContinuedUse(IEnumerable<int> inputs)
    method NonGenericForeachWithReturnFallbackTest (line 145) | public static void NonGenericForeachWithReturnFallbackTest(IEnumerable e)
    method NonGenericForeachWithReturn (line 169) | public static object NonGenericForeachWithReturn(IEnumerable enumerable)
    method ForeachWithReturn (line 182) | public static int? ForeachWithReturn(IEnumerable<int> enumerable)
    method ForeachWithRefUsage (line 195) | public static void ForeachWithRefUsage(List<int> items)
    method FirstOrDefault (line 207) | public static T FirstOrDefault<T>(IEnumerable<T> items)
    method NoForeachDueToMultipleCurrentAccess (line 218) | public static T NoForeachDueToMultipleCurrentAccess<T>(IEnumerable<T> ...
    method NoForeachCallWithSideEffect (line 233) | public static T NoForeachCallWithSideEffect<T>(CustomClassEnumeratorWi...
    method GetBool (line 246) | static bool GetBool(string text)
    method LoopWithGotoRepeat (line 252) | static void LoopWithGotoRepeat()
    method LoopFollowedByIf (line 279) | private static int LoopFollowedByIf()
    method Issue1392ForWithNestedSwitchPlusGoto (line 293) | static void Issue1392ForWithNestedSwitchPlusGoto()
    method NoForeachDueToVariableAssignment (line 313) | private static void NoForeachDueToVariableAssignment()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/MemberLookup.cs
  class MemberLookup (line 23) | public class MemberLookup
    method Main (line 27) | public static int Main()
    class Base1 (line 36) | class Base1
      method TestMethod (line 40) | protected virtual void TestMethod()
      method TestAction (line 47) | public void TestAction()
    class Child1 (line 61) | class Child1 : Base1
      method Test (line 66) | public static void Test()
      method TestMethod (line 78) | protected override void TestMethod()
      method TestAction (line 90) | new public void TestAction()
    class Child2 (line 104) | class Child2 : Base1
      method CallTestMethod (line 106) | public void CallTestMethod()
    class Child2b (line 115) | class Child2b : Child2
      method TestMethod (line 117) | protected override void TestMethod()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/MiniJSON.cs
  class MiniJSONTest (line 12) | public class MiniJSONTest
    method Main (line 14) | public static void Main(string[] args)
  class Json (line 40) | public static class Json
    method Deserialize (line 47) | public static object Deserialize(string json)
    class Parser (line 58) | sealed class Parser : IDisposable
      method IsWordBreak (line 62) | public static bool IsWordBreak(char c)
      method IsHexDigit (line 69) | public static bool IsHexDigit(char c)
      type TOKEN (line 74) | enum TOKEN
      method Parser (line 92) | Parser(string jsonString)
      method Parse (line 97) | public static object Parse(string jsonString)
      method Dispose (line 105) | public void Dispose()
      method ParseObject (line 111) | Dictionary<string, object> ParseObject()
      method ParseArray (line 158) | List<object> ParseArray()
      method ParseValue (line 192) | object ParseValue()
      method ParseByToken (line 198) | object ParseByToken(TOKEN token)
      method ParseString (line 221) | string ParseString()
      method ParseNumber (line 298) | object ParseNumber()
      method EatWhitespace (line 314) | void EatWhitespace()
    method Serialize (line 419) | public static string Serialize(object obj)
    class Serializer (line 424) | sealed class Serializer
      method Serializer (line 428) | Serializer()
      method Serialize (line 433) | public static string Serialize(object obj)
      method SerializeValue (line 442) | void SerializeValue(object value)
      method SerializeObject (line 478) | void SerializeObject(IDictionary obj)
      method SerializeArray (line 502) | void SerializeArray(IList anArray)
      method SerializeString (line 524) | void SerializeString(string str)
      method SerializeOther (line 573) | void SerializeOther(object value)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/NullPropagation.cs
  class NullPropagation (line 5) | class NullPropagation
    method Main (line 7) | static void Main()
    class MyClass (line 12) | class MyClass
    method TestNotCoalescing (line 17) | void TestNotCoalescing()
    method NotCoalescing (line 24) | string NotCoalescing(MyClass c)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/NullableTests.cs
  class NullableTests (line 23) | class NullableTests
    method Main (line 25) | static void Main()
    type SomeStruct (line 34) | struct SomeStruct
    method AvoidLifting (line 39) | static void AvoidLifting()
    method MayThrow (line 54) | static int? MayThrow(int? a, int? b, int? c)
    method NotUsingAllInputs (line 60) | static int? NotUsingAllInputs(int? a, int? b)
    method UsingUntestedValue (line 66) | static int? UsingUntestedValue(int? a, int? b)
    method BitNot (line 72) | static void BitNot()
    method Assert (line 88) | static void Assert(bool b)
    method GetValue (line 94) | static T GetValue<T>()
    method FieldAccessOrderOfEvaluation (line 102) | static void FieldAccessOrderOfEvaluation(NullableTests c)
    method FieldAccessOrderOfEvaluationWithStruct (line 129) | static void FieldAccessOrderOfEvaluationWithStruct(NullableTests c)
    method GetArray (line 154) | static T[] GetArray<T>()
    method GetIndex (line 160) | static int GetIndex()
    method ArrayAccessOrderOfEvaluation (line 166) | static void ArrayAccessOrderOfEvaluation()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/OverloadResolution.cs
  class OverloadResolution (line 23) | static class OverloadResolution
    method Main (line 25) | static void Main()
    method ConstructorTest (line 49) | static void ConstructorTest()
    class CtorTestObj (line 57) | class CtorTestObj
      method CtorTestObj (line 59) | public CtorTestObj(int i)
      method CtorTestObj (line 64) | public CtorTestObj(short s)
      method CtorTestObj (line 69) | public CtorTestObj(int i, object item1, object item2)
      method CtorTestObj (line 75) | public CtorTestObj(int i, params object[] items)
    method TestParamsMethod (line 83) | static void TestParamsMethod()
    method TestCall (line 91) | static void TestCall(int v, Type p1, NullReferenceException p2)
    method TestCall (line 96) | static void TestCall(int v, params AccessViolationException[] p2)
    method Issue1281 (line 101) | static void Issue1281()
    method TestCallIssue1281 (line 109) | static void TestCallIssue1281(params object[] args)
    method CallOverloadedMethod (line 122) | static void CallOverloadedMethod()
    method OverloadedMethod (line 134) | static void OverloadedMethod(object a)
    method OverloadedMethod (line 139) | static void OverloadedMethod(int? a)
    method OverloadedMethod (line 144) | static void OverloadedMethod(string a)
    method TestBoxing (line 151) | static void TestBoxing()
    method Print (line 158) | static void Print(object obj)
    method TestIssue180 (line 168) | static void TestIssue180()
    method Issue180 (line 175) | static void Issue180(object obj)
    method Issue180 (line 180) | static void Issue180(params object[] objs)
    method TestExtensionMethod (line 187) | static void TestExtensionMethod()
    method ExtensionMethod (line 193) | public static void ExtensionMethod(this object obj)
    method Generics (line 200) | static void Generics()
    method GenericsTest (line 206) | static void GenericsTest<T>(string x) where T : struct
    method GenericsTest (line 211) | static void GenericsTest<T>(object x) where T : struct
    method Issue1747 (line 218) | private static void Issue1747()
    method M1747 (line 232) | private static void M1747(bool b)
    method M1747 (line 237) | private static void M1747(bool? b)
    method Get (line 242) | static T Get<T>()
    method TestIndexer (line 249) | static void TestIndexer()
    method AmbiguousOutParam (line 260) | static void AmbiguousOutParam(out string a)
    method AmbiguousOutParam (line 266) | static void AmbiguousOutParam(out int b)
    method CallAmbiguousOutParam (line 272) | static void CallAmbiguousOutParam()
    method CallWithRefReadOnlyParam (line 284) | static void CallWithRefReadOnlyParam()
    method OverloadSetWithRefReadOnlyParam (line 312) | static void OverloadSetWithRefReadOnlyParam(ref readonly int i)
    method OverloadSetWithRefReadOnlyParam (line 316) | static void OverloadSetWithRefReadOnlyParam(long l)
    method OverloadSetWithRefReadOnlyParam2 (line 320) | static void OverloadSetWithRefReadOnlyParam2(ref readonly long i)
    method OverloadSetWithRefReadOnlyParam2 (line 324) | static void OverloadSetWithRefReadOnlyParam2(object o)
    method OverloadSetWithRefReadOnlyParam3 (line 328) | static void OverloadSetWithRefReadOnlyParam3(ref readonly int i)
    method OverloadSetWithRefReadOnlyParam3 (line 332) | static void OverloadSetWithRefReadOnlyParam3<T>(T a)
    method RefReadOnlyVsRegularParam (line 336) | static void RefReadOnlyVsRegularParam(ref readonly int i)
    method RefReadOnlyVsRegularParam (line 340) | static void RefReadOnlyVsRegularParam(int i)
    method CallWithInParam (line 350) | static void CallWithInParam()
    method OverloadSetWithInParam (line 377) | static void OverloadSetWithInParam(in int i)
    method OverloadSetWithInParam (line 381) | static void OverloadSetWithInParam(long l)
    method OverloadSetWithInParam2 (line 385) | static void OverloadSetWithInParam2(in long i)
    method OverloadSetWithInParam2 (line 389) | static void OverloadSetWithInParam2(object o)
    method OverloadSetWithInParam3 (line 393) | static void OverloadSetWithInParam3(in int i)
    method OverloadSetWithInParam3 (line 397) | static void OverloadSetWithInParam3<T>(T a)
    method InVsRegularParam (line 401) | static void InVsRegularParam(in int i)
    method InVsRegularParam (line 405) | static void InVsRegularParam(int i)
    method NativeIntTests (line 413) | static void NativeIntTests(IntPtr i1, nint i2)
    method ObjectOrLong (line 429) | static void ObjectOrLong(object o)
    method ObjectOrLong (line 434) | static void ObjectOrLong(long l)
    type Issue2444 (line 441) | public struct Issue2444
      class X (line 443) | public class X { }
      class Y (line 444) | public class Y { }
      method M1 (line 458) | public static void M1(Issue2444 z)
      method M2 (line 463) | public static void M2()
    class Issue2741 (line 471) | public class Issue2741
      class B (line 473) | public class B
        method M (line 475) | private void M()
        method M2 (line 480) | protected void M2()
        method M3 (line 485) | protected void M3()
        method M4 (line 490) | protected void M4()
        method Test (line 495) | public static void Test(C c)
      class C (line 503) | public class C : B
        method M (line 505) | public void M()
        method M2 (line 510) | public new void M2()
        method M3 (line 515) | public new void M3()
        method Test (line 520) | public void Test()
  class IndexerTests (line 531) | class IndexerTests
  class StringExtensions (line 558) | public static class StringExtensions
    method TryParseCustom (line 560) | public static bool TryParseCustom(this string input, out int result)
  class StringDoubleExtensions (line 567) | public static class StringDoubleExtensions
    method TryParseCustom (line 569) | public static bool TryParseCustom(this string input, out double result)
  class Issue2165 (line 575) | class Issue2165
    method Test (line 577) | public static void Test()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/PropertiesAndEvents.cs
  class PropertiesAndEvents (line 5) | class PropertiesAndEvents
    method Main (line 7) | public static int Main(string[] args)
  class Index (line 20) | class Index

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/StringConcat.cs
  class StringConcat (line 6) | class StringConcat
    class C (line 8) | private class C
      method C (line 12) | public C(int i)
      method ToString (line 18) | public override string ToString()
    type S (line 25) | private struct S
      method S (line 29) | public S(int i)
      method ToString (line 35) | public override string ToString()
    method Space (line 42) | static string Space()
    method TestClass (line 48) | static void TestClass()
    method TestStruct (line 75) | static void TestStruct()
    method TestStructMutation (line 102) | static void TestStructMutation()
    method TestCharPlusChar (line 111) | static void TestCharPlusChar(string a)
    method TestManualDefaultStringInterpolationHandler (line 119) | static void TestManualDefaultStringInterpolationHandler()
    method M2 (line 128) | static void M2(object x, string y) { }
    method Main (line 131) | static void Main()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/Switch.cs
  class Switch (line 23) | public static class Switch
    method Main (line 25) | public static void Main()
    method TestCase (line 42) | static void TestCase<T>(Func<T, string> target, params T[] args)
    method SparseIntegerSwitch (line 50) | public static string SparseIntegerSwitch(int i)
    method ShortSwitchOverString (line 82) | public static string ShortSwitchOverString(string text)
    method ShortSwitchOverString2 (line 94) | public static string ShortSwitchOverString2(string text)
    method ShortSwitchOverStringNoExplicitDefault (line 110) | public static string ShortSwitchOverStringNoExplicitDefault(string text)
    method SwitchOverString1 (line 125) | public static string SwitchOverString1(string text)
    method SwitchOverString2 (line 150) | public static string SwitchOverString2()
    method SwitchOverBool (line 182) | public static string SwitchOverBool(bool b)
    method SwitchInLoop (line 198) | public static void SwitchInLoop(int i)
    method SwitchWithGoto (line 226) | public static void SwitchWithGoto(int i)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/TrickyTypes.cs
  class TrickyTypes (line 24) | class TrickyTypes
    method Main (line 26) | static void Main()
    method Print (line 36) | static void Print<T>(T val)
    method InterestingConstants (line 45) | static void InterestingConstants()
    method TruncatedComp (line 56) | static void TruncatedComp()
    method TruncatedComp1 (line 83) | static void TruncatedComp1(long val)
    method TruncatedComp2 (line 91) | static void TruncatedComp2(long val1, int val2)
    method StringConcat (line 101) | static void StringConcat()
    method LinqNullableMin (line 109) | static void LinqNullableMin(params int[] arr)
    method UnboxingToWrongType (line 115) | static void UnboxingToWrongType()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/UndocumentedExpressions.cs
  method Main (line 25) | static void Main(string[] args)
  method VarArgs (line 36) | public static void VarArgs(int normalArg, __arglist)
  method VarArgs (line 57) | public static void VarArgs(__arglist)
  method MakeTypedRef (line 62) | public static void MakeTypedRef(object o)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/UnsafeCode.cs
  class UnsafeCode (line 23) | public class UnsafeCode
    type SimpleStruct (line 25) | private struct SimpleStruct
    method Main (line 31) | static void Main()
    method MultipleExitsOutOfFixedBlock (line 37) | public unsafe int MultipleExitsOutOfFixedBlock(int[] arr)
    method FixMultipleStrings (line 54) | public unsafe void FixMultipleStrings(string text)
    method PointerArithmetic2 (line 64) | public unsafe byte* PointerArithmetic2(long* p, int y, int x)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/Using.cs
  class Using (line 23) | class Using
    class PrintOnDispose (line 25) | class PrintOnDispose : IDisposable
      method PrintOnDispose (line 29) | public PrintOnDispose(string v)
      method Dispose (line 34) | public void Dispose()
    method Main (line 40) | static void Main()
    method SimpleUsingNullStatement (line 55) | public static void SimpleUsingNullStatement()
    method NoUsingDueToAssignment (line 68) | public static void NoUsingDueToAssignment()
    method NoUsingDueToAssignment2 (line 81) | public static void NoUsingDueToAssignment2()
    method Clear (line 98) | static void Clear<T>(ref T t)
    method NoUsingDueToByRefCall (line 103) | public static void NoUsingDueToByRefCall()
    method NoUsingDueToContinuedDisposableUse (line 121) | public static void NoUsingDueToContinuedDisposableUse()
    method ContinuedObjectUse (line 140) | public static void ContinuedObjectUse()
    method VariableAlreadyUsedBefore (line 158) | public static void VariableAlreadyUsedBefore()
    method UsingObject (line 178) | public static void UsingObject()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/ValueTypeCall.cs
  type MutValueType (line 6) | public struct MutValueType : IDisposable
    method Increment (line 10) | public void Increment()
    method Dispose (line 16) | public void Dispose()
    method ToString (line 22) | public override string ToString()
  type GenericValueType (line 28) | public struct GenericValueType<T>
    method GenericValueType (line 33) | public GenericValueType(T data)
    method Call (line 39) | public void Call(ref GenericValueType<T> v)
  type ValueTypeWithReadOnlyMember (line 46) | public struct ValueTypeWithReadOnlyMember
    method ValueTypeWithReadOnlyMember (line 50) | public ValueTypeWithReadOnlyMember(int member)
  class ValueTypeCall (line 56) | public class ValueTypeCall
    method Main (line 58) | public static void Main()
    method RefParameter (line 77) | static void RefParameter(ref MutValueType m)
    method ValueParameter (line 83) | static void ValueParameter(MutValueType m)
    method Field (line 92) | static void Field()
    method Box (line 108) | static void Box()
    method BoxToStringCalls (line 123) | static void BoxToStringCalls()
    method InstanceFieldTests (line 135) | void InstanceFieldTests()
    method Using (line 143) | static void Using()
    method Using1 (line 150) | static void Using1()
    method Using2 (line 159) | static void Using2()
    method Using3 (line 174) | static void Using3()
    method ForEach (line 184) | static void ForEach()
    method ForEach1 (line 200) | static void ForEach1(List<MutValueType> list)
    method ForEachArray1 (line 211) | static void ForEachArray1(MutValueType[] list)
    method DisposeMultipleTimes (line 223) | static void DisposeMultipleTimes<T>(ref T mutRef, in T immutableRef) w...
    method ToStringGeneric (line 238) | static void ToStringGeneric<T>(ref T mutRef, in T immutableRef) where ...

FILE: ICSharpCode.Decompiler.Tests/TestCases/Correctness/YieldReturn.cs
  class YieldReturnTest (line 24) | public class YieldReturnTest
    method Main (line 26) | static void Main()
    method Print (line 72) | internal static void Print<T>(string name, IEnumerator<T> enumerator)
    method SimpleYieldReturn (line 91) | public static IEnumerable<string> SimpleYieldReturn()
    method SimpleYieldReturnEnumerator (line 98) | public static IEnumerator<string> SimpleYieldReturnEnumerator()
    method YieldReturnParameters (line 105) | public IEnumerable<int> YieldReturnParameters(int p)
    method YieldReturnParametersEnumerator (line 111) | public IEnumerator<int> YieldReturnParametersEnumerator(int p)
    method YieldReturnInLoop (line 117) | public static IEnumerable<int> YieldReturnInLoop()
    method YieldReturnWithTryFinally (line 125) | public static IEnumerable<int> YieldReturnWithTryFinally()
    method YieldReturnInLock1 (line 139) | public static IEnumerable<int> YieldReturnInLock1(object o)
    method YieldReturnInLock2 (line 147) | public static IEnumerable<int> YieldReturnInLock2(object o)
    method YieldReturnWithNestedTryFinally (line 157) | public static IEnumerable<string> YieldReturnWithNestedTryFinally(bool...
    method YieldReturnWithTwoNonNestedFinallyBlocks (line 198) | public static IEnumerable<string> YieldReturnWithTwoNonNestedFinallyBl...
    method YieldReturnWithAnonymousMethods1 (line 226) | public static IEnumerable<Func<string>> YieldReturnWithAnonymousMethod...
    method YieldReturnWithAnonymousMethods2 (line 234) | public static IEnumerable<Func<string>> YieldReturnWithAnonymousMethod...
    method GetEvenNumbers (line 243) | public static IEnumerable<int> GetEvenNumbers(int n)
    method ExceptionHandling (line 254) | public static IEnumerable<char> ExceptionHandling()
    method YieldBreakInCatch (line 284) | public static IEnumerable<int> YieldBreakInCatch()
    method YieldBreakInCatchInTryFinally (line 299) | public static IEnumerable<int> YieldBreakInCatchInTryFinally()
    method YieldBreakInTryCatchInTryFinally (line 324) | public static IEnumerable<int> YieldBreakInTryCatchInTryFinally()
    method YieldBreakInTryFinallyInTryFinally (line 347) | public static IEnumerable<int> YieldBreakInTryFinallyInTryFinally(bool b)
    method YieldBreakOnly (line 373) | public static IEnumerable<int> YieldBreakOnly()
    method UnconditionalThrowInTryFinally (line 378) | public static IEnumerable<int> UnconditionalThrowInTryFinally()
    method NestedTryFinallyStartingOnSamePosition (line 393) | public static IEnumerable<int> NestedTryFinallyStartingOnSamePosition()
    method TryFinallyWithTwoExitPoints (line 413) | public static IEnumerable<int> TryFinallyWithTwoExitPoints(bool b)
    method YieldBreakInNestedTryFinally (line 441) | public static IEnumerable<int> YieldBreakInNestedTryFinally()
    method TryFinallyWithTwoExitPointsInNestedTry (line 465) | public static IEnumerable<int> TryFinallyWithTwoExitPointsInNestedTry(...
    method TryFinallyWithTwoExitPointsInNestedCatch (line 493) | public static IEnumerable<int> TryFinallyWithTwoExitPointsInNestedCatc...
    method LocalInFinally (line 522) | public static IEnumerable<int> LocalInFinally<T>(T a) where T : IDispo...
    method GenericYield (line 538) | public static IEnumerable<T> GenericYield<T>() where T : new()
  type StructWithYieldReturn (line 548) | struct StructWithYieldReturn
    method Run (line 550) | public static void Run()
    method Count (line 560) | public IEnumerable<int> Count()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/CS1xSwitch_Debug.cs
  class Switch (line 25) | public class Switch
    class SetProperty (line 27) | public class SetProperty
      method SetProperty (line 42) | public SetProperty(PropertyInfo property)
    type State (line 48) | public enum State
    method SparseIntegerSwitch (line 55) | public static string SparseIntegerSwitch(int i)
    method SwitchOverInt (line 87) | public static void SwitchOverInt(int i)
    method ShortSwitchOverString (line 115) | public static string ShortSwitchOverString(string text)
    method ShortSwitchOverStringWithNullCase (line 131) | public static string ShortSwitchOverStringWithNullCase(string text)
    method SwitchOverString1 (line 147) | public static string SwitchOverString1(string text)
    method SwitchOverString2 (line 172) | public static string SwitchOverString2()
    method TwoDifferentSwitchBlocksInTryFinally (line 204) | public static string TwoDifferentSwitchBlocksInTryFinally()
    method SwitchOverBool (line 282) | public static string SwitchOverBool(bool b)
    method SwitchInLoop (line 296) | public static void SwitchInLoop(int i)
    method SwitchWithGoto (line 324) | public static void SwitchWithGoto(int i)
    method GetProperties (line 348) | private static SetProperty[] GetProperties()
    method SwitchOnStringInForLoop (line 353) | public static void SwitchOnStringInForLoop()
    method SwitchWithComplexCondition (line 391) | public static void SwitchWithComplexCondition(string[] args)
    method SwitchWithArray (line 411) | public static void SwitchWithArray(string[] args)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/CS1xSwitch_Release.cs
  class Switch (line 25) | public class Switch
    class SetProperty (line 27) | public class SetProperty
      method SetProperty (line 42) | public SetProperty(PropertyInfo property)
    type State (line 48) | public enum State
    method SparseIntegerSwitch (line 55) | public static string SparseIntegerSwitch(int i)
    method SwitchOverInt (line 87) | public static void SwitchOverInt(int i)
    method ShortSwitchOverString (line 115) | public static string ShortSwitchOverString(string text)
    method ShortSwitchOverStringWithNullCase (line 131) | public static string ShortSwitchOverStringWithNullCase(string text)
    method SwitchOverString1 (line 147) | public static string SwitchOverString1(string text)
    method SwitchOverString2 (line 172) | public static string SwitchOverString2()
    method TwoDifferentSwitchBlocksInTryFinally (line 204) | public static string TwoDifferentSwitchBlocksInTryFinally()
    method SwitchOverBool (line 282) | public static string SwitchOverBool(bool b)
    method SwitchInLoop (line 296) | public static void SwitchInLoop(int i)
    method SwitchWithGoto (line 324) | public static void SwitchWithGoto(int i)
    method GetProperties (line 348) | private static SetProperty[] GetProperties()
    method SwitchOnStringInForLoop (line 353) | public static void SwitchOnStringInForLoop()
    method SwitchWithComplexCondition (line 391) | public static void SwitchWithComplexCondition(string[] args)
    method SwitchWithArray (line 411) | public static void SwitchWithArray(string[] args)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/CallIndirect.cs
  class CallIndirect (line 2) | internal class CallIndirect
    method Test (line 4) | private unsafe void Test(IntPtr f)
    method UnmanagedDefaultCall (line 9) | private unsafe void UnmanagedDefaultCall(IntPtr f)
    method CustomCall (line 14) | private unsafe void CustomCall(IntPtr f)
    method MultipleCustomCall (line 19) | private unsafe void MultipleCustomCall(IntPtr f)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/ConstantBlobs.cs
  class ConstantBlobs (line 3) | internal class ConstantBlobs
    method Float_Int32 (line 5) | public static void Float_Int32(float f1 = 0f, float f2 = -1f, float f3...

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/DirectCallToExplicitInterfaceImpl.cs
  class TestClass (line 3) | public sealed class TestClass : IDisposable
    method Dispose (line 5) | void IDisposable.Dispose()
    method Test (line 9) | public void Test(TestClass other)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/EmptyBodies.cs
  class EmptyBodies (line 1) | internal class EmptyBodies
    method RetVoid (line 3) | public static void RetVoid()
    method RetInt (line 6) | public static int RetInt()
    method Nop (line 10) | public static void Nop()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/EvalOrder.cs
  class EvalOrder (line 3) | internal class EvalOrder
    method Test (line 7) | public static void Test(EvalOrder p)
  type SimpleStruct (line 14) | [StructLayout(LayoutKind.Sequential, Size = 1)]
    method SimpleStruct (line 17) | public SimpleStruct(int val)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/ExtensionEncodingV1.cs
  class ExtensionPropertiesV1 (line 6) | internal static class ExtensionPropertiesV1
    method AddIfNotNull (line 20) | public void AddIfNotNull(T item)
    method Cast (line 28) | public T2 Cast<T2>(int index) where T2 : T
    method StaticExtension (line 33) | public static void StaticExtension()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/ExtensionEncodingV2.cs
  class ExtensionPropertiesV2 (line 5) | internal static class ExtensionPropertiesV2
    method AddIfNotNull (line 17) | public void AddIfNotNull(T item)
    method Cast (line 24) | public T2 Cast<T2>(int index) where T2 : T
    method StaticExtension (line 28) | public static void StaticExtension()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/FSharpLoops_Debug.cs
  class Program (line 31) | [CompilationMapping(SourceConstructFlags.Module)]
    class disposable_00403 (line 34) | [Serializable]
      method System_002DIDisposable_002DDispose (line 39) | private void System_002DIDisposable_002DDispose()
      method Dispose (line 43) | void IDisposable.Dispose()
    class getSeq_00405 (line 50) | [Serializable]
      method GenerateNext (line 65) | public override int GenerateNext(ref IEnumerable<int> next)
      method Close (line 83) | public override void Close()
      method get_CheckClose (line 88) | public bool get_CheckClose()
      method get_LastGenerated (line 100) | [DebuggerNonUserCode]
      method GetFreshEnumerator (line 107) | [DebuggerNonUserCode]
    method disposable (line 115) | public static IDisposable disposable()
    method getSeq (line 120) | public static IEnumerable<int> getSeq()
    method getList (line 125) | public static FSharpList<int> getList()
    method getArray (line 130) | public static int[] getArray()
    method main (line 135) | [EntryPoint]
  class _0024AssemblyInfo (line 169) | internal static class _0024AssemblyInfo
  class _0024Program (line 172) | internal static class _0024Program
  class AssemblyAttributes (line 178) | internal static class AssemblyAttributes

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/FSharpLoops_Release.cs
  class Program (line 31) | [CompilationMapping(SourceConstructFlags.Module)]
    class disposable_00403 (line 34) | [Serializable]
      method System_002DIDisposable_002DDispose (line 39) | private void System_002DIDisposable_002DDispose()
      method Dispose (line 43) | void IDisposable.Dispose()
    class getSeq_00405 (line 50) | [Serializable]
      method GenerateNext (line 65) | public override int GenerateNext(ref IEnumerable<int> next)
      method Close (line 83) | public override void Close()
      method get_CheckClose (line 88) | public bool get_CheckClose()
      method get_LastGenerated (line 100) | [DebuggerNonUserCode]
      method GetFreshEnumerator (line 107) | [DebuggerNonUserCode]
    method disposable (line 115) | public static IDisposable disposable()
    method getSeq (line 120) | public static IEnumerable<int> getSeq()
    method getList (line 125) | public static FSharpList<int> getList()
    method getArray (line 130) | public static int[] getArray()
    method main (line 135) | [EntryPoint]
  class _0024AssemblyInfo (line 169) | internal static class _0024AssemblyInfo
  class _0024Program (line 172) | internal static class _0024Program
  class AssemblyAttributes (line 178) | internal static class AssemblyAttributes

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/FSharpUsing_Debug.cs
  class FSharpUsingPatterns (line 4) | public static class FSharpUsingPatterns
    method sample1 (line 6) | public static void sample1()
    method sample2 (line 14) | public static void sample2()
    method sample3 (line 24) | public static void sample3()
    method sample4 (line 34) | public static void sample4()
    method sample5 (line 46) | public static void sample5()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/FSharpUsing_Release.cs
  class FSharpUsingPatterns (line 4) | public static class FSharpUsingPatterns
    method sample1 (line 6) | public static void sample1()
    method sample2 (line 14) | public static void sample2()
    method sample3 (line 24) | public static void sample3()
    method sample4 (line 34) | public static void sample4()
    method sample5 (line 46) | public static void sample5()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/GuessAccessors.cs
  class UnknownClassTest (line 10) | public class UnknownClassTest : EventArgs
    method MethodUnknownClass (line 12) | public void MethodUnknownClass()
    method MethodUnknownGenericClass (line 40) | public void MethodUnknownGenericClass()
    method MethodUnknownStatic (line 70) | public void MethodUnknownStatic()
    method MethodUnknownStaticGeneric (line 85) | public void MethodUnknownStaticGeneric()
    method MethodUnknownIndexerInitializer (line 100) | public void MethodUnknownIndexerInitializer()
    method Instance_OnEvent (line 109) | private void Instance_OnEvent(object sender, EventArgs e)
    method Instance_OnEvent (line 114) | private void Instance_OnEvent(object sender, UnknownEventArgs e)
    method Instance_OnEvent (line 119) | private void Instance_OnEvent(object sender, string e)
    method Instance_OnEvent (line 124) | private static void Instance_OnEvent(object sender, object e)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1038.cs
  class Issue1038 (line 5) | public class Issue1038<TK, TR> where TR : class, new()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1047.cs
  class Issue1047 (line 3) | public class Issue1047
    method ProblemMethod (line 7) | private void ProblemMethod()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1145.cs
  class EvType (line 3) | public sealed class EvType : MulticastDelegate
  class OwningClass (line 8) | [Serializable]

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1157.cs
  class BaseClass (line 5) | internal abstract class BaseClass
  class OtherClass (line 10) | internal class OtherClass : BaseClass

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1256.cs
  class Issue1256 (line 5) | internal class Issue1256
    method Method (line 7) | public void Method(Enum e, object o, string s)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1323.cs
  type Enum0 (line 1) | public enum Enum0

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1325.cs
  class Program (line 19) | [StandardModule]
    method Main (line 22) | [STAThread]
    method TestCode (line 26) | public static void TestCode(Test t, int i)
  class Test (line 36) | internal class Test
  class Embedded (line 51) | [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Module | At...
  class StandardModuleAttribute (line 61) | [EditorBrowsable(EditorBrowsableState.Never)]

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1389.cs
  class Program (line 6) | public class Program
    method GetObject (line 8) | private static object GetObject()
    method UnusedResultOfIsinst (line 13) | private static void UnusedResultOfIsinst()
    method BoolResultOfIsinst (line 18) | private static bool BoolResultOfIsinst()
    method EnumResultOfIsinst (line 23) | private static object EnumResultOfIsinst(object A_0)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1454.cs
  class Issue1454 (line 5) | public class Issue1454
    method GetCardinality (line 7) | public static int GetCardinality(BitArray bitArray)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1681.cs
  class BaseClass (line 3) | internal class BaseClass
  class Issue1681 (line 8) | internal class Issue1681 : BaseClass
    method Test (line 10) | public void Test()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1918.cs
  class Issue1918 (line 5) | internal class Issue1918
    method ProblemFunction (line 9) | public unsafe void ProblemFunction(Guid[] A_0, int A_1)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1922.cs
  class Program (line 3) | public class Program
    method fnWorks (line 5) | public static long fnWorks(int x, int y)
    method fnFails (line 10) | public static long fnFails(int x, int y)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue2104.cs
  class Issue2104 (line 5) | internal class Issue2104
    method Issue2104 (line 15) | public Issue2104(string text)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue2260SwitchString.cs
  class Issue2260 (line 4) | internal class Issue2260
    method dgvItemList_CellValueChanged (line 6) | private void dgvItemList_CellValueChanged(object sender, DataGridViewC...

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue2443.cs
  class Program (line 14) | internal class Program : Class1
    method Program (line 16) | public Program(string _)
    method Main (line 22) | private static void Main(string[] args)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue3344CkFinite.cs
  class Issue3344 (line 5) | public class Issue3344
    method GetFloat (line 7) | private static float GetFloat()
    method CkFinite (line 12) | private static float CkFinite()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue3421.cs
  class Issue3421 (line 1) | internal class Issue3421
    method SetValue (line 6) | public virtual void SetValue(object value)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue3442.cs
  class Class (line 3) | public class Class : Interface
    method M (line 5) | private void M<T>() where T : Interface
    method M (line 9) | void Interface.M<T>()
  type Interface (line 15) | public interface Interface
    method M (line 17) | void M<T>() where T : Interface;

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue3465.cs
  class Program (line 7) | internal class Program
    method GetProgram (line 11) | private static Program GetProgram()
    method Test3465 (line 16) | private static bool Test3465()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue3466.cs
  class Issue3466 (line 3) | public class Issue3466<T>
    method M (line 9) | public static bool M(Issue3466<object> x)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue3504.cs
  class Issue3504 (line 3) | internal class Issue3504
    method Method (line 5) | private void Method(Console console)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue3524.cs
  class C (line 1) | public class C
    method C (line 10) | static C()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue3552.cs
  class Issue3552 (line 7) | public static class Issue3552
    method MakePair1 (line 9) | public static Issue3552_IntegerPair MakePair1(int x, int y)
    method MakePair2 (line 14) | public static Issue3552_IntegerPair MakePair2(int x, int y)
    method MakePair3 (line 19) | public static Issue3552_IntegerPair MakePair3(int x, int y)
  type Issue3552_IntegerPair (line 25) | public struct Issue3552_IntegerPair
  type Issue3552_IntegerPairBuilder (line 30) | public struct Issue3552_IntegerPairBuilder : IEnumerable<int>, IEnumerable
    method ToPair (line 35) | public readonly Issue3552_IntegerPair ToPair()
    method Add (line 40) | public void Add(int value)
    method GetEnumerator (line 56) | public IEnumerator<int> GetEnumerator()
    method GetEnumerator (line 61) | IEnumerator IEnumerable.GetEnumerator()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue379.cs
  class Issue379 (line 5) | internal class Issue379
    method Test (line 7) | public virtual void Test<T>() where T : new()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue646.cs
  class Issue646 (line 9) | [StandardModule]
    method Main (line 12) | [STAThread]

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue684.cs
  class Issue684 (line 3) | public static class Issue684
    method Main (line 5) | static int Main(string[] A_0)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue959.cs
  class Issue959 (line 3) | internal class Issue959
    method Test (line 5) | public void Test(bool arg)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue982.cs
  class Issue982 (line 5) | internal class Issue982

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/MonoFixed.cs
  class MonoFixed (line 3) | public class MonoFixed
    method FixMultipleStrings (line 5) | public unsafe void FixMultipleStrings(string text)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/SequenceOfNestedIfs.cs
  class Material (line 2) | [Serializable]
  class SequenceOfNestedIfs (line 10) | [Serializable]
    method CheckShader (line 15) | public virtual bool CheckShader()
    method CreateMaterials (line 19) | public virtual void CreateMaterials()

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/UnknownTypes.cs
  class UnknownTypes (line 1) | internal class UnknownTypes
    method CanExecute (line 5) | public virtual bool CanExecute(CallbackQuery message)

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Unsafe.cs
  class ExtraUnsafeTests (line 16) | internal sealed class ExtraUnsafeTests
    method PinWithTypeMismatch (line 18) | public unsafe static void PinWithTypeMismatch(ref uint managedPtr)
    method RefToPointerWithoutPinning (line 25) | public unsafe static uint* RefToPointerWithoutPinning(ref uint managed...
    method RefAssignTypeMismatch (line 30) | public static ref ulong RefAssignTypeMismatch(ref uint a, ref uint b)
    method Issue1292 (line 41) | public unsafe static byte[] Issue1292(int val, byte[] arr)
    method pin_ptr_test (line 50) | public unsafe void pin_ptr_test(int[] a, int[] b)
    method Issue2148 (line 69) | private static void Issue2148(string[] args)
    method Issue2189 (line 77) | private unsafe static void Issue2189()
    method PinUnmanagedPtr (line 84) | private unsafe static void PinUnmanagedPtr(int* A_0)
    method AddressTypeMismatch (line 91) | private static ref float AddressTypeMismatch(ref int A_0)
    method AddressTypeMismatch (line 95) | private unsafe static ref float AddressTypeMismatch(int* A_0)
    method LoadWithTypeMismatch (line 99) | private static float LoadWithTypeMismatch(ref int A_0)
    method LoadWithTypeMismatch (line 103) | private unsafe static float LoadWithTypeMismatch(int* A_0)
    method StoreWithTypeMismatch (line 107) | private static void StoreWithTypeMismatch(ref int A_0)
    method StoreWithTypeMismatch (line 111) | private unsafe static void StoreWithTypeMismatch(int* A_0)
    method AddressOfFieldTypeMismatch (line 115) | private static ref float AddressOfFieldTypeMismatch(ref int A_0)
    method AddressOfFieldTypeMismatch (line 119) | private unsafe static ref float AddressOfFieldTypeMismatch(int* A_0)
    method LoadOfFieldTypeMismatch (line 123) | private static float LoadOfFieldTypeMismatch(ref int A_0)
    method LoadOfFieldTypeMismatch (line 127) | private unsafe static float LoadOfFieldTypeMismatch(int* A_0)
    method StoreOfFieldTypeMismatch (line 131) | private static void StoreOfFieldTypeMismatch(ref int A_0)
    method StoreOfFieldTypeMismatch (line 135) | private unsafe static void StoreOfFieldTypeMismatch(int* A_0)
  type SomeStruct (line 140) | internal struct SomeStruct
  class Unsafe (line 148) | public static class Unsafe
    method Read (line 150) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method ReadUnaligned (line 156) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method ReadUnaligned (line 162) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Write (line 168) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method WriteUnaligned (line 174) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method WriteUnaligned (line 180) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Copy (line 186) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Copy (line 192) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method AsPointer (line 198) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method SkipInit (line 204) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method SizeOf (line 209) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method CopyBlock (line 215) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method CopyBlock (line 222) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method CopyBlockUnaligned (line 229) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method CopyBlockUnaligned (line 236) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method InitBlock (line 243) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method InitBlock (line 250) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method InitBlockUnaligned (line 257) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method InitBlockUnaligned (line 264) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method As (line 271) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method AsRef (line 277) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method AsRef (line 283) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method As (line 289) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Unbox (line 295) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Add (line 301) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Add (line 307) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Add (line 313) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Add (line 319) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method AddByteOffset (line 325) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method AddByteOffset (line 331) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Subtract (line 337) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Subtract (line 343) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Subtract (line 349) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Subtract (line 355) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method SubtractByteOffset (line 361) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method SubtractByteOffset (line 367) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method ByteOffset (line 373) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method AreSame (line 379) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method IsAddressGreaterThan (line 385) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method IsAddressLessThan (line 391) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method IsNullRef (line 397) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method NullRef (line 403) | [MethodImpl(MethodImplOptions.AggressiveInlining)]

FILE: ICSharpCode.Decompiler.Tests/TestCases/ILPretty/WeirdEnums.cs
  type BooleanEnum (line 5) | public enum BooleanEnum : bool
  type EnumWithNestedClass (line 13) | public enum EnumWithNestedClass
  type NativeIntEnum (line 26) | public enum NativeIntEnum : IntPtr

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/AnonymousTypes.cs
  class AnonymousTypes (line 23) | public class AnonymousTypes
    method SimpleTypes (line 25) | private void SimpleTypes()
    method SimpleArray (line 41) | private void SimpleArray()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/Async.cs
  class Async (line 27) | public class Async
    method True (line 31) | private static bool True()
    method SimpleVoidMethod (line 36) | public async void SimpleVoidMethod()
    method VoidMethodWithoutAwait (line 43) | public async void VoidMethodWithoutAwait()
    method EmptyVoidMethod (line 48) | public async void EmptyVoidMethod()
    method AwaitYield (line 52) | public async void AwaitYield()
    method AwaitDefaultYieldAwaitable (line 57) | public async void AwaitDefaultYieldAwaitable()
    method AwaitDefaultHopToThreadPool (line 62) | public async void AwaitDefaultHopToThreadPool()
    method SimpleVoidTaskMethod (line 70) | public async Task SimpleVoidTaskMethod()
    method TaskMethodWithoutAwait (line 77) | public async Task TaskMethodWithoutAwait()
    method CapturingThis (line 82) | public async Task CapturingThis()
    method CapturingThisWithoutAwait (line 87) | public async Task CapturingThisWithoutAwait()
    method SimpleBoolTaskMethod (line 92) | public async Task<bool> SimpleBoolTaskMethod()
    method TwoAwaitsWithDifferentAwaiterTypes (line 100) | public async void TwoAwaitsWithDifferentAwaiterTypes()
    method AwaitInLoopCondition (line 110) | public async void AwaitInLoopCondition()
    method AwaitInCatch (line 119) | public async Task AwaitInCatch(bool b, Task<int> task1, Task<int> task2)
    method AwaitInFinally (line 140) | public async Task AwaitInFinally(bool b, Task<int> task1, Task<int> ta...
    method AnonymousThrow (line 161) | public async Task AnonymousThrow()
    method DeclaredException (line 174) | public async Task DeclaredException()
    method RethrowDeclared (line 187) | public async Task RethrowDeclared()
    method RethrowDeclaredWithFilter (line 202) | public async Task RethrowDeclaredWithFilter()
    method ComplexCatchBlock (line 215) | public async Task ComplexCatchBlock()
    method ComplexCatchBlockWithFilter (line 231) | public async Task ComplexCatchBlockWithFilter()
    method LoadsToCatch (line 247) | public async Task LoadsToCatch(int i)
    method Issue2366a (line 312) | public async Task Issue2366a()
    method Issue2366b (line 326) | public async Task Issue2366b()
    method Issue2436 (line 346) | public async Task<object> Issue2436()
    method GetIntegerSumAsync (line 364) | public static async Task<int> GetIntegerSumAsync(IEnumerable<int> items)
    method AsyncLambda (line 375) | public static Func<Task<int>> AsyncLambda()
    method AsyncDelegate (line 380) | public static Func<Task<int>> AsyncDelegate()
    method AlwaysThrow (line 388) | public static async Task AlwaysThrow()
    method InfiniteLoop (line 393) | public static async Task InfiniteLoop()
    method InfiniteLoopWithAwait (line 400) | public static async Task InfiniteLoopWithAwait()
    method AsyncWithLocalVar (line 408) | public async Task AsyncWithLocalVar()
    method UseObj (line 421) | public static async Task UseObj(object a)
    method AsyncLocalFunctions (line 426) | public static async Task<int> AsyncLocalFunctions()
  type AsyncInStruct (line 443) | public struct AsyncInStruct
    method Test (line 447) | public async Task<int> Test(AsyncInStruct xx)
  type HopToThreadPoolAwaitable (line 456) | public struct HopToThreadPoolAwaitable : INotifyCompletion
    method GetAwaiter (line 460) | public HopToThreadPoolAwaitable GetAwaiter()
    method OnCompleted (line 465) | public void OnCompleted(Action continuation)
    method GetResult (line 470) | public void GetResult()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/AsyncForeach.cs
  class AsyncForeach (line 25) | internal class AsyncForeach
    method SumIntegers (line 27) | public async Task<int> SumIntegers(IAsyncEnumerable<int> items, Cancel...
    method MaxInteger (line 42) | public async Task<int> MaxInteger(IAsyncEnumerable<int> items)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/AsyncMain.cs
  class AsyncMain (line 6) | public class AsyncMain
    method Main (line 8) | public static async Task Main(string[] args)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/AsyncStreams.cs
  class AsyncStreams (line 9) | public class AsyncStreams
    method CountTo (line 11) | public static async IAsyncEnumerable<int> CountTo(int until)
    method AlwaysThrow (line 20) | public static async IAsyncEnumerable<int> AlwaysThrow()
    method InfiniteLoop (line 26) | public static async IAsyncEnumerator<int> InfiniteLoop()
    method InfiniteLoopWithAwait (line 34) | public static async IAsyncEnumerable<int> InfiniteLoopWithAwait()
    method AwaitInFinally (line 43) | public async IAsyncEnumerable<int> AwaitInFinally()
    method SimpleCancellation (line 59) | public static async IAsyncEnumerable<int> SimpleCancellation([Enumerat...
  type TestStruct (line 67) | public struct TestStruct
    method AwaitInStruct (line 71) | public async IAsyncEnumerable<int> AwaitInStruct(TestStruct xx)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/AsyncUsing.cs
  class AsyncUsing (line 7) | internal class AsyncUsing
    class AsyncDisposableClass (line 9) | internal class AsyncDisposableClass : IAsyncDisposable
      method DisposeAsync (line 11) | public ValueTask DisposeAsync()
    type AsyncDisposableStruct (line 17) | [StructLayout(LayoutKind.Sequential, Size = 1)]
      method DisposeAsync (line 20) | public ValueTask DisposeAsync()
    method TestAsyncUsing (line 26) | public static async void TestAsyncUsing(IAsyncDisposable disposable)
    method TestAsyncUsingClass (line 34) | public static async void TestAsyncUsingClass()
    method TestAsyncUsingStruct (line 42) | public static async void TestAsyncUsingStruct()
    method TestAsyncUsingNullableStruct (line 50) | public static async void TestAsyncUsingNullableStruct()
    method Use (line 58) | private static void Use(IAsyncDisposable test)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.cs
  class AutoProperties (line 5) | internal class AutoProperties
    method AutoProperties (line 32) | public AutoProperties(int issue1319)
  class RequiredMemberAttribute (line 42) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | Attri...

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS72_PrivateProtected.cs
  class CS72_PrivateProtected (line 21) | internal class CS72_PrivateProtected
    method Method (line 25) | private protected void Method()

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS73_StackAllocInitializers.cs
  type StructWithSize5 (line 28) | [StructLayout(LayoutKind.Sequential, Size = 5)]
    method StructWithSize5 (line 47) | public StructWithSize5(byte a, byte b, byte c, byte d, byte e)
  type StructWithSize5 (line 38) | [StructLayout(LayoutKind.Sequential, Size = 5)]
    method StructWithSize5 (line 47) | public StructWithSize5(byte a, byte b, byte c, byte d, byte e)
  class NestedContext1 (line 59) | private class NestedContext1
    method NestedContext1 (line 61) | public NestedContext1(object result)
    method NestedContext1 (line 65) | public NestedContext1()
  method UseNested (line 74) | public static object UseNested(object a, Span<int> span)
  method GetInt (line 79) | public static int GetInt()
  method SimpleStackAllocStruct1 (line 85) | public unsafe string SimpleStackAllocStruct1()
  method SimpleStackAllocBool (line 97) | public unsafe string SimpleStackAllocBool()
  method DoNotInlineTest (line 104) | public unsafe string DoNotInlineTest()
  method SimpleStackAllocByte (line 110) | public unsafe string SimpleStackAllocByte()
  method SimpleStackAllocPrimesAsBytes (line 117) | public unsafe string SimpleStackAllocPrimesAsBytes()
  method SimpleStackAllocChar (line 131) | public unsafe string SimpleStackAllocChar()
  method SimpleStackAllocCharAlphabet (line 138) | public unsafe string SimpleStackAllocCharAlphabet()
  method SimpleStackAllocSByte (line 149) | public unsafe string SimpleStackAllocSByte()
  method SimpleStackAllocInt16 (line 156) | public unsafe string SimpleStackAllocInt16()
  method SimpleStackAllocUInt16 (line 163) | public unsafe string SimpleStackAllocUInt16()
  method SimpleStackAllocInt32 (line 170) | public unsafe string SimpleStackAllocInt32()
  method SimpleStackAllocInt32 (line 177) | public unsafe string SimpleStackAllocInt32(int a, int b, int c)
  method SimpleStackAllocInt32Fibonacci (line 184) | public unsafe string SimpleStackAllocInt32Fibonacci()
  method SimpleStackAllocUInt32 (line 194) | public unsafe string SimpleStackAllocUInt32()
  method SimpleStackAllocInt64 (line 201) | public unsafe string SimpleStackAllocInt64()
  method SimpleStackAllocUInt64 (line 208) | public unsafe string SimpleStackAllocUInt64()
  method SimpleStackAllocInt32NonConstant (line 215) | public unsafe string SimpleStackAllocInt32NonConstant(int a, int b, int c)
  method NotAnInitializer (line 222) | public unsafe string NotAnInitializer(int a, int b, int c)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS9_ExtensionGetEnumerator.cs
  class CS9_ExtensionGetEnumerator (line 7) | public class CS9_ExtensionGetEnumerator
    class NonGeneric (line 9) | public class NonGeneric
    class Generic (line 13) | public class Generic<T>
    method Test (line 17) | public void Test(NonGeneric c)
    method Test (line 25) | public void Test(Generic<int> c)
    method TestAsync (line 33) | public async void TestAsync(Generic<int> c)
  class CS9_ExtensionGetEnumerator_Ext (line 43) | public static class CS9_ExtensionGetEnumerator_Ext
    method GetEnumerator (line 45) | public static IEnumerator GetEnumerator(this CS9_ExtensionGetEnumerato...
    method GetEnumerator (line 49) | public static IEnumerator<T> GetEnumerator<T>(this CS9_ExtensionGetEnu...
    method GetAsyncEnumerator (line 54) | public static IAsyncEnumerator<T> GetAsyncEnumerator<T>(this CS9_Exten...

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.cs
  class Box (line 23) | internal class Box<T>
  class CheckedUnchecked (line 28) | public class CheckedUnchecked
    method Operators (line 30) | public int Operators(int a, int b)
    method Cast (line 44) | public int Cast(int a)
    method ForWithCheckedIteratorAndUncheckedBody (line 53) | public void ForWithCheckedIteratorAndUncheckedBody(int n)
    method ForWithCheckedInitializerAndUncheckedIterator (line 64) | public void ForWithCheckedInitializerAndUncheckedIterator(int n)
    method ObjectCreationInitializerChecked (line 72) | public void ObjectCreationInitializerChecked()
    method ObjectCreationWithOneFieldChecked (line 83) | public void ObjectCreationWithOneFieldChecked()
    method ArrayInitializerChecked (line 94) | public void ArrayInitializerChecked()
    method TestHelp (line 102) | public T TestHelp<T>(T t, Func<T, T> f)
    method CheckedInArrayCreationArgument (line 107) | public void CheckedInArrayCreationArgument(int a, int b)
    method Unbox (line 112) | public short Unbox(TypeCode c, object b)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/Comparisons.cs
  class Comparisons (line 3) | public class Comparisons
    class A (line 5) | private class A
    class B (line 9) | private class B
    method CompareUnrelatedNeedsCast (line 13) | private bool CompareUnrelatedNeedsCast(A a, B b)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/CompoundAssignmentTest.cs
  class CompoundAssignmentTest (line 24) | public class CompoundAssignmentTest
    type MyEnum (line 26) | [Flags]
    type ShortEnum (line 35) | public enum ShortEnum : short
    type StructContainer (line 43) | private struct StructContainer
    class MutableClass (line 49) | public class MutableClass
    class Item (line 69) | private class Item
    class CustomClass (line 74) | public class CustomClass
    type CustomStruct (line 154) | public struct CustomStruct
    type CustomStruct2 (line 232) | public struct CustomStruct2
    method Use (line 296) | private static void Use(ref byte b)
    method Use (line 300) | private static void Use(ref sbyte b)
    method Use (line 304) | private static void Use<T>(ref T num)
    method GetStruct (line 308) | private static CustomStruct2 GetStruct()
    method GetRefStruct (line 313) | private static ref CustomStruct2 GetRefStruct()
    method GetRefCustomStruct (line 318) | private static ref CustomStruct GetRefCustomStruct()
    method GetRefCustomClass (line 323) | private static ref CustomClass GetRefCustomClass()
    method GetRefByte (line 328) | private static ref byte GetRefByte()
    method GetRefSbyte (line 333) | private static ref sbyte GetRefSbyte()
    method GetRefShort (line 338) | private static ref short GetRefShort()
    method GetRefInt (line 343) | private static ref int GetRefInt()
    method GetRefLong (line 348) | private static ref long GetRefLong()
    method GetRefUshort (line 353) | private static ref ushort GetRefUshort()
    method GetRefUint (line 358) | private static ref uint GetRefUint()
    method GetRefUlong (line 363) | private static ref ulong GetRefUlong()
    method GetClass (line 369) | private static CustomClass GetClass()
    method X (line 374) | private static void X<T>(T result)
    method M (line 379) | private MutableClass M()
    method Array (line 384) | private int[,] Array()
    method GetPointer (line 389) | private unsafe int* GetPointer()
    method GetIndex (line 394) | public int GetIndex()
    method GetArray (line 399) | public int[] GetArray()
    method GetValue (line 404) | public int GetValue(int value)
    method IsUpperCaseA (line 409) | public bool IsUpperCaseA(char a)
    method Int32_Local_Add (line 414) | public void Int32_Local_Add(int i)
    method Int32_Local_Sub (line 423) | public void Int32_Local_Sub(int i)
    method Int32_Local_Mul (line 432) | public void Int32_Local_Mul(int i)
    method Int32_Local_Div (line 438) | public void Int32_Local_Div(int i)
    method Int32_Local_Rem (line 444) | public void Int32_Local_Rem(int i)
    method Int32_Local_BitAnd (line 450) | public void Int32_Local_BitAnd(int i)
    method Int32_Local_BitOr (line 456) | public void Int32_Local_BitOr(int i)
    method Int32_Local_BitXor (line 462) | public void Int32_Local_BitXor(int i)
    method Int32_Local_ShiftLeft (line 468) | public void Int32_Local_ShiftLeft(int i)
    method Int32_Local_ShiftRight (line 474) | public void Int32_Local_ShiftRight(int i)
    method IntegerWithInline (line 480) | public void IntegerWithInline(int i)
    method IntegerField (line 486) | public void IntegerField(int i)
    method Array (line 494) | public void Array(int i)
    method ArrayUsageWithMethods (line 500) | public int ArrayUsageWithMethods()
    method NestedField (line 505) | public void NestedField()
    method Enum (line 515) | public void Enum()
    method ShortEnumTest (line 523) | public void ShortEnumTest()
    method PreIncrementInAddition (line 531) | public int PreIncrementInAddition(int i, int j)
    method PreIncrementArrayElement (line 536) | public int PreIncrementArrayElement(int[] array, int pos)
    method PostIncrementArrayElement (line 541) | public int PostIncrementArrayElement(int[] array, int pos)
    method IncrementArrayElement (line 546) | public void IncrementArrayElement(int[] array, int pos)
    method DoubleArrayElement (line 551) | public void DoubleArrayElement(int[] array, int pos)
    method DoubleArrayElementAndReturn (line 556) | public int DoubleArrayElementAndReturn(int[] array, int pos)
    method PreIncrementArrayElementShort (line 561) | public int PreIncrementArrayElementShort(short[] array, int pos)
    method PostIncrementArrayElementShort (line 566) | public int PostIncrementArrayElementShort(short[] array, int pos)
    method IncrementArrayElementShort (line 571) | public void IncrementArrayElementShort(short[] array, int pos)
    method DoubleArrayElementShort (line 576) | public void DoubleArrayElementShort(short[] array, int pos)
    method DoubleArrayElementShortAndReturn (line 581) | public short DoubleArrayElementShortAndReturn(short[] array, int pos)
    method PreIncrementInstanceField (line 586) | public int PreIncrementInstanceField()
    method PostIncrementInstanceField (line 591) | public int PostIncrementInstanceField()
    method IncrementInstanceField (line 596) | public void IncrementInstanceField()
    method DoubleInstanceField (line 601) | public void DoubleInstanceField()
    method DoubleInstanceFieldAndReturn (line 606) | public int DoubleInstanceFieldAndReturn()
    method PreIncrementInstanceField2 (line 611) | public int PreIncrementInstanceField2(MutableClass m)
    method PostIncrementInstanceField2 (line 616) | public int PostIncrementInstanceField2(MutableClass m)
    method IncrementInstanceField2 (line 621) | public void IncrementInstanceField2(MutableClass m)
    method PreIncrementInstanceFieldShort (line 626) | public int PreIncrementInstanceFieldShort()
    method PostIncrementInstanceFieldShort (line 631) | public int PostIncrementInstanceFieldShort()
    method IncrementInstanceFieldShort (line 636) | public void IncrementInstanceFieldShort()
    method PreIncrementInstanceProperty (line 641) | public int PreIncrementInstanceProperty()
    method PostIncrementInstanceProperty (line 646) | public int PostIncrementInstanceProperty()
    method IncrementInstanceProperty (line 651) | public void IncrementInstanceProperty()
    method DoubleInstanceProperty (line 656) | public void DoubleInstanceProperty()
    method DoubleInstancePropertyAndReturn (line 661) | public int DoubleInstancePropertyAndReturn()
    method PreIncrementInstancePropertyByte (line 666) | public int PreIncrementInstancePropertyByte()
    method PostIncrementInstancePropertyByte (line 671) | public int PostIncrementInstancePropertyByte()
    method IncrementInstancePropertyByte (line 676) | public void IncrementInstancePropertyByte()
    method DoubleInstancePropertyByte (line 681) | public void DoubleInstancePropertyByte()
    method DoubleInstancePropertyByteAndReturn (line 686) | public int DoubleInstancePropertyByteAndReturn()
    method BitManipBoolProperty (line 691) | public void BitManipBoolProperty(bool b)
    method BitOrBoolPropertyAndReturn (line 698) | public bool BitOrBoolPropertyAndReturn(bool b)
    method BitAndBoolPropertyAndReturn (line 703) | public bool BitAndBoolPropertyAndReturn(bool b)
    method PreIncrementStaticField (line 708) | public int PreIncrementStaticField()
    method PostIncrementStaticField (line 713) | public int PostIncrementStaticField()
    method IncrementStaticField (line 718) | public void IncrementStaticField()
    method DoubleStaticField (line 723) | public void DoubleStaticField()
    method DoubleStaticFieldAndReturn (line 728) | public int DoubleStaticFieldAndReturn()
    method PreIncrementStaticFieldShort (line 733) | public int PreIncrementStaticFieldShort()
    method PostIncrementStaticFieldShort (line 738) | public int PostIncrementStaticFieldShort()
    method IncrementStaticFieldShort (line 743) | public void IncrementStaticFieldShort()
    method DoubleStaticFieldShort (line 748) | public void DoubleStaticFieldShort()
    method DoubleStaticFieldAndReturnShort (line 753) | public short DoubleStaticFieldAndReturnShort()
    method PreIncrementStaticProperty (line 758) | public int PreIncrementStaticProperty()
    method PostIncrementStaticProperty (line 763) | public int PostIncrementStaticProperty()
    method IncrementStaticProperty (line 768) | public void IncrementStaticProperty()
    method DoubleStaticProperty (line 773) | public void DoubleStaticProperty()
    method DoubleStaticPropertyAndReturn (line 778) | public int DoubleStaticPropertyAndReturn()
    method PreIncrementStaticPropertyShort (line 783) | public ShortEnum PreIncrementStaticPropertyShort()
    method PostIncrementStaticPropertyShort (line 788) | public ShortEnum PostIncrementStaticPropertyShort()
    method IncrementStaticPropertyShort (line 793) | public void IncrementStaticPropertyShort()
    method ByteAddTest (line 800) | public static void ByteAddTest(byte p, CustomClass c, CustomStruct2 s)
    method ByteSubtractTest (line 827) | public static void ByteSubtractTest(byte p, CustomClass c, CustomStruc...
    method ByteMultiplyTest (line 854) | public static void ByteMultiplyTest(byte p, CustomClass c, CustomStruc...
    method ByteDivideTest (line 881) | public static void ByteDivideTest(byte p, CustomClass c, CustomStruct2 s)
    method ByteModulusTest (line 908) | public static void ByteModulusTest(byte p, CustomClass c, CustomStruct...
    method ByteLeftShiftTest (line 935) | public static void ByteLeftShiftTest(byte p, CustomClass c, CustomStru...
    method ByteRightShiftTest (line 962) | public static void ByteRightShiftTest(byte p, CustomClass c, CustomStr...
    method ByteBitAndTest (line 989) | public static void ByteBitAndTest(byte p, CustomClass c, CustomStruct2 s)
    method ByteBitOrTest (line 1016) | public static void ByteBitOrTest(byte p, CustomClass c, CustomStruct2 s)
    method ByteBitXorTest (line 1043) | public static void ByteBitXorTest(byte p, CustomClass c, CustomStruct2 s)
    method BytePostIncTest (line 1070) | public static void BytePostIncTest(byte p, CustomClass c, CustomStruct...
    method BytePreIncTest (line 1097) | public static void BytePreIncTest(byte p, CustomClass c, CustomStruct2 s)
    method BytePostDecTest (line 1123) | public static void BytePostDecTest(byte p, CustomClass c, CustomStruct...
    method BytePreDecTest (line 1150) | public static void BytePreDecTest(byte p, CustomClass c, CustomStruct2 s)
    method SbyteAddTest (line 1176) | public static void SbyteAddTest(sbyte p, CustomClass c, CustomStruct2 s)
    method SbyteSubtractTest (line 1203) | public static void SbyteSubtractTest(sbyte p, CustomClass c, CustomStr...
    method SbyteMultiplyTest (line 1230) | public static void SbyteMultiplyTest(sbyte p, CustomClass c, CustomStr...
    method SbyteDivideTest (line 1257) | public static void SbyteDivideTest(sbyte p, CustomClass c, CustomStruc...
    method SbyteModulusTest (line 1284) | public static void SbyteModulusTest(sbyte p, CustomClass c, CustomStru...
    method SbyteLeftShiftTest (line 1311) | public static void SbyteLeftShiftTest(sbyte p, CustomClass c, CustomSt...
    method SbyteRightShiftTest (line 1338) | public static void SbyteRightShiftTest(sbyte p, CustomClass c, CustomS...
    method SbyteBitAndTest (line 1365) | public static void SbyteBitAndTest(sbyte p, CustomClass c, CustomStruc...
    method SbyteBitOrTest (line 1392) | public static void SbyteBitOrTest(sbyte p, CustomClass c, CustomStruct...
    method SbyteBitXorTest (line 1419) | public static void SbyteBitXorTest(sbyte p, CustomClass c, CustomStruc...
    method SbytePostIncTest (line 1446) | public static void SbytePostIncTest(sbyte p, CustomClass c, CustomStru...
    method SbytePreIncTest (line 1473) | public static void SbytePreIncTest(sbyte p, CustomClass c, CustomStruc...
    method SbytePostDecTest (line 1499) | public static void SbytePostDecTest(sbyte p, CustomClass c, CustomStru...
    method SbytePreDecTest (line 1526) | public static void SbytePreDecTest(sbyte p, CustomClass c, CustomStruc...
    method ShortAddTest (line 1552) | public static void ShortAddTest(short p, CustomClass c, CustomStruct2 s)
    method ShortSubtractTest (line 1579) | public static void ShortSubtractTest(short p, CustomClass c, CustomStr...
    method ShortMultiplyTest (line 1606) | public static void ShortMultiplyTest(short p, CustomClass c, CustomStr...
    method ShortDivideTest (line 1633) | public static void ShortDivideTest(short p, CustomClass c, CustomStruc...
    method ShortModulusTest (line 1660) | public static void ShortModulusTest(short p, CustomClass c, CustomStru...
    method ShortLeftShiftTest (line 1687) | public static void ShortLeftShiftTest(short p, CustomClass c, CustomSt...
    method ShortRightShiftTest (line 1714) | public static void ShortRightShiftTest(short p, CustomClass c, CustomS...
    method ShortUnsignedRightShiftTest (line 1742) | public static void ShortUnsignedRightShiftTest(short p, CustomClass c,...
    method ShortBitAndTest (line 1765) | public static void ShortBitAndTest(short p, CustomClass c, CustomStruc...
    method ShortBitOrTest (line 1792) | public static void ShortBitOrTest(short p, CustomClass c, CustomStruct...
    method ShortBitXorTest (line 1819) | public static void ShortBitXorTest(short p, CustomClass c, CustomStruc...
    method ShortPostIncTest (line 1846) | public static void ShortPostIncTest(short p, CustomClass c, CustomStru...
    method ShortPreIncTest (line 1873) | public static void ShortPreIncTest(short p, CustomClass c, CustomStruc...
    method ShortPostDecTest (line 1899) | public static void ShortPostDecTest(short p, CustomClass c, CustomStru...
    method ShortPreDecTest (line 1926) | public static void ShortPreDecTest(short p, CustomClass c, CustomStruc...
    method UshortAddTest (line 1952) | public static void UshortAddTest(ushort p, CustomClass c, CustomStruct...
    method UshortSubtractTest (line 1979) | public static void UshortSubtractTest(ushort p, CustomClass c, CustomS...
    method UshortMultiplyTest (line 2006) | public static void UshortMultiplyTest(ushort p, CustomClass c, CustomS...
    method UshortDivideTest (line 2033) | public static void UshortDivideTest(ushort p, CustomClass c, CustomStr...
    method UshortModulusTest (line 2060) | public static void UshortModulusTest(ushort p, CustomClass c, CustomSt...
    method UshortLeftShiftTest (line 2087) | public static void UshortLeftShiftTest(ushort p, CustomClass c, Custom...
    method UshortRightShiftTest (line 2114) | public static void UshortRightShiftTest(ushort p, CustomClass c, Custo...
    method UshortUnsignedRightShiftTest (line 2142) | public static void UshortUnsignedRightShiftTest(ushort p, CustomClass ...
    method UshortBitAndTest (line 2167) | public static void UshortBitAndTest(ushort p, CustomClass c, CustomStr...
    method UshortBitOrTest (line 2194) | public static void UshortBitOrTest(ushort p, CustomClass c, CustomStru...
    method UshortBitXorTest (line 2221) | public static void UshortBitXorTest(ushort p, CustomClass c, CustomStr...
    method UshortPostIncTest (line 2248) | public static void UshortPostIncTest(ushort p, CustomClass c, CustomSt...
    method UshortPreIncTest (line 2275) | public static void UshortPreIncTest(ushort p, CustomClass c, CustomStr...
    method UshortPostDecTest (line 2301) | public static void UshortPostDecTest(ushort p, CustomClass c, CustomSt...
    method UshortPreDecTest (line 2328) | public static void UshortPreDecTest(ushort p, CustomClass c, CustomStr...
    method IntAddTest (line 2354) | public static void IntAddTest(int p, CustomClass c, CustomStruct2 s)
    method IntSubtractTest (line 2381) | public static void IntSubtractTest(int p, CustomClass c, CustomStruct2 s)
    method IntMultiplyTest (line 2408) | public static void IntMultiplyTest(int p, CustomClass c, CustomStruct2 s)
    method IntDivideTest (line 2435) | public static void IntDivideTest(int p, CustomClass c, CustomStruct2 s)
    method IntModulusTest (line 2462) | public static void IntModulusTest(int p, CustomClass c, CustomStruct2 s)
    method IntLeftShiftTest (line 2489) | public static void IntLeftShiftTest(int p, CustomClass c, CustomStruct...
    method IntRightShiftTest (line 2516) | public static void IntRightShiftTest(int p, CustomClass c, CustomStruc...
    method IntUnsignedRightShiftTest (line 2544) | public static void IntUnsignedRightShiftTest(int p, CustomClass c, Cus...
    method IntBitAndTest (line 2567) | public static void IntBitAndTest(int p, CustomClass c, CustomStruct2 s)
    method IntBitOrTest (line 2594) | public static void IntBitOrTest(int p, CustomClass c, CustomStruct2 s)
    method IntBitXorTest (line 2621) | public static void IntBitXorTest(int p, CustomClass c, CustomStruct2 s)
    method IntPostIncTest (line 2648) | public static void IntPostIncTest(int p, CustomClass c, CustomStruct2 s)
    method IntPreIncTest (line 2675) | public static void IntPreIncTest(int p, CustomClass c, CustomStruct2 s)
    method IntPostDecTest (line 2701) | public static void IntPostDecTest(int p, CustomClass c, CustomStruct2 s)
    method IntPreDecTest (line 2728) | public static void IntPreDecTest(int p, CustomClass c, CustomStruct2 s)
    method UintAddTest (line 2754) | public static void UintAddTest(uint p, CustomClass c, CustomStruct2 s)
    method UintSubtractTest (line 2781) | public static void UintSubtractTest(uint p, CustomClass c, CustomStruc...
    method UintMultiplyTest (line 2808) | public static void UintMultiplyTest(uint p, CustomClass c, CustomStruc...
    method UintDivideTest (line 2835) | public static void UintDivideTest(uint p, CustomClass c, CustomStruct2 s)
    method UintModulusTest (line 2862) | public static void UintModulusTest(uint p, CustomClass c, CustomStruct...
    method UintLeftShiftTest (line 2889) | public static void UintLeftShiftTest(uint p, CustomClass c, CustomStru...
    method UintRightShiftTest (line 2916) | public static void UintRightShiftTest(uint p, CustomClass c, CustomStr...
    method UintBitAndTest (line 2943) | public static void UintBitAndTest(uint p, CustomClass c, CustomStruct2 s)
    method UintBitOrTest (line 2970) | public static void UintBitOrTest(uint p, CustomClass c, CustomStruct2 s)
    method UintBitXorTest (line 2997) | public static void UintBitXorTest(uint p, CustomClass c, CustomStruct2 s)
    method UintPostIncTest (line 3024) | public static void UintPostIncTest(uint p, CustomClass c, CustomStruct...
    method UintPreIncTest (line 3051) | public static void UintPreIncTest(uint p, CustomClass c, CustomStruct2 s)
    method UintPostDecTest (line 3077) | public static void UintPostDecTest(uint p, CustomClass c, CustomStruct...
    method UintPreDecTest (line 3104) | public static void UintPreDecTest(uint p, CustomClass c, CustomStruct2 s)
    method LongAddTest (line 3130) | public static void LongAddTest(long p, CustomClass c, CustomStruct2 s)
    method LongSubtractTest (line 3157) | public static void LongSubtractTest(long p, CustomClass c, CustomStruc...
    method LongMultiplyTest (line 3184) | public static void LongMultiplyTest(long p, CustomClass c, CustomStruc...
    method LongDivideTest (line 3211) | public static void LongDivideTest(long p, CustomClass c, CustomStruct2 s)
    method LongModulusTest (line 3238) | public static void LongModulusTest(long p, CustomClass c, CustomStruct...
    method LongLeftShiftTest (line 3265) | public static void LongLeftShiftTest(long p, CustomClass c, CustomStru...
    method LongRightShiftTest (line 3292) | public static void LongRightShiftTest(long p, CustomClass c, CustomStr...
    method LongBitAndTest (line 3319) | public static void LongBitAndTest(long p, CustomClass c, CustomStruct2 s)
    method LongBitOrTest (line 3346) | public static void LongBitOrTest(long p, CustomClass c, CustomStruct2 s)
    method LongBitXorTest (line 3373) | public static void LongBitXorTest(long p, CustomClass c, CustomStruct2 s)
    method LongPostIncTest (line 3400) | public static void LongPostIncTest(long p, CustomClass c, CustomStruct...
    method LongPreIncTest (line 3427) | public static void LongPreIncTest(long p, CustomClass c, CustomStruct2 s)
    method LongPostDecTest (line 3453) | public static void LongPostDecTest(long p, CustomClass c, CustomStruct...
    method LongPreDecTest (line 3480) | public static void LongPreDecTest(long p, CustomClass c, CustomStruct2 s)
    method UlongAddTest (line 3506) | public static void UlongAddTest(ulong p, CustomClass c, CustomStruct2 s)
    method UlongSubtractTest (line 3533) | public static void UlongSubtractTest(ulong p, CustomClass c, CustomStr...
    method UlongMultiplyTest (line 3560) | public static void UlongMultiplyTest(ulong p, CustomClass c, CustomStr...
    method UlongDivideTest (line 3587) | public static void UlongDivideTest(ulong p, CustomClass c, CustomStruc...
    method UlongModulusTest (line 3614) | public static void UlongModulusTest(ulong p, CustomClass c, CustomStru...
    method UlongLeftShiftTest (line 3641) | public static void UlongLeftShiftTest(ulong p, CustomClass c, CustomSt...
    method UlongRightShiftTest (line 3668) | public static void UlongRightShiftTest(ulong p, CustomClass c, CustomS...
    method UlongBitAndTest (line 3695) | public static void UlongBitAndTest(ulong p, CustomClass c, CustomStruc...
    method UlongBitOrTest (line 3722) | public static void UlongBitOrTest(ulong p, CustomClass c, CustomStruct...
    method UlongBitXorTest (line 3749) | public static void UlongBitXorTest(ulong p, CustomClass c, CustomStruc...
    method UlongPostIncTest (line 3776) | public static void UlongPostIncTest(ulong p, CustomClass c, CustomStru...
    method UlongPreIncTest (line 3803) | public static void UlongPreIncTest(ulong p, CustomClass c, CustomStruc...
    method UlongPostDecTest (line 3829) | public static void UlongPostDecTest(ulong p, CustomClass c, CustomStru...
    method UlongPreDecTest (line 3856) | public static void UlongPreDecTest(ulong p, CustomClass c, CustomStruc...
    method CustomClassAddTest (line 3882) | public static void CustomClassAddTest(CustomClass p, CustomClass c, Cu...
    method CustomClassSubtractTest (line 3909) | public static void CustomClassSubtractTest(CustomClass p, CustomClass ...
    method CustomClassMultiplyTest (line 3936) | public static void CustomClassMultiplyTest(CustomClass p, CustomClass ...
    method CustomClassDivideTest (line 3963) | public static void CustomClassDivideTest(CustomClass p, CustomClass c,...
    method CustomClassModulusTest (line 3990) | public static void CustomClassModulusTest(CustomClass p, CustomClass c...
    method CustomClassLeftShiftTest (line 4017) | public static void CustomClassLeftShiftTest(CustomClass p, CustomClass...
    method CustomClassRightShiftTest (line 4044) | public static void CustomClassRightShiftTest(CustomClass p, CustomClas...
    method CustomClassBitAndTest (line 4071) | public static void CustomClassBitAndTest(CustomClass p, CustomClass c,...
    method CustomClassBitOrTest (line 4098) | public static void CustomClassBitOrTest(CustomClass p, CustomClass c, ...
    method CustomClassBitXorTest (line 4125) | public static void CustomClassBitXorTest(CustomClass p, CustomClass c,...
    method CustomClassPostIncTest (line 4152) | public static void CustomClassPostIncTest(CustomClass p, CustomClass c...
    method CustomClassPreIncTest (line 4179) | public static void CustomClassPreIncTest(CustomClass p, CustomClass c,...
    method CustomClassPostDecTest (line 4205) | public static void CustomClassPostDecTest(CustomClass p, CustomClass c...
    method CustomClassPreDecTest (line 4232) | public static void CustomClassPreDecTest(CustomClass p, CustomClass c,...
    method CustomStructAddTest (line 4258) | public static void CustomStructAddTest(CustomStruct p, CustomClass c, ...
    method CustomStructSubtractTest (line 4285) | public static void CustomStructSubtractTest(CustomStruct p, CustomClas...
    method CustomStructMultiplyTest (line 4312) | public static void CustomStructMultiplyTest(CustomStruct p, CustomClas...
    method CustomStructDivideTest (line 4339) | public static void CustomStructDivideTest(CustomStruct p, CustomClass ...
    method CustomStructModulusTest (line 4366) | public static void CustomStructModulusTest(CustomStruct p, CustomClass...
    method CustomStructLeftShiftTest (line 4393) | public static void CustomStructLeftShiftTest(CustomStruct p, CustomCla...
    method CustomStructRightShiftTest (line 4420) | public static void CustomStructRightShiftTest(CustomStruct p, CustomCl...
    method CustomStructUnsignedRightShiftTest (line 4448) | public static void CustomStructUnsignedRightShiftTest(CustomStruct p, ...
    method CustomStructBitAndTest (line 4473) | public static void CustomStructBitAndTest(CustomStruct p, CustomClass ...
    method CustomStructBitOrTest (line 4500) | public static void CustomStructBitOrTest(CustomStruct p, CustomClass c...
    method CustomStructBitXorTest (line 4527) | public static void CustomStructBitXorTest(CustomStruct p, CustomClass ...
    method CustomStructPostIncTest (line 4554) | public static void CustomStructPostIncTest(CustomStruct p, CustomClass...
    method CustomStructPreIncTest (line 4581) | public static void CustomStructPreIncTest(CustomStruct p, CustomClass ...
    method CustomStructPostDecTest (line 4607) | public static void CustomStructPostDecTest(CustomStruct p, CustomClass...
    method CustomStructPreDecTest (line 4634) | public static void CustomStructPreDecTest(CustomStruct p, CustomClass ...
    method AddOneToCustomClass (line 4662) | public static void AddOneToCustomClass(ref CustomClass c)
    method GetItem (line 4669) | private static Item GetItem(object obj)
    method Issue882 (line 4674) | private static void Issue882()
    method Issue954 (line 4680) | private void Issue954(ref MyEnum a, MyEnum b)
    method Issue588 (line 4688) | private void Issue588(ushort val)
    method Issue1007 (line 4693) | private void Issue1007(TimeSpan[] items, int startIndex, TimeSpan item)
    method Issue1082 (line 4706) | private static void Issue1082(string[] strings, List<char> chars, bool...
    method StringPropertyCompoundAssign (line 4722) | private static void StringPropertyCompoundAssign(char c)
    method PreIncrementIndexer (line 4732) | public uint PreIncrementIndexer(string name)
    method PreIncrementByRef (line 4737) | public int PreIncrementByRef(ref int i)
    method PreIncrementByPointer (line 4742) | public unsafe int PreIncrementByPointer()
    method PreIncrementOfPointer (line 4747) | public unsafe int PreIncrementOfPointer(int* ptr)
    method PreIncrement2DArray (line 4752) | public int PreIncrement2DArray()
    method CompoundAssignInstanceField (line 4757) | public int CompoundAssignInstanceField()
    method CompoundAssignInstanceProperty (line 4762) | public int CompoundAssignInstanceProperty()
    method CompoundAssignStaticField (line 4767) | public int CompoundAssignStaticField()
    method CompoundAssignStaticProperty (line 4772) | public int CompoundAssignStaticProperty()
    method CompoundAssignArrayElement1 (line 4777) | public int CompoundAssignArrayElement1(int[] array, int pos)
    method CompoundAssignArrayElement2 (line 4782) | public int CompoundAssignArrayElement2(int[] array)
    method CompoundAssignIndexer (line 4787) | public uint CompoundAssignIndexer(string name)
    method CompoundAssignIndexerComplexIndex (line 4792) | public uint CompoundAssignIndexerComplexIndex()
    method CompoundAssignIncrement2DArray (line 4797) | public int CompoundAssignIncrement2DArray()
    method CompoundAssignByRef (line 4802) | public int CompoundAssignByRef(ref int i)
    method CompoundAssignOfPointer (line 4807) | public unsafe int* CompoundAssignOfPointer(int* ptr)
    method CompoundAssignByPointer (line 4812) | public unsafe double CompoundAssignByPointer(double* ptr)
    method CompoundAssignEnum (line 4817) | public void CompoundAssignEnum()
    method PostIncrementInAddition (line 4823) | public int PostIncrementInAddition(int i, int j)
    method PostIncrementInlineLocalVariable (line 4828) | public void PostIncrementInlineLocalVariable(Func<int, int> f)
    method PostDecrementArrayElement (line 4834) | public int PostDecrementArrayElement(int[] array, int pos)
    method PostIncrementIndexer (line 4839) | public uint PostIncrementIndexer(string name)
    method PostIncrementOfPointer (line 4844) | public unsafe int PostIncrementOfPointer(int* ptr)
    method PostIncrementOfSmallIntegerPointerDereference (line 4849) | public unsafe int PostIncrementOfSmallIntegerPointerDereference(byte* ...
    method PreIncrementOfSmallIntegerPointerDereference (line 4854) | public unsafe int PreIncrementOfSmallIntegerPointerDereference(byte* ptr)
    method CompoundAssignSmallIntegerPointerDereference (line 4859) | public unsafe int CompoundAssignSmallIntegerPointerDereference(byte* ptr)
    method PostDecrementInstanceField (line 4864) | public int PostDecrementInstanceField()
    method PostDecrementInstanceProperty (line 4869) | public int PostDecrementInstanceProperty()
    method PostIncrement2DArray (line 4874) | public int PostIncrement2DArray()
    method PostIncrementByRef (line 4879) | public int PostIncrementByRef(ref int i)
    method PostIncrementByPointer (line 4884) | public unsafe int PostIncrementByPointer()
    method PostIncrementFloat (line 4889) | public float PostIncrementFloat(float f)
    method PostIncrementDouble (line 4894) | public double PostIncrementDouble(double d)
    method Issue1552Pre (line 4899) | public void Issue1552Pre(CustomStruct a, CustomStruct b)
    method Issue1552Stmt (line 4905) | public void Issue1552Stmt(CustomStruct a, CustomStruct b)
    method Issue1552StmtUseLater (line 4911) | public void Issue1552StmtUseLater(CustomStruct a, CustomStruct b)
    method Issue1552Decimal (line 4919) | public void Issue1552Decimal(decimal a)
    method Issue1552Post (line 4930) | public void Issue1552Post(CustomStruct a, CustomStruct b)
    method Issue1552StmtTwice (line 4936) | public void Issue1552StmtTwice(CustomStruct a, CustomStruct b)
    method Issue1779 (line 4944) | public void Issue1779(int value)
    method PreIncrementWithMethodCall (line 4951) | public static string PreIncrementWithMethodCall(int value)
    method PreIncrementWithInParameter (line 4958) | public static string PreIncrementWithInParameter(int value)
    method PreIncrementWithInParameter_Helper (line 4963) | public static void PreIncrementWithInParameter_Helper(in int value)

FILE: ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstantsTests.cs
  class ConstantsTests (line 8) | internal class ConstantsTests
    method NullableNInt (line 11) | public nint? NullableNInt()
    method NullableNUInt (line 16) | public nuint? NullableNUInt()
    method NullableIntPtr (line 23) | public IntPtr? NullableIntPtr()
    method NullableUIntPtr (line 28) | public UIntPtr? NullableUIntPtr()
    method Issue1308 (line 34) | public ulong Issue1308(ulong u = 8uL)
    method Byte_BitmaskingInCondition (line 40) | public void Byte_BitmaskingInCondition(byte v)
    method SByte_BitmaskingInCondition (line 48) | public void SByte_BitmaskingInCondition(sbyte v)
    method Enum_Flag_Check (line 56) | public void Enum_Flag_Check(TaskCreationOptions v)
    method Test (line 62) | private void Test(bool expr)
    method Test (line 66) | private void Test(decimal expr)
    method Decimal (line 70) | public void Decimal()
    method BitwiseAndWithConstantUInt64 (line 81) | public void BitwiseAndWithConstantUInt64(ulong a)
    method BitwiseAndWithConstantInt64 (line 90) | public void BitwiseAndWithConstantInt64(long a)
    method BitwiseAndWithConstantUInt32 (line 98) | public void BitwiseAndWithConstantUInt32(uint a)
    method BitwiseAndWithConstantInt32 (line 105) | public void BitwiseAndWithConstantInt32(int a)
    method BitwiseAndWithConstantUInt16 (line 111) | public void BitwiseAndWithConstantUInt16(ushort a)
    method BitwiseAndWithConstantInt16 (line 118) | public void BitwiseAndWithConstantInt16(short a)
    method BitwiseAndWithConstantUInt8 (line 124) | public void BitwiseAndWithConstantUInt8(byte a)
    method BitwiseAndWithConstantInt8 (line 131) | public void BitwiseAndWithConstantInt8(sbyte a)
    method BitwiseOrWithConstantUInt64 (line 137) | public void BitwiseOrWithConstantUInt64(ulong a)
    method BitwiseOrWithConstantInt64 (line 146) | public void BitwiseOrWithConstantInt64(long a)
    method BitwiseOrWithConstantUInt32 (line 154) | public void BitwiseOrWithConstantUInt32(uint a)
    method BitwiseOrWithConstantInt32 (line 161) | public void BitwiseOrWithConstantInt32(int a)
    method BitwiseOrWithConstantUInt16 (line 167) | public void BitwiseOrWithConstantUInt16(ushort a)
    method BitwiseOrWithConstantInt16 (line 174) | public void BitwiseOrWithConstantInt16(short a)
    method BitwiseOrWithConstantUInt8 (line 180) | public void BitwiseOrWithConstantUInt8(byte a)
    method BitwiseOrWithConstantInt8 (line 187) | public void BitwiseOrWithConstantInt8(sbyte a)
    method BitwiseXorWithConstantUInt64 (line 193) | public void BitwiseXorWithConstantUInt64(ulong a)
    method BitwiseXorWithConstantInt64 (line 202) | public void BitwiseXorWithConstantInt64(long a)
    method BitwiseXorWithConstantUInt32 (line 210) | public void BitwiseXorWithConstantUInt32(uint a)
    method BitwiseXorWithConstantInt32 (line 217) | public void BitwiseXorWithConstantInt32(int a)
    method BitwiseXorWithConstantUInt16 (line 223) | public void BitwiseXorWithConstantUInt16(ushort a)
    method BitwiseXorWithConstantInt16 (line 230) | public void BitwiseXorWithConstantInt16(short a)
    method BitwiseXorWithConstantUInt8 (line 236) | public void BitwiseXorWithConstantUInt8(byte a)
    method Bitwis
Copy disabled (too large) Download .json
Condensed preview — 1740 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (12,469K chars).
[
  {
    "path": ".editorconfig",
    "chars": 11998,
    "preview": "; Top-most EditorConfig file\nroot = true\n\n[*]\ncharset = utf-8 # standardize on no BOM (except resx, see below)\nindent_st"
  },
  {
    "path": ".git-blame-ignore-revs",
    "chars": 91,
    "preview": "# https://github.com/icsharpcode/ILSpy/issues/2128\n0d9f871a4f7c478fdf3f7b699d74e77506e978a4"
  },
  {
    "path": ".gitattributes",
    "chars": 77,
    "preview": "* text=auto\n*.cs text diff=csharp\n*.sln text eol=crlf\n*.csproj text eol=crlf\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 53,
    "preview": "github: [dgrunwald, siegfriedpammer, christophwille]\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 598,
    "preview": "---\nname: General bug report\nabout: Error dialog, crash, or anything else unrelated to the decompiled code\ntitle: ''\nlab"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 584,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: Enhancement\nassignees: ''\n\n---\n\n**Is"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/wrong_decompilation.md",
    "chars": 972,
    "preview": "---\nname: Wrong decompilation\nabout: Decompiled code doesn't compile, or behaves differently to the original IL\ntitle: '"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 301,
    "preview": "Link to issue(s) this covers\n\n### Problem\nLink to, or brief information about the issue\n\n### Solution\n* Any comments on "
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 219,
    "preview": "# Set update schedule for GitHub Actions\n\nversion: 2\nupdates:\n\n  - package-ecosystem: \"github-actions\"\n    directory: \"/"
  },
  {
    "path": ".github/workflows/build-frontends.yml",
    "chars": 1070,
    "preview": "name: Build XPlat Frontends\n\non:\n  push:\n    branches: '**'\n  pull_request:\n    branches: [ master, release/** ]\n\npermis"
  },
  {
    "path": ".github/workflows/build-ilspy.yml",
    "chars": 10009,
    "preview": "name: Build ILSpy\n\non:\n  push:\n    branches: '**'\n  pull_request:\n    branches: [ master, release/** ]\n\npermissions:\n  c"
  },
  {
    "path": ".github/workflows/codeql-analysis.yml",
    "chars": 1061,
    "preview": "name: \"CodeQL\"\n\non:\n  push:\n    branches: '**'\n  pull_request:\n    branches: [ master, release/** ]\n\npermissions:\n  cont"
  },
  {
    "path": ".github/workflows/generate-bom.yml",
    "chars": 686,
    "preview": "name: Generate BOM\n\non:\n  workflow_dispatch:\n\npermissions:\n  contents: read\n\njobs:\n  build:\n\n    runs-on: windows-2022\n\n"
  },
  {
    "path": ".github/workflows/lock.yml",
    "chars": 435,
    "preview": "name: 'Lock threads'\n\non:\n  schedule:\n    - cron: '0 0 * * *'\n\npermissions:\n  contents: read\n\njobs:\n  lock:\n    permissi"
  },
  {
    "path": ".github/workflows/scorecard.yml",
    "chars": 1386,
    "preview": "name: Scorecard supply-chain security\n\non:\n  # For Branch-Protection check. Only the default branch is supported. See\n  "
  },
  {
    "path": ".gitignore",
    "chars": 605,
    "preview": "bin/\nobj/\nAppPackages/\nBundleArtifacts/\n*.user\n/Resharper-ILSpy-Style.xml\n_ReSharper*/\n*.ReSharper\n*.patch\n.vs/\n.idea/\n/"
  },
  {
    "path": ".gitmodules",
    "chars": 113,
    "preview": "[submodule \"ILSpy-tests\"]\n\tpath = ILSpy-tests\n\turl = https://github.com/icsharpcode/ILSpy-tests\n\tbranch = master\n"
  },
  {
    "path": ".tgitconfig",
    "chars": 38,
    "preview": "[tgit]\n\ticon = ILSpy/Images/ILSpy.ico\n"
  },
  {
    "path": "BuildTools/ILSpy.AddIn.VS2022.vsix.filelist",
    "chars": 1724,
    "preview": "[Content_Types].xml\ncatalog.json\nen-US\\ILSpy.AddIn.VS2022.resources.dll\nextension.vsixmanifest\nICSharpCode.Decompiler.dl"
  },
  {
    "path": "BuildTools/ILSpy.AddIn.vsix.filelist",
    "chars": 1703,
    "preview": "[Content_Types].xml\ncatalog.json\nen-US\\ILSpy.AddIn.resources.dll\nextension.vsixmanifest\nICSharpCode.Decompiler.dll\nICSha"
  },
  {
    "path": "BuildTools/ILSpy.msi.filelist",
    "chars": 1587,
    "preview": "AvalonDock.dll_2384574099\nAvalonDock.Themes.VS2013.dll_1693991188\nDataGridExtensions.dll_3175011569\nIced.dll_3795180016\n"
  },
  {
    "path": "BuildTools/bom-classify-encodings.ps1",
    "chars": 4879,
    "preview": "<#\n.SYNOPSIS\nClassify text files by encoding under the current subtree, respecting .gitignore.\n\n.DESCRIPTION\nEnumerates "
  },
  {
    "path": "BuildTools/bom-strip.ps1",
    "chars": 5394,
    "preview": "<#\n.SYNOPSIS\nStrip UTF-8 BOM from selected text files under the current subtree, respecting\n.gitignore.\n\n.DESCRIPTION\nEn"
  },
  {
    "path": "BuildTools/create-filelists.ps1",
    "chars": 651,
    "preview": "$ErrorActionPreference = \"Stop\";\n\n$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False\n\ngci -Include *.vsix, "
  },
  {
    "path": "BuildTools/format.bat",
    "chars": 228,
    "preview": "@rem This file can be used to trigger the commit hook's formatting,\n@rem modifying the local formatting even if not comm"
  },
  {
    "path": "BuildTools/ghactions-install.ps1",
    "chars": 1535,
    "preview": "$ErrorActionPreference = \"Stop\"\n\n$baseCommit = \"d779383cb85003d6dabeb976f0845631e07bf463\";\n$baseCommitRev = 1;\n\n# make s"
  },
  {
    "path": "BuildTools/pre-commit",
    "chars": 1151,
    "preview": "#!/bin/sh\n#\n# To enable this hook, copy/symlink this file to \".git/hooks/pre-commit\".\n#  mklink .git\\hooks\\pre-commit .."
  },
  {
    "path": "BuildTools/sort-resx.ps1",
    "chars": 655,
    "preview": "$ErrorActionPreference = \"Stop\";\n\n[Reflection.Assembly]::LoadWithPartialName(\"System.Xml.Linq\") | Out-Null\n\nWrite-Host \""
  },
  {
    "path": "BuildTools/update-assemblyinfo.ps1",
    "chars": 5836,
    "preview": "if (-not ($PSVersionTable.PSCompatibleVersions -contains \"5.0\")) {\n\tWrite-Error \"This script requires at least powershel"
  },
  {
    "path": "Directory.Build.props",
    "chars": 181,
    "preview": "<Project>\n  <PropertyGroup>\n    <NoWarn>$(NoWarn);NU1510</NoWarn>\n  </PropertyGroup>\n\n  <PropertyGroup>\n    <EnableNUnit"
  },
  {
    "path": "Directory.Packages.props",
    "chars": 4235,
    "preview": "<Project>\n  <PropertyGroup>\n    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>\n    <CentralPackag"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Baml/BamlContext.cs",
    "chars": 4371,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Baml/BamlDocument.cs",
    "chars": 1520,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Baml/BamlNode.cs",
    "chars": 5329,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Baml/BamlReader.cs",
    "chars": 8770,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Baml/BamlRecords.cs",
    "chars": 29511,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Baml/BamlWriter.cs",
    "chars": 2342,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Baml/KnownMembers.cs",
    "chars": 9807,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Baml/KnownThings.cs",
    "chars": 3637,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Baml/KnownThings.g.cs",
    "chars": 149940,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Baml/KnownThings.gen.cs",
    "chars": 10074,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Baml/KnownTypes.cs",
    "chars": 20582,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/BamlConnectionId.cs",
    "chars": 1628,
    "preview": "/*\n\tCopyright (c) 2019 Siegfried Pammer\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\t"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/BamlDecompilationResult.cs",
    "chars": 1857,
    "preview": "// Copyright (c) 2021 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/BamlDecompilerSettings.cs",
    "chars": 1867,
    "preview": "// Copyright (c) 2021 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/BamlDecompilerTypeSystem.cs",
    "chars": 6168,
    "preview": "// Copyright (c) 2021 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/BamlElement.cs",
    "chars": 2069,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Blocks/ConstructorParametersHandler.cs",
    "chars": 1631,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Blocks/DocumentHandler.cs",
    "chars": 1558,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Blocks/ElementHandler.cs",
    "chars": 2194,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Blocks/KeyElementStartHandler.cs",
    "chars": 2023,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Blocks/PropertyArrayHandler.cs",
    "chars": 1906,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Blocks/PropertyComplexHandler.cs",
    "chars": 1912,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Blocks/PropertyDictionaryHandler.cs",
    "chars": 1921,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Blocks/PropertyListHandler.cs",
    "chars": 1903,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/AssemblyInfoHandler.cs",
    "chars": 1365,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/AttributeInfoHandler.cs",
    "chars": 1367,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/ConnectionIdHandler.cs",
    "chars": 1530,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/ConstructorParameterTypeHandler.cs",
    "chars": 2007,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/ContentPropertyHandler.cs",
    "chars": 1486,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/DefAttributeHandler.cs",
    "chars": 1649,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/DefAttributeKeyStringHandler.cs",
    "chars": 2047,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/DefAttributeKeyTypeHandler.cs",
    "chars": 2380,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/DeferableContentStartHandler.cs",
    "chars": 1574,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/LineNumberAndPositionHandler.cs",
    "chars": 1383,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/LinePositionHandler.cs",
    "chars": 1365,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/LiteralContentHandler.cs",
    "chars": 1689,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/OptimizedStaticResourceHandler.cs",
    "chars": 4019,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/PIMappingHandler.cs",
    "chars": 1359,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/PresentationOptionsAttributeHandler.cs",
    "chars": 1745,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/PropertyCustomHandler.cs",
    "chars": 6093,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/PropertyHandler.cs",
    "chars": 2250,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/PropertyTypeReferenceHandler.cs",
    "chars": 2724,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/PropertyWithConverterHandler.cs",
    "chars": 1309,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/PropertyWithExtensionHandler.cs",
    "chars": 4343,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/PropertyWithStaticResourceIdHandler.cs",
    "chars": 2502,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/StaticResourceIdHandler.cs",
    "chars": 2130,
    "preview": "// Copyright (c) 2019 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/StaticResourceStartHandler.cs",
    "chars": 2197,
    "preview": "// Copyright (c) 2019 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/TextHandler.cs",
    "chars": 1816,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/TextWithConverterHandler.cs",
    "chars": 1297,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/TypeInfoHandler.cs",
    "chars": 1577,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Handlers/Records/XmlnsPropertyHandler.cs",
    "chars": 2888,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/ICSharpCode.BamlDecompiler.csproj",
    "chars": 3551,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n\r\n  <PropertyGroup>\r\n    <TargetFramework>net10.0</TargetFramework>\r\n    \r\n    <Sign"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/IHandlers.cs",
    "chars": 3128,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/IRewritePass.cs",
    "chars": 1221,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/PackageReadme.md",
    "chars": 111,
    "preview": "## About\n\nICSharpCode.BamlDecompiler is the library used by the BAML Addin in ILSpy to decompile BAML to XAML.\n"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Properties/AssemblyInfo.cs",
    "chars": 844,
    "preview": "#region Using directives\n\nusing System.Diagnostics.CodeAnalysis;\nusing System.Reflection;\nusing System.Runtime.InteropSe"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Rewrite/AttributeRewritePass.cs",
    "chars": 2619,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Rewrite/ConnectionIdRewritePass.cs",
    "chars": 15569,
    "preview": "// Copyright (c) 2019 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Rewrite/DocumentRewritePass.cs",
    "chars": 1676,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Rewrite/MarkupExtensionRewritePass.cs",
    "chars": 5567,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Rewrite/XClassRewritePass.cs",
    "chars": 2601,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Xaml/NamespaceMap.cs",
    "chars": 1878,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Xaml/XamlExtension.cs",
    "chars": 2673,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Xaml/XamlPathDeserializer.cs",
    "chars": 5180,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Xaml/XamlProperty.cs",
    "chars": 3117,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Xaml/XamlResourceKey.cs",
    "chars": 3404,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Xaml/XamlType.cs",
    "chars": 4018,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/Xaml/XamlUtils.cs",
    "chars": 3209,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/XamlContext.cs",
    "chars": 7248,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/XamlDecompiler.cs",
    "chars": 4521,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/XmlnsDictionary.cs",
    "chars": 3748,
    "preview": "/*\n\tCopyright (c) 2015 Ki\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this softwa"
  },
  {
    "path": "ICSharpCode.BamlDecompiler/packages.lock.json",
    "chars": 1308,
    "preview": "{\n  \"version\": 2,\n  \"dependencies\": {\n    \"net10.0\": {\n      \"Microsoft.Sbom.Targets\": {\n        \"type\": \"Direct\",\n     "
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Annotations.cs",
    "chars": 11387,
    "preview": "// Copyright (c) 2014 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs",
    "chars": 86494,
    "preview": "// Copyright (c) 2014 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/CSharpLanguageVersion.cs",
    "chars": 1535,
    "preview": "// Copyright (c) 2018 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/CallBuilder.cs",
    "chars": 85984,
    "preview": "// Copyright (c) 2014 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs",
    "chars": 197900,
    "preview": "// Copyright (c) 2014-2020 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/OutputVisitor/CSharpAmbience.cs",
    "chars": 17473,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/OutputVisitor/CSharpFormattingOptions.cs",
    "chars": 18341,
    "preview": "// \n// CSharpFormattingOptions.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n//  \n// Copyright (c) 2009 "
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/OutputVisitor/CSharpOutputVisitor.cs",
    "chars": 97080,
    "preview": "// Copyright (c) 2010-2020 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/OutputVisitor/FormattingOptionsFactory.cs",
    "chars": 18211,
    "preview": "// \n// FormattingOptionsFactory.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@xamarin.com>\n// \n// Copyright (c) 2012"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/OutputVisitor/GenericGrammarAmbiguityVisitor.cs",
    "chars": 4617,
    "preview": "// Copyright (c) 2020 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/OutputVisitor/ITokenWriter.cs",
    "chars": 5395,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/OutputVisitor/InsertMissingTokensDecorator.cs",
    "chars": 5415,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/OutputVisitor/InsertParenthesesVisitor.cs",
    "chars": 20477,
    "preview": "// Copyright (c) 2010-2020 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/OutputVisitor/InsertRequiredSpacesDecorator.cs",
    "chars": 6275,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/OutputVisitor/InsertSpecialsDecorator.cs",
    "chars": 5049,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/OutputVisitor/TextWriterTokenWriter.cs",
    "chars": 15895,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/ProjectDecompiler/IProjectFileWriter.cs",
    "chars": 2032,
    "preview": "// Copyright (c) 2020 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/ProjectDecompiler/IProjectInfoProvider.cs",
    "chars": 2248,
    "preview": "// Copyright (c) 2020 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/ProjectDecompiler/ProjectFileWriterDefault.cs",
    "chars": 7953,
    "preview": "// Copyright (c) 2020 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/ProjectDecompiler/ProjectFileWriterSdkStyle.cs",
    "chars": 10914,
    "preview": "// Copyright (c) 2020 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/ProjectDecompiler/TargetFramework.cs",
    "chars": 4728,
    "preview": "// Copyright (c) 2020 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/ProjectDecompiler/TargetServices.cs",
    "chars": 13956,
    "preview": "// Copyright (c) 2020 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/ProjectDecompiler/WholeProjectDecompiler.cs",
    "chars": 28499,
    "preview": "// Copyright (c) 2016 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/RecordDecompiler.cs",
    "chars": 43566,
    "preview": "// Copyright (c) 2020 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/RequiredNamespaceCollector.cs",
    "chars": 11745,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Collections.Immutable;\nusing System.Linq;\nusing System.Refl"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/AliasNamespaceResolveResult.cs",
    "chars": 1761,
    "preview": "//\n// AliasResolveResult.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@xamarin.com>\n//\n// Copyright (c) 2013 Xamarin I"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/AliasTypeResolveResult.cs",
    "chars": 1734,
    "preview": "//\n// AliasTypeResolveResult.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@xamarin.com>\n//\n// Copyright (c) 2013 Xamar"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/AwaitResolveResult.cs",
    "chars": 3729,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/CSharpConversions.cs",
    "chars": 60424,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/CSharpInvocationResolveResult.cs",
    "chars": 5169,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/CSharpOperators.cs",
    "chars": 37904,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/CSharpResolver.cs",
    "chars": 111704,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/DynamicInvocationResolveResult.cs",
    "chars": 3504,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/DynamicMemberResolveResult.cs",
    "chars": 2130,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/LambdaResolveResult.cs",
    "chars": 6894,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/Log.cs",
    "chars": 2918,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/MemberLookup.cs",
    "chars": 29183,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/MethodGroupResolveResult.cs",
    "chars": 11366,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/NameLookupMode.cs",
    "chars": 1837,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/OverloadResolution.cs",
    "chars": 43591,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/OverloadResolutionErrors.cs",
    "chars": 3517,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Resolver/TypeInference.cs",
    "chars": 39945,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs",
    "chars": 21687,
    "preview": "// Copyright (c) 2017 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/StatementBuilder.cs",
    "chars": 60707,
    "preview": "// Copyright (c) 2014 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/AstNode.cs",
    "chars": 29737,
    "preview": "#nullable enable\n// \n// AstNode.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 No"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/AstNodeCollection.cs",
    "chars": 6445,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/AstType.cs",
    "chars": 7133,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/CSharpModifierToken.cs",
    "chars": 5536,
    "preview": "// \n// CSharpModifierToken.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2010 Novell,"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/CSharpTokenNode.cs",
    "chars": 3952,
    "preview": "// \n// TokenNode.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2010 Novell, Inc (ht"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/ComposedType.cs",
    "chars": 7638,
    "preview": "// \n// ComposedType.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2010 Novell, Inc (h"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/DepthFirstAstVisitor.cs",
    "chars": 58911,
    "preview": "// \n// IAstVisitor.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2010 Novell, Inc (ht"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/DocumentationReference.cs",
    "chars": 5103,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousMethodExpression.cs",
    "chars": 3798,
    "preview": "// \n// AnonymousMethodExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 N"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousTypeCreateExpression.cs",
    "chars": 2871,
    "preview": "// \n// AnonymousTypeCreateExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) "
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayCreateExpression.cs",
    "chars": 3251,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayInitializerExpression.cs",
    "chars": 5520,
    "preview": "// \n// ArrayInitializerExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2010 "
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AsExpression.cs",
    "chars": 2611,
    "preview": "// \n// AsExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2010 Novell, Inc "
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AssignmentExpression.cs",
    "chars": 9736,
    "preview": "// \n// AssignmentExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Novell"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BaseReferenceExpression.cs",
    "chars": 2227,
    "preview": "// \n// BaseReferenceExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 N"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BinaryOperatorExpression.cs",
    "chars": 9984,
    "preview": "// \n// BinaryOperatorExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 No"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CastExpression.cs",
    "chars": 2646,
    "preview": "// \n// CastExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Novell, In"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CheckedExpression.cs",
    "chars": 2607,
    "preview": "// \n// CheckedExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Novell,"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ConditionalExpression.cs",
    "chars": 3442,
    "preview": "// \n// ConditionalExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Novel"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DeclarationExpression.cs",
    "chars": 2226,
    "preview": "// Copyright (c) 2020 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DefaultValueExpression.cs",
    "chars": 2593,
    "preview": "// \n// DefaultValueExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2010 No"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DirectionExpression.cs",
    "chars": 3025,
    "preview": "// \n// DirectionExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2010 Novel"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ErrorExpression.cs",
    "chars": 2238,
    "preview": "// \n// ErrorExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@xamarin.com>\n// \n// Copyright (c) 2011 Xamarin "
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/Expression.cs",
    "chars": 4009,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IdentifierExpression.cs",
    "chars": 2776,
    "preview": "// \n// IdentifierExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Nove"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IndexerExpression.cs",
    "chars": 2930,
    "preview": "// \n// IndexerExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Novell,"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InterpolatedStringExpression.cs",
    "chars": 4565,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nusing ICSharpCode.Decompiler.CSharp.Syntax.PatternMa"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InvocationExpression.cs",
    "chars": 2942,
    "preview": "// \n// InvocationExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Novell"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IsExpression.cs",
    "chars": 2572,
    "preview": "// \n// TypeOfIsExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2010 Novell, "
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/LambdaExpression.cs",
    "chars": 3054,
    "preview": "// \n// LambdaExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2010 Novell, In"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/MemberReferenceExpression.cs",
    "chars": 3572,
    "preview": "// \n// MemberReferenceExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 N"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedArgumentExpression.cs",
    "chars": 2747,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedExpression.cs",
    "chars": 2851,
    "preview": "// \n// NamedExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@xamarin.com>\n// \n// Copyright (c) 2011 Xamarin\n"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NullReferenceExpression.cs",
    "chars": 2443,
    "preview": "// \n// NullReferenceExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Nov"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ObjectCreateExpression.cs",
    "chars": 3406,
    "preview": "// \n// ObjectCreateExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 No"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/OutVarDeclarationExpression.cs",
    "chars": 2564,
    "preview": "// Copyright (c) 2017 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ParenthesizedExpression.cs",
    "chars": 3341,
    "preview": "// \n// ParenthesizedExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Nov"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PointerReferenceExpression.cs",
    "chars": 2839,
    "preview": "// \n// PointerReferenceExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 200"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PrimitiveExpression.cs",
    "chars": 3802,
    "preview": "// \n// PrimitiveExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Novell,"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/QueryExpression.cs",
    "chars": 17371,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/RecursivePatternExpression.cs",
    "chars": 2545,
    "preview": "// Copyright (c) 2023 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SizeOfExpression.cs",
    "chars": 2533,
    "preview": "// \n// SizeOfExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Novell, "
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/StackAllocExpression.cs",
    "chars": 3068,
    "preview": "// \n// StackAllocExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Nove"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SwitchExpression.cs",
    "chars": 4042,
    "preview": "// Copyright (c) 2020 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThisReferenceExpression.cs",
    "chars": 2227,
    "preview": "// \n// ThisReferenceExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 N"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThrowExpression.cs",
    "chars": 2297,
    "preview": "// Copyright (c) 2017 Siegfried Pammer\n// \n// Permission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TupleExpression.cs",
    "chars": 1923,
    "preview": "// Copyright (c) 2018 Daniel Grunwald\n// \n// Permission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeOfExpression.cs",
    "chars": 2531,
    "preview": "// \n// TypeOfExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Novell, In"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeReferenceExpression.cs",
    "chars": 2252,
    "preview": "// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UnaryOperatorExpression.cs",
    "chars": 8691,
    "preview": "// \n// UnaryOperatorExpression.cs\n//\n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Nov"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UncheckedExpression.cs",
    "chars": 2635,
    "preview": "// \n// UncheckedExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2009 Novel"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UndocumentedExpression.cs",
    "chars": 3595,
    "preview": "// \n// UndocumentedExpression.cs\n//  \n// Author:\n//       Mike Krüger <mkrueger@novell.com>\n// \n// Copyright (c) 2010 No"
  },
  {
    "path": "ICSharpCode.Decompiler/CSharp/Syntax/Expressions/WithInitializerExpression.cs",
    "chars": 2582,
    "preview": "// Copyright (c) 2010-2021 AlphaSierraPapa for the SharpDevelop Team\n// \n// Permission is hereby granted, free of charge"
  }
]

// ... and 1540 more files (download for full content)

About this extraction

This page contains the full source code of the icsharpcode/ILSpy GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1740 files (10.6 MB), approximately 2.9M tokens, and a symbol index with 17593 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!