@@ -68,53 +68,9 @@ internal class CasePattern : Case<CasePatternSwitchLabelSyntax>
6868 private CasePattern ( Context cx , CasePatternSwitchLabelSyntax node , Switch parent , int child )
6969 : base ( cx , node , parent , child ) { }
7070
71- private void PopulatePattern ( PatternSyntax pattern , TypeSyntax optionalType , VariableDesignationSyntax designation )
72- {
73- var isVar = optionalType is null ;
74- switch ( designation )
75- {
76- case SingleVariableDesignationSyntax _:
77- if ( cx . GetModel ( pattern ) . GetDeclaredSymbol ( designation ) is ILocalSymbol symbol )
78- {
79- var type = Type . Create ( cx , symbol . GetAnnotatedType ( ) ) ;
80- Expressions . VariableDeclaration . Create ( cx , symbol , type , optionalType , cx . Create ( pattern . GetLocation ( ) ) , isVar , this , 0 ) ;
81- }
82- break ;
83- case DiscardDesignationSyntax discard :
84- if ( isVar )
85- new Expressions . Discard ( cx , discard , this , 0 ) ;
86- else
87- Expressions . TypeAccess . Create ( cx , optionalType , this , 0 ) ;
88- break ;
89- case null :
90- break ;
91- case ParenthesizedVariableDesignationSyntax paren :
92- Expressions . VariableDeclaration . CreateParenthesized ( cx , ( VarPatternSyntax ) pattern , paren , this , 0 ) ;
93- break ;
94- default :
95- throw new InternalError ( pattern , "Unhandled designation in case statement" ) ;
96- }
97- }
98-
9971 protected override void PopulateStatement ( TextWriter trapFile )
10072 {
101- switch ( Stmt . Pattern )
102- {
103- case VarPatternSyntax varPattern :
104- PopulatePattern ( varPattern , null , varPattern . Designation ) ;
105- break ;
106- case DeclarationPatternSyntax declarationPattern :
107- PopulatePattern ( declarationPattern , declarationPattern . Type , declarationPattern . Designation ) ;
108- break ;
109- case ConstantPatternSyntax pattern :
110- Expression . Create ( cx , pattern . Expression , this , 0 ) ;
111- break ;
112- case RecursivePatternSyntax recPattern :
113- new Expressions . RecursivePattern ( cx , recPattern , this , 0 ) ;
114- break ;
115- default :
116- throw new InternalError ( Stmt , "Case pattern not handled" ) ;
117- }
73+ Expressions . Pattern . Create ( cx , Stmt . Pattern , this , 0 ) ;
11874
11975 if ( Stmt . WhenClause != null )
12076 {
0 commit comments