@@ -31,12 +31,13 @@ class LocalFunctionMethod : IMethod
3131 {
3232 readonly IMethod baseMethod ;
3333
34- public LocalFunctionMethod ( IMethod baseMethod , string name , int numberOfCompilerGeneratedParameters , int numberOfCompilerGeneratedTypeParameters )
34+ public LocalFunctionMethod ( IMethod baseMethod , string name , bool isStaticLocalFunction , int numberOfCompilerGeneratedParameters , int numberOfCompilerGeneratedTypeParameters )
3535 {
3636 if ( baseMethod == null )
3737 throw new ArgumentNullException ( nameof ( baseMethod ) ) ;
3838 this . baseMethod = baseMethod ;
3939 this . Name = name ;
40+ this . IsStaticLocalFunction = isStaticLocalFunction ;
4041 this . NumberOfCompilerGeneratedParameters = numberOfCompilerGeneratedParameters ;
4142 this . NumberOfCompilerGeneratedTypeParameters = numberOfCompilerGeneratedTypeParameters ;
4243 }
@@ -47,7 +48,8 @@ public bool Equals(IMember obj, TypeVisitor typeNormalization)
4748 return false ;
4849 return baseMethod . Equals ( other . baseMethod , typeNormalization )
4950 && NumberOfCompilerGeneratedParameters == other . NumberOfCompilerGeneratedParameters
50- && NumberOfCompilerGeneratedTypeParameters == other . NumberOfCompilerGeneratedTypeParameters ;
51+ && NumberOfCompilerGeneratedTypeParameters == other . NumberOfCompilerGeneratedTypeParameters
52+ && IsStaticLocalFunction == other . IsStaticLocalFunction ;
5153 }
5254
5355 public override bool Equals ( object obj )
@@ -56,7 +58,8 @@ public override bool Equals(object obj)
5658 return false ;
5759 return baseMethod . Equals ( other . baseMethod )
5860 && NumberOfCompilerGeneratedParameters == other . NumberOfCompilerGeneratedParameters
59- && NumberOfCompilerGeneratedTypeParameters == other . NumberOfCompilerGeneratedTypeParameters ;
61+ && NumberOfCompilerGeneratedTypeParameters == other . NumberOfCompilerGeneratedTypeParameters
62+ && IsStaticLocalFunction == other . IsStaticLocalFunction ;
6063 }
6164
6265 public override int GetHashCode ( )
@@ -66,14 +69,14 @@ public override int GetHashCode()
6669
6770 public override string ToString ( )
6871 {
69- return string . Format ( "[LocalFunctionMethod: ReducedFrom={0}, Name={1}, NumberOfGeneratedParameters={2}, NumberOfCompilerGeneratedTypeParameters={3}]" , ReducedFrom , Name , NumberOfCompilerGeneratedParameters , NumberOfCompilerGeneratedTypeParameters ) ;
72+ return string . Format ( "[LocalFunctionMethod: ReducedFrom={0}, Name={1}, NumberOfGeneratedParameters={2}, NumberOfCompilerGeneratedTypeParameters={3}, IsStaticLocalFunction={4} ]" , ReducedFrom , Name , NumberOfCompilerGeneratedParameters , NumberOfCompilerGeneratedTypeParameters , IsStaticLocalFunction ) ;
7073 }
7174
7275 internal int NumberOfCompilerGeneratedParameters { get ; }
7376
7477 internal int NumberOfCompilerGeneratedTypeParameters { get ; }
7578
76- internal bool IsStaticLocalFunction => NumberOfCompilerGeneratedParameters == 0 && ( baseMethod . IsStatic || ( baseMethod . DeclaringTypeDefinition . IsCompilerGenerated ( ) && ! baseMethod . DeclaringType . GetFields ( f => ! f . IsStatic ) . Any ( ) ) ) ;
79+ internal bool IsStaticLocalFunction { get ; }
7780
7881 public IMember MemberDefinition => this ;
7982
@@ -89,7 +92,7 @@ public IMethod Specialize(TypeParameterSubstitution substitution)
8992 {
9093 return new LocalFunctionMethod (
9194 baseMethod . Specialize ( substitution ) ,
92- Name , NumberOfCompilerGeneratedParameters , NumberOfCompilerGeneratedTypeParameters ) ;
95+ Name , IsStaticLocalFunction , NumberOfCompilerGeneratedParameters , NumberOfCompilerGeneratedTypeParameters ) ;
9396 }
9497
9598 IMember IMember . Specialize ( TypeParameterSubstitution substitution )
0 commit comments