@@ -9,40 +9,50 @@ namespace StyleCop.Analyzers.Lightup
99 using Microsoft . CodeAnalysis ;
1010 using Microsoft . CodeAnalysis . CSharp ;
1111
12- internal static class WrapperHelper
12+ internal static class SyntaxWrapperHelper
1313 {
1414 private static readonly ImmutableDictionary < Type , Type > WrappedTypes ;
15-
16- static WrapperHelper ( )
15+ static SyntaxWrapperHelper ( )
1716 {
1817 var csharpCodeAnalysisAssembly = typeof ( CSharpSyntaxNode ) . GetTypeInfo ( ) . Assembly ;
1918 var builder = ImmutableDictionary . CreateBuilder < Type , Type > ( ) ;
20-
19+ builder . Add ( typeof ( BaseObjectCreationExpressionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( BaseObjectCreationExpressionSyntaxWrapper . WrappedTypeName ) ) ;
20+ builder . Add ( typeof ( BaseParameterSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( BaseParameterSyntaxWrapper . WrappedTypeName ) ) ;
21+ builder . Add ( typeof ( BinaryPatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( BinaryPatternSyntaxWrapper . WrappedTypeName ) ) ;
2122 builder . Add ( typeof ( CasePatternSwitchLabelSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( CasePatternSwitchLabelSyntaxWrapper . WrappedTypeName ) ) ;
22-
23- // Prior to C# 7, ForEachStatementSyntax was the base type for all foreach statements. If
24- // the CommonForEachStatementSyntax type isn't found at runtime, we fall back to using this type instead.
25- var forEachStatementSyntaxType = csharpCodeAnalysisAssembly . GetType ( CommonForEachStatementSyntaxWrapper . WrappedTypeName )
26- ?? csharpCodeAnalysisAssembly . GetType ( CommonForEachStatementSyntaxWrapper . FallbackWrappedTypeName ) ;
23+ var forEachStatementSyntaxType = csharpCodeAnalysisAssembly . GetType ( CommonForEachStatementSyntaxWrapper . WrappedTypeName ) ?? csharpCodeAnalysisAssembly . GetType ( CommonForEachStatementSyntaxWrapper . FallbackWrappedTypeName ) ;
2724 builder . Add ( typeof ( CommonForEachStatementSyntaxWrapper ) , forEachStatementSyntaxType ) ;
28-
2925 builder . Add ( typeof ( ConstantPatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( ConstantPatternSyntaxWrapper . WrappedTypeName ) ) ;
3026 builder . Add ( typeof ( DeclarationExpressionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( DeclarationExpressionSyntaxWrapper . WrappedTypeName ) ) ;
3127 builder . Add ( typeof ( DeclarationPatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( DeclarationPatternSyntaxWrapper . WrappedTypeName ) ) ;
28+ builder . Add ( typeof ( DefaultConstraintSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( DefaultConstraintSyntaxWrapper . WrappedTypeName ) ) ;
3229 builder . Add ( typeof ( DiscardDesignationSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( DiscardDesignationSyntaxWrapper . WrappedTypeName ) ) ;
3330 builder . Add ( typeof ( DiscardPatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( DiscardPatternSyntaxWrapper . WrappedTypeName ) ) ;
31+ builder . Add ( typeof ( ExpressionOrPatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( ExpressionOrPatternSyntaxWrapper . WrappedTypeName ) ) ;
3432 builder . Add ( typeof ( ForEachVariableStatementSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( ForEachVariableStatementSyntaxWrapper . WrappedTypeName ) ) ;
35- builder . Add ( typeof ( IsPatternExpressionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( IsPatternExpressionSyntaxWrapper . WrappedTypeName ) ) ;
33+ builder . Add ( typeof ( FunctionPointerCallingConventionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( FunctionPointerCallingConventionSyntaxWrapper . WrappedTypeName ) ) ;
34+ builder . Add ( typeof ( FunctionPointerParameterListSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( FunctionPointerParameterListSyntaxWrapper . WrappedTypeName ) ) ;
35+ builder . Add ( typeof ( FunctionPointerParameterSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( FunctionPointerParameterSyntaxWrapper . WrappedTypeName ) ) ;
36+ builder . Add ( typeof ( FunctionPointerTypeSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( FunctionPointerTypeSyntaxWrapper . WrappedTypeName ) ) ;
37+ builder . Add ( typeof ( FunctionPointerUnmanagedCallingConventionListSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( FunctionPointerUnmanagedCallingConventionListSyntaxWrapper . WrappedTypeName ) ) ;
38+ builder . Add ( typeof ( FunctionPointerUnmanagedCallingConventionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( FunctionPointerUnmanagedCallingConventionSyntaxWrapper . WrappedTypeName ) ) ;
39+ builder . Add ( typeof ( ImplicitObjectCreationExpressionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( ImplicitObjectCreationExpressionSyntaxWrapper . WrappedTypeName ) ) ;
3640 builder . Add ( typeof ( ImplicitStackAllocArrayCreationExpressionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( ImplicitStackAllocArrayCreationExpressionSyntaxWrapper . WrappedTypeName ) ) ;
41+ builder . Add ( typeof ( IsPatternExpressionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( IsPatternExpressionSyntaxWrapper . WrappedTypeName ) ) ;
3742 builder . Add ( typeof ( LocalFunctionStatementSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( LocalFunctionStatementSyntaxWrapper . WrappedTypeName ) ) ;
43+ builder . Add ( typeof ( NullableDirectiveTriviaSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( NullableDirectiveTriviaSyntaxWrapper . WrappedTypeName ) ) ;
44+ builder . Add ( typeof ( ParenthesizedPatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( ParenthesizedPatternSyntaxWrapper . WrappedTypeName ) ) ;
3845 builder . Add ( typeof ( ParenthesizedVariableDesignationSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( ParenthesizedVariableDesignationSyntaxWrapper . WrappedTypeName ) ) ;
3946 builder . Add ( typeof ( PatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( PatternSyntaxWrapper . WrappedTypeName ) ) ;
4047 builder . Add ( typeof ( PositionalPatternClauseSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( PositionalPatternClauseSyntaxWrapper . WrappedTypeName ) ) ;
48+ builder . Add ( typeof ( PrimaryConstructorBaseTypeSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( PrimaryConstructorBaseTypeSyntaxWrapper . WrappedTypeName ) ) ;
4149 builder . Add ( typeof ( PropertyPatternClauseSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( PropertyPatternClauseSyntaxWrapper . WrappedTypeName ) ) ;
4250 builder . Add ( typeof ( RangeExpressionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( RangeExpressionSyntaxWrapper . WrappedTypeName ) ) ;
51+ builder . Add ( typeof ( RecordDeclarationSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( RecordDeclarationSyntaxWrapper . WrappedTypeName ) ) ;
4352 builder . Add ( typeof ( RecursivePatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( RecursivePatternSyntaxWrapper . WrappedTypeName ) ) ;
4453 builder . Add ( typeof ( RefExpressionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( RefExpressionSyntaxWrapper . WrappedTypeName ) ) ;
4554 builder . Add ( typeof ( RefTypeSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( RefTypeSyntaxWrapper . WrappedTypeName ) ) ;
55+ builder . Add ( typeof ( RelationalPatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( RelationalPatternSyntaxWrapper . WrappedTypeName ) ) ;
4656 builder . Add ( typeof ( SingleVariableDesignationSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( SingleVariableDesignationSyntaxWrapper . WrappedTypeName ) ) ;
4757 builder . Add ( typeof ( SubpatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( SubpatternSyntaxWrapper . WrappedTypeName ) ) ;
4858 builder . Add ( typeof ( SwitchExpressionArmSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( SwitchExpressionArmSyntaxWrapper . WrappedTypeName ) ) ;
@@ -51,22 +61,18 @@ static WrapperHelper()
5161 builder . Add ( typeof ( TupleElementSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( TupleElementSyntaxWrapper . WrappedTypeName ) ) ;
5262 builder . Add ( typeof ( TupleExpressionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( TupleExpressionSyntaxWrapper . WrappedTypeName ) ) ;
5363 builder . Add ( typeof ( TupleTypeSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( TupleTypeSyntaxWrapper . WrappedTypeName ) ) ;
54- builder . Add ( typeof ( VarPatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( VarPatternSyntaxWrapper . WrappedTypeName ) ) ;
64+ builder . Add ( typeof ( TypePatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( TypePatternSyntaxWrapper . WrappedTypeName ) ) ;
65+ builder . Add ( typeof ( UnaryPatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( UnaryPatternSyntaxWrapper . WrappedTypeName ) ) ;
5566 builder . Add ( typeof ( VariableDesignationSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( VariableDesignationSyntaxWrapper . WrappedTypeName ) ) ;
67+ builder . Add ( typeof ( VarPatternSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( VarPatternSyntaxWrapper . WrappedTypeName ) ) ;
5668 builder . Add ( typeof ( WhenClauseSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( WhenClauseSyntaxWrapper . WrappedTypeName ) ) ;
57-
69+ builder . Add ( typeof ( WithExpressionSyntaxWrapper ) , csharpCodeAnalysisAssembly . GetType ( WithExpressionSyntaxWrapper . WrappedTypeName ) ) ;
5870 WrappedTypes = builder . ToImmutable ( ) ;
5971 }
6072
61- /// <summary>
62- /// Gets the type that is wrapped by the given wrapper.
63- /// </summary>
64- /// <param name="wrapperType">Type of the wrapper for which the wrapped type should be retrieved.</param>
65- /// <returns>The wrapped type, or null if there is no info.</returns>
6673 internal static Type GetWrappedType ( Type wrapperType )
6774 {
68- Type wrappedType ;
69- if ( WrappedTypes . TryGetValue ( wrapperType , out wrappedType ) )
75+ if ( WrappedTypes . TryGetValue ( wrapperType , out Type wrappedType ) )
7076 {
7177 return wrappedType ;
7278 }
0 commit comments