11 overrides of AllowsRefLikeType
Microsoft.CodeAnalysis.CSharp (11)
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeParameterSymbol.cs (1)
96
public override bool
AllowsRefLikeType
=> _allowsRefLikeType;
Symbols\ErrorTypeSymbol.ErrorTypeParameterSymbol.cs (1)
94
public override bool
AllowsRefLikeType
Symbols\Metadata\PE\PETypeParameterSymbol.cs (1)
571
public override bool
AllowsRefLikeType
Symbols\Source\CrefTypeParameterSymbol.cs (1)
130
public override bool
AllowsRefLikeType
Symbols\Source\IndexedTypeParameterSymbol.cs (1)
145
public override bool
AllowsRefLikeType
Symbols\Source\SourceTypeParameterSymbol.cs (2)
508
public override bool
AllowsRefLikeType
635
public abstract override bool
AllowsRefLikeType
{ get; }
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeParameterSymbol.cs (1)
37
public override bool
AllowsRefLikeType
=> false; // The list is a class type and cannot store ref structs as elements.
Symbols\Synthesized\SynthesizedInlineArrayTypeSymbol.cs (1)
238
public override bool
AllowsRefLikeType
=> false; // Span types do not support ref like type parameters for now
Symbols\SynthesizedSimpleMethodTypeParameterSymbol.cs (1)
71
public override bool
AllowsRefLikeType
Symbols\Wrapped\WrappedTypeParameterSymbol.cs (1)
120
public override bool
AllowsRefLikeType
106 references to AllowsRefLikeType
Microsoft.CodeAnalysis.CSharp (42)
Binder\Binder_Expressions.cs (1)
9090
if (receiverOpt is { Type: TypeParameterSymbol {
AllowsRefLikeType
: true } } &&
Binder\Binder_Operators.cs (4)
4979
if (targetType is TypeParameterSymbol {
AllowsRefLikeType
: true })
4986
else if (operandType is not TypeParameterSymbol {
AllowsRefLikeType
: true })
4992
Debug.Assert(operandType is TypeParameterSymbol {
AllowsRefLikeType
: false });
5000
Debug.Assert(targetType is TypeParameterSymbol {
AllowsRefLikeType
: false });
Binder\ForEachLoopBinder.cs (2)
1279
if (enumeratorType is TypeParameterSymbol {
AllowsRefLikeType
: true })
1860
needSupportForRefStructInterfaces = typeParameter.
AllowsRefLikeType
;
Binder\Semantics\Conversions\ConversionsBase.cs (11)
2861
if (destination is TypeParameterSymbol {
AllowsRefLikeType
: false } &&
2862
!source.
AllowsRefLikeType
&&
2881
if (source.
AllowsRefLikeType
)
2904
if (destination is TypeParameterSymbol {
AllowsRefLikeType
: false } &&
3023
return typeParameter.
AllowsRefLikeType
&& HasVarianceCompatibleInterfaceInEffectiveInterfaceSet(typeParameter, targetInterfaceType, ref useSiteInfo);
3258
if (source.
AllowsRefLikeType
)
3281
if (destination is TypeParameterSymbol {
AllowsRefLikeType
: false } d &&
3536
if (s?.
AllowsRefLikeType
== true || t?.
AllowsRefLikeType
== true)
3588
if (s?.
AllowsRefLikeType
== true || t?.
AllowsRefLikeType
== true)
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (3)
734
if ((left.Type is TypeParameterSymbol {
AllowsRefLikeType
: true } && right.IsLiteralNull()) ||
735
(right.Type is TypeParameterSymbol {
AllowsRefLikeType
: true } && left.IsLiteralNull()))
792
return (operand.Type is TypeParameterSymbol {
AllowsRefLikeType
: true }) ? Conversion.Boxing : Conversions.ClassifyConversionFromExpression(operand, objectType, isChecked: isChecked, ref useSiteInfo);
CodeGen\EmitOperators.cs (1)
375
if (comparand is BoundConversion { Type.SpecialType: SpecialType.System_Object, ConversionKind: ConversionKind.Boxing, Operand.Type: TypeParameterSymbol {
AllowsRefLikeType
: true } } &&
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (2)
747
Debug.Assert(type.
AllowsRefLikeType
== other.
AllowsRefLikeType
);
Emitter\Model\TypeParameterSymbolAdapter.cs (1)
309
return AdaptedTypeParameterSymbol.
AllowsRefLikeType
;
Emitter\NoPia\EmbeddedTypeParameter.cs (1)
52
return UnderlyingTypeParameter.AdaptedTypeParameterSymbol.
AllowsRefLikeType
;
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (1)
239
_ when variableType is TypeParameterSymbol {
AllowsRefLikeType
: true }
Lowering\SyntheticBoundNodeFactory.cs (1)
1498
arg.Type is TypeParameterSymbol {
AllowsRefLikeType
: true } && type.IsObjectType())
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.DelegateTemplateSymbol.cs (1)
181
allowsRefLikeType: typeParametersToSubstitute[i].
AllowsRefLikeType
));
Symbols\ConstraintsHelper.cs (2)
97
if (typeParameter.
AllowsRefLikeType
)
967
if (typeParameter.
AllowsRefLikeType
)
Symbols\MemberSignatureComparer.cs (2)
636
(typeParameter1.
AllowsRefLikeType
!= typeParameter2.
AllowsRefLikeType
) ||
Symbols\PublicModel\TypeParameterSymbol.cs (1)
91
bool ITypeParameterSymbol.AllowsRefLikeType => _underlying.
AllowsRefLikeType
;
Symbols\Source\ExtensionGroupingInfo.cs (2)
365
(typeParameter1.
AllowsRefLikeType
!= typeParameter2.
AllowsRefLikeType
) ||
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (3)
90
if (typeParameter.
AllowsRefLikeType
)
430
typeParameter.HasNotNullConstraint || typeParameter.
AllowsRefLikeType
;
651
if (typeParam.
AllowsRefLikeType
)
Symbols\Source\SourceTypeParameterSymbol.cs (1)
939
return ((object)typeParameter != null) && typeParameter.
AllowsRefLikeType
;
Symbols\TypeSymbolExtensions.cs (1)
547
return type is { IsRefLikeType: true } or TypeParameterSymbol {
AllowsRefLikeType
: true };
Symbols\Wrapped\WrappedTypeParameterSymbol.cs (1)
124
return _underlyingTypeParameter.
AllowsRefLikeType
;
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (64)
RefStructInterfacesTests.cs (64)
4382
Assert.True(t.
AllowsRefLikeType
);
4435
Assert.True(t.
AllowsRefLikeType
);
4488
Assert.True(t.
AllowsRefLikeType
);
4496
Assert.True(dt.
AllowsRefLikeType
);
4522
Assert.True(ct.
AllowsRefLikeType
);
4551
Assert.True(t.
AllowsRefLikeType
);
4573
Assert.True(t.
AllowsRefLikeType
);
4605
Assert.True(t.
AllowsRefLikeType
);
4631
Assert.True(t.
AllowsRefLikeType
);
4663
Assert.True(t.
AllowsRefLikeType
);
4698
Assert.True(t.
AllowsRefLikeType
);
4735
Assert.True(t.
AllowsRefLikeType
);
4761
Assert.True(t.
AllowsRefLikeType
);
4790
Assert.True(t.
AllowsRefLikeType
);
4827
Assert.True(t.
AllowsRefLikeType
);
4856
Assert.True(t.
AllowsRefLikeType
);
4878
Assert.True(t.
AllowsRefLikeType
);
4907
Assert.True(t.
AllowsRefLikeType
);
4929
Assert.True(t.
AllowsRefLikeType
);
4960
Assert.True(t.
AllowsRefLikeType
);
4987
Assert.True(t.
AllowsRefLikeType
);
5018
Assert.True(t.
AllowsRefLikeType
);
5047
Assert.True(t.
AllowsRefLikeType
);
5072
Assert.True(t.
AllowsRefLikeType
);
5099
Assert.True(t.
AllowsRefLikeType
);
5123
Assert.True(t.
AllowsRefLikeType
);
5145
Assert.True(t.
AllowsRefLikeType
);
5166
Assert.True(t.
AllowsRefLikeType
);
5187
Assert.True(t.
AllowsRefLikeType
);
5212
Assert.False(t.
AllowsRefLikeType
);
5237
Assert.True(t.
AllowsRefLikeType
);
5262
Assert.True(t.
AllowsRefLikeType
);
5291
Assert.False(t.
AllowsRefLikeType
);
5320
Assert.True(t.
AllowsRefLikeType
);
5349
Assert.False(t.
AllowsRefLikeType
);
5378
Assert.True(t.
AllowsRefLikeType
);
5422
Assert.True(t1.
AllowsRefLikeType
);
5461
Assert.True(t1.
AllowsRefLikeType
);
5516
Assert.True(t1.
AllowsRefLikeType
);
5559
Assert.True(t1.
AllowsRefLikeType
);
5594
Assert.True(t1.
AllowsRefLikeType
);
5645
Assert.True(t1.
AllowsRefLikeType
);
5769
Assert.False(t.
AllowsRefLikeType
);
5797
Assert.True(t.
AllowsRefLikeType
);
5804
Assert.True(u.
AllowsRefLikeType
);
5830
Assert.True(t.
AllowsRefLikeType
);
5837
Assert.False(u.
AllowsRefLikeType
);
22879
Assert.True(tp.
AllowsRefLikeType
);
22935
Assert.True(tp.
AllowsRefLikeType
);
23082
Assert.True(tp.
AllowsRefLikeType
);
23131
Assert.False(tp.
AllowsRefLikeType
);
23248
Assert.False(m.ContainingType.TypeParameters.Single().
AllowsRefLikeType
);
23272
Assert.Equal([true, false], m.ContainingType.TypeParameters.Select(t => t.
AllowsRefLikeType
));
23330
Assert.False(m.ContainingType.TypeParameters.Single().
AllowsRefLikeType
);
23361
Assert.True(m.ContainingType.TypeParameters.Single().
AllowsRefLikeType
);
23392
Assert.False(m.ContainingType.TypeParameters.Single().
AllowsRefLikeType
);
23423
Assert.False(m.ContainingType.TypeParameters.Single().
AllowsRefLikeType
);
23455
Assert.False(m.ContainingType.TypeParameters.Single().
AllowsRefLikeType
);
23486
Assert.False(m.ContainingType.TypeParameters.Single().
AllowsRefLikeType
);
23517
Assert.False(m.ContainingType.TypeParameters.Single().
AllowsRefLikeType
);
23571
Assert.False(m.ContainingType.TypeParameters.Single().
AllowsRefLikeType
);
23602
Assert.True(m.ContainingType.TypeParameters.Single().
AllowsRefLikeType
);
23626
Assert.Equal([true, true], m.ContainingType.TypeParameters.Select(t => t.
AllowsRefLikeType
));
29342
Assert.True(t1.
AllowsRefLikeType
);