@@ -130,31 +130,37 @@ TypeReference typeReference
130
130
{
131
131
var genericParameter = ( Mono . Cecil . GenericParameter ) typeReference ;
132
132
var declarerIsMethod = genericParameter . Type == GenericParameterType . Method ;
133
- var declaringType = GetOrCreateStubTypeInstanceFromTypeReference (
134
- declarerIsMethod
135
- ? genericParameter . DeclaringMethod . DeclaringType
136
- : genericParameter . DeclaringType
137
- ) ;
138
- var declaringMethod = declarerIsMethod
139
- ? GetOrCreateMethodMemberFromMethodReference (
140
- declaringType ,
141
- genericParameter . DeclaringMethod
142
- )
143
- : null ;
144
- var declarerFullName =
145
- declaringMethod != null
146
- ? declaringMethod . Member . FullName
147
- : declaringType . Type . FullName ;
133
+ var declarerFullName = declarerIsMethod
134
+ ? genericParameter . DeclaringMethod . BuildFullName ( )
135
+ : genericParameter . DeclaringType . BuildFullName ( ) ;
136
+ var declaringTypeAssemblyName = declarerIsMethod
137
+ ? genericParameter . DeclaringMethod . DeclaringType . Module . Assembly . FullName
138
+ : genericParameter . DeclaringType . Module . Assembly . FullName ;
148
139
var assemblyQualifiedName = System . Reflection . Assembly . CreateQualifiedName (
149
- declaringType . Type . Assembly . FullName ,
140
+ declaringTypeAssemblyName ,
150
141
$ "{ declarerFullName } +<{ genericParameter . Name } >"
151
142
) ;
152
143
if ( _allTypes . TryGetValue ( assemblyQualifiedName , out var existingTypeInstance ) )
153
144
{
154
145
return existingTypeInstance ;
155
146
}
147
+ var isCompilerGenerated = genericParameter . IsCompilerGenerated ( ) ;
148
+ var variance = genericParameter . GetVariance ( ) ;
149
+ var typeConstraints = genericParameter . Constraints . Select ( con =>
150
+ GetOrCreateStubTypeInstanceFromTypeReference ( con . ConstraintType )
151
+ ) ;
156
152
var result = new TypeInstance < GenericParameter > (
157
- CreateGenericParameter ( genericParameter , declaringType , declaringMethod )
153
+ new GenericParameter (
154
+ declarerFullName ,
155
+ genericParameter . Name ,
156
+ variance ,
157
+ typeConstraints ,
158
+ genericParameter . HasReferenceTypeConstraint ,
159
+ genericParameter . HasNotNullableValueTypeConstraint ,
160
+ genericParameter . HasDefaultConstructorConstraint ,
161
+ isCompilerGenerated ,
162
+ declarerIsMethod
163
+ )
158
164
) ;
159
165
_allTypes . Add ( assemblyQualifiedName , result ) ;
160
166
return result ;
@@ -199,7 +205,7 @@ TypeReference typeReference
199
205
} while ( elementType . IsArray ) ;
200
206
var elementTypeInstance = GetOrCreateStubTypeInstanceFromTypeReference ( elementType ) ;
201
207
var assemblyQualifiedName = System . Reflection . Assembly . CreateQualifiedName (
202
- elementTypeInstance . Type . Assembly . FullName ,
208
+ elementTypeInstance . Type . Assembly ? . FullName ?? "" ,
203
209
typeReference . BuildFullName ( )
204
210
) ;
205
211
if ( _allTypes . TryGetValue ( assemblyQualifiedName , out var existingTypeInstance ) )
@@ -609,35 +615,6 @@ IGenericParameterProvider genericParameterProvider
609
615
. Cast < GenericParameter > ( ) ;
610
616
}
611
617
612
- private GenericParameter CreateGenericParameter (
613
- Mono . Cecil . GenericParameter genericParameter ,
614
- ITypeInstance < IType > declaringTypeInstance ,
615
- [ CanBeNull ] MethodMemberInstance declaringMethodInstance
616
- )
617
- {
618
- var isCompilerGenerated = genericParameter . IsCompilerGenerated ( ) ;
619
- var variance = genericParameter . GetVariance ( ) ;
620
- var typeConstraints = genericParameter . Constraints . Select ( con =>
621
- GetOrCreateStubTypeInstanceFromTypeReference ( con . ConstraintType )
622
- ) ;
623
- var declarerFullName =
624
- declaringMethodInstance != null
625
- ? declaringMethodInstance . Member . FullName
626
- : declaringTypeInstance . Type . FullName ;
627
- return new GenericParameter (
628
- declaringTypeInstance ,
629
- declaringMethodInstance ,
630
- $ "{ declarerFullName } +<{ genericParameter . Name } >",
631
- genericParameter . Name ,
632
- variance ,
633
- typeConstraints ,
634
- genericParameter . HasReferenceTypeConstraint ,
635
- genericParameter . HasNotNullableValueTypeConstraint ,
636
- genericParameter . HasDefaultConstructorConstraint ,
637
- isCompilerGenerated
638
- ) ;
639
- }
640
-
641
618
internal GenericArgument CreateGenericArgumentFromTypeReference ( TypeReference typeReference )
642
619
{
643
620
return new GenericArgument ( GetOrCreateStubTypeInstanceFromTypeReference ( typeReference ) ) ;
0 commit comments