130 references to ScopedRef
Microsoft.CodeAnalysis.CSharp (16)
Binder\Binder.ValueChecks.cs (2)
1050
{ EffectiveScope: ScopedKind.
ScopedRef
} => CurrentMethodScope,
1084
var isRefScoped = parameterSymbol.EffectiveScope == ScopedKind.
ScopedRef
;
Binder\RefSafetyAnalysis.cs (1)
400
refEscapeScope = scopedModifier == ScopedKind.
ScopedRef
?
BoundTree\UnboundLambda.cs (2)
644
scope = ScopedKind.
ScopedRef
;
708
if (DeclaredScope(i) == ScopedKind.None && parameterScopesBuilder[i] == ScopedKind.
ScopedRef
&& _unboundLambda.ParameterAttributes(i).Any())
SymbolDisplay\SymbolDisplayVisitor.cs (1)
194
if (symbol.ScopedKind == ScopedKind.
ScopedRef
)
SymbolDisplay\SymbolDisplayVisitor.Members.cs (1)
819
if (symbol.ScopedKind == ScopedKind.
ScopedRef
&&
Symbols\AnonymousTypes\AnonymousTypeManager.Templates.cs (1)
319
(ScopedKind.
ScopedRef
, true) => true,
Symbols\FunctionPointers\FunctionPointerParameterSymbol.cs (1)
33
=> ParameterHelpers.IsRefScopedByDefault(this) ? ScopedKind.
ScopedRef
: ScopedKind.None;
Symbols\Metadata\PE\PEParameterSymbol.cs (2)
319
scope = ScopedKind.
ScopedRef
;
332
scope = ScopedKind.
ScopedRef
;
Symbols\SignatureOnlyParameterSymbol.cs (1)
52
=> ParameterHelpers.IsRefScopedByDefault(this) ? ScopedKind.
ScopedRef
: ScopedKind.None;
Symbols\Source\ParameterHelpers.cs (1)
937
scope = (refKind == RefKind.None) ? ScopedKind.ScopedValue : ScopedKind.
ScopedRef
;
Symbols\Source\SourceLocalSymbol.cs (1)
68
? isScoped ? ScopedKind.
ScopedRef
: ScopedKind.None
Symbols\Source\SourceParameterSymbol.cs (1)
236
ScopedKind.
ScopedRef
:
Symbols\Source\ThisParameterSymbol.cs (1)
173
var scope = _containingType.IsStructType() ? ScopedKind.
ScopedRef
: ScopedKind.None;
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (2)
Attributes\AttributeTests_LifetimeAnnotation.cs (2)
273
Assert.Equal(ScopedKind.
ScopedRef
, parameter.EffectiveScope);
278
Assert.Equal(ScopedKind.
ScopedRef
, parameter.EffectiveScope);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (112)
Semantics\RefFieldTests.cs (112)
10474
VerifyParameterSymbol(parameters[1], "scoped ref R y2", RefKind.Ref, ScopedKind.
ScopedRef
);
10478
VerifyParameterSymbol(parameters[1], "scoped in R y3", RefKind.In, ScopedKind.
ScopedRef
);
10481
VerifyParameterSymbol(parameters[0], "out R x4", RefKind.Out, useUpdatedEscapeRules ? ScopedKind.
ScopedRef
: ScopedKind.None);
10482
VerifyParameterSymbol(parameters[1], "out R y4", RefKind.Out, ScopedKind.
ScopedRef
);
10518
VerifyParameterSymbol(comp.GetMember<NamedTypeSymbol>("A").Constructors.Single(c => !c.IsImplicitlyDeclared).Parameters[0], "scoped ref T t", RefKind.Ref, ScopedKind.
ScopedRef
);
10519
VerifyParameterSymbol(comp.GetMember<PropertySymbol>("A.this[]").GetMethod.Parameters[0], "scoped in System.Object o", RefKind.In, ScopedKind.
ScopedRef
);
10581
VerifyParameterSymbol(localFunctions[1].Parameters[1], "scoped ref System.Int32 y2", RefKind.Ref, ScopedKind.
ScopedRef
);
10583
VerifyParameterSymbol(localFunctions[2].Parameters[1], "scoped in System.Int32 y3", RefKind.In, ScopedKind.
ScopedRef
);
10584
VerifyParameterSymbol(localFunctions[3].Parameters[0], "out System.Int32 x4", RefKind.Out, useUpdatedEscapeRules ? ScopedKind.
ScopedRef
: ScopedKind.None);
10585
VerifyParameterSymbol(localFunctions[3].Parameters[1], "out System.Int32 y4", RefKind.Out, ScopedKind.
ScopedRef
);
10587
VerifyParameterSymbol(localFunctions[4].Parameters[1], "scoped ref R y5", RefKind.Ref, ScopedKind.
ScopedRef
);
10589
VerifyParameterSymbol(localFunctions[5].Parameters[1], "scoped in R y6", RefKind.In, ScopedKind.
ScopedRef
);
10590
VerifyParameterSymbol(localFunctions[6].Parameters[0], "out R x7", RefKind.Out, useUpdatedEscapeRules ? ScopedKind.
ScopedRef
: ScopedKind.None);
10591
VerifyParameterSymbol(localFunctions[6].Parameters[1], "out R y7", RefKind.Out, ScopedKind.
ScopedRef
);
10654
verifyParameter(delegateTypesAndLambdas[1], 1, "scoped ref System.Int32", "y2", RefKind.Ref, ScopedKind.
ScopedRef
, false);
10656
verifyParameter(delegateTypesAndLambdas[2], 1, "scoped in System.Int32", "y3", RefKind.In, ScopedKind.
ScopedRef
, false);
10657
verifyParameter(delegateTypesAndLambdas[3], 0, "out System.Int32", "x4", RefKind.Out, useUpdatedEscapeRules ? ScopedKind.
ScopedRef
: ScopedKind.None, false);
10658
verifyParameter(delegateTypesAndLambdas[3], 1, "out System.Int32", "y4", RefKind.Out, ScopedKind.
ScopedRef
, false);
10661
verifyParameter(delegateTypesAndLambdas[4], 1, "scoped ref R", "y5", RefKind.Ref, ScopedKind.
ScopedRef
, false);
10663
verifyParameter(delegateTypesAndLambdas[5], 1, "scoped in R", "y6", RefKind.In, ScopedKind.
ScopedRef
, false);
10664
verifyParameter(delegateTypesAndLambdas[6], 0, "out R", "x7", RefKind.Out, useUpdatedEscapeRules ? ScopedKind.
ScopedRef
: ScopedKind.None, false);
10665
verifyParameter(delegateTypesAndLambdas[6], 1, "out R", "y7", RefKind.Out, ScopedKind.
ScopedRef
, false);
10709
VerifyParameterSymbol(comp.GetMember<NamedTypeSymbol>("D2").DelegateInvokeMethod.Parameters[0], "scoped ref R r2", RefKind.Ref, ScopedKind.
ScopedRef
);
10797
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("Program.F3").Parameters[0], "scoped ref R r", RefKind.Ref, ScopedKind.
ScopedRef
);
10798
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("Program.F6").Parameters[0], "scoped in R r", RefKind.In, ScopedKind.
ScopedRef
);
10799
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("Program.F9").Parameters[0], "out R r", RefKind.Out, ScopedKind.
ScopedRef
);
10909
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("Program.F4").Parameters[0], "scoped ref scoped s", RefKind.Ref, ScopedKind.
ScopedRef
);
10911
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("Program.F7").Parameters[0], "scoped in scoped s", RefKind.In, ScopedKind.
ScopedRef
);
10912
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("Program.F8").Parameters[0], "out scoped s", RefKind.Out, ScopedKind.
ScopedRef
);
10913
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("Program.FA").Parameters[0], "out scoped s", RefKind.Out, ScopedKind.
ScopedRef
);
10988
VerifyParameterSymbol(comp.GetMember<PEMethodSymbol>("A.F1").Parameters[0], "out System.Int32 i", RefKind.Out, ScopedKind.
ScopedRef
);
11025
VerifyParameterSymbol(parameters[3], "out R d", RefKind.Out, ScopedKind.
ScopedRef
);
11059
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("Program.ReturnRef").Parameters[0], "scoped ref R r", RefKind.Ref, ScopedKind.
ScopedRef
);
11102
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("S1..ctor").ThisParameter, "out S1 this", RefKind.Out, ScopedKind.
ScopedRef
);
11103
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("S1.F1").ThisParameter, "ref S1 this", RefKind.Ref, ScopedKind.
ScopedRef
);
11104
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("S1.F2").ThisParameter, "in S1 this", RefKind.In, ScopedKind.
ScopedRef
);
11105
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("R1..ctor").ThisParameter, "out R1 this", RefKind.Out, ScopedKind.
ScopedRef
);
11106
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("R1.F1").ThisParameter, "ref R1 this", RefKind.Ref, ScopedKind.
ScopedRef
);
11107
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("R1.F2").ThisParameter, "in R1 this", RefKind.In, ScopedKind.
ScopedRef
);
11108
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("S2..ctor").ThisParameter, "out S2 this", RefKind.Out, ScopedKind.
ScopedRef
);
11109
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("S2.F1").ThisParameter, "in S2 this", RefKind.In, ScopedKind.
ScopedRef
);
11110
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("S2.F2").ThisParameter, "in S2 this", RefKind.In, ScopedKind.
ScopedRef
);
11111
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("R2..ctor").ThisParameter, "out R2 this", RefKind.Out, ScopedKind.
ScopedRef
);
11112
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("R2.F1").ThisParameter, "in R2 this", RefKind.In, ScopedKind.
ScopedRef
);
11113
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("R2.F2").ThisParameter, "in R2 this", RefKind.In, ScopedKind.
ScopedRef
);
11117
VerifyParameterSymbol(thisParameter, "ref S1 this", RefKind.Ref, ScopedKind.
ScopedRef
);
11156
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("Extensions.F3").Parameters[0], "scoped ref T t", RefKind.Ref, ScopedKind.
ScopedRef
);
11458
VerifyParameterSymbol(method.Parameters[1], "scoped in System.Int32 y", RefKind.In, ScopedKind.
ScopedRef
);
11492
VerifyParameterSymbol(method.Parameters[1], "scoped in System.Int32 y", RefKind.In, ScopedKind.
ScopedRef
);
11572
VerifyLocalSymbol(locals[1], "scoped ref R r2", RefKind.Ref, ScopedKind.
ScopedRef
);
11573
VerifyLocalSymbol(locals[2], "scoped ref readonly R r5", RefKind.RefReadOnly, ScopedKind.
ScopedRef
);
11575
VerifyLocalSymbol(locals[4], "scoped ref R r21", RefKind.Ref, ScopedKind.
ScopedRef
);
11576
VerifyLocalSymbol(locals[5], "scoped ref readonly R r51", RefKind.RefReadOnly, ScopedKind.
ScopedRef
);
11709
VerifyLocalSymbol(locals[1], "scoped ref R r2", RefKind.Ref, ScopedKind.
ScopedRef
);
11710
VerifyLocalSymbol(locals[2], "scoped ref readonly R r5", RefKind.RefReadOnly, ScopedKind.
ScopedRef
);
12665
VerifyLocalSymbol(locals[4], "scoped ref scoped s5", RefKind.Ref, ScopedKind.
ScopedRef
);
12666
VerifyLocalSymbol(locals[5], "scoped ref scoped s6", RefKind.Ref, ScopedKind.
ScopedRef
);
12720
VerifyLocalSymbol(locals[4], "scoped ref scoped s5", RefKind.Ref, ScopedKind.
ScopedRef
);
12721
VerifyLocalSymbol(locals[5], "scoped ref scoped s6", RefKind.Ref, ScopedKind.
ScopedRef
);
12956
VerifyLocalSymbol(locals[1], "scoped ref R<System.Int32> r3", RefKind.Ref, ScopedKind.
ScopedRef
);
13020
VerifyLocalSymbol(locals[1], "scoped ref R<System.Int32> r3", RefKind.Ref, ScopedKind.
ScopedRef
);
13865
VerifyLocalSymbol(locals[0], "scoped ref R r2", RefKind.Ref, ScopedKind.
ScopedRef
);
13866
VerifyLocalSymbol(locals[1], "scoped ref R r5", RefKind.Ref, ScopedKind.
ScopedRef
);
13907
VerifyLocalSymbol(locals[0], "scoped ref R r2", RefKind.Ref, ScopedKind.
ScopedRef
);
13908
VerifyLocalSymbol(locals[1], "scoped ref R r5", RefKind.Ref, ScopedKind.
ScopedRef
);
14039
VerifyLocalSymbol(locals[6], "scoped ref R r41", RefKind.Ref, ScopedKind.
ScopedRef
);
14040
VerifyLocalSymbol(locals[7], "scoped ref R r42", RefKind.Ref, ScopedKind.
ScopedRef
);
14109
VerifyLocalSymbol(locals[1], "scoped ref R r2", RefKind.Ref, ScopedKind.
ScopedRef
);
14110
VerifyLocalSymbol(locals[2], "scoped ref readonly R r5", RefKind.RefReadOnly, ScopedKind.
ScopedRef
);
14565
VerifyLocalSymbol(locals[4], "scoped ref scoped s5", RefKind.Ref, ScopedKind.
ScopedRef
);
14566
VerifyLocalSymbol(locals[5], "scoped ref scoped s6", RefKind.Ref, ScopedKind.
ScopedRef
);
14649
VerifyLocalSymbol(locals[1], "scoped ref R<System.Int32> r3", RefKind.Ref, ScopedKind.
ScopedRef
);
17403
VerifyParameterSymbol(delegateInvokeMethods[1].Parameters[1], "scoped ref System.Int32 arg2", RefKind.Ref, ScopedKind.
ScopedRef
);
22296
VerifyParameterSymbol(type.GetMethod("Get").ThisParameter, "ref R1<System.Int32> this", RefKind.Ref, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
22297
VerifyParameterSymbol(type.GetMethod("get_Item").ThisParameter, "ref R1<System.Int32> this", RefKind.Ref, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
22365
VerifyParameterSymbol(type.GetMethod("Get").ThisParameter, "ref R1<System.Int32> this", RefKind.Ref, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
22366
VerifyParameterSymbol(type.GetMethod("get_Item").ThisParameter, "ref R1<System.Int32> this", RefKind.Ref, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
22519
VerifyParameterSymbol(parameters[1], "scoped ref R x", RefKind.Ref, ScopedKind.
ScopedRef
);
22583
VerifyParameterSymbol(baseType.GetMethod("F2A").Parameters[0], "scoped ref R<System.Int32> r2", RefKind.Ref, ScopedKind.
ScopedRef
);
22806
VerifyParameterSymbol(parameters[1], "out System.Int32 x", RefKind.Out, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
22865
VerifyParameterSymbol(baseType.GetMethod("F1A").Parameters[0], "out System.Int32 t1", RefKind.Out, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
22866
VerifyParameterSymbol(baseType.GetMethod("F2A").Parameters[0], "out System.Int32 t2", RefKind.Out, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
22931
VerifyParameterSymbol(baseType.GetMethod("F2A").Parameters[0], "scoped ref System.Int32 t2", RefKind.Ref, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
22997
VerifyParameterSymbol(baseType.GetMethod("F2A").Parameters[0], "scoped in System.Int32 t2", RefKind.In, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
23363
VerifyParameterSymbol(lambdas[0].Parameters[0], "out System.Int32 i1", RefKind.Out, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
23365
VerifyParameterSymbol(lambdas[2].Parameters[0], "out System.Object o1", RefKind.Out, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
23436
VerifyParameterSymbol(lambdas[0].Parameters[0], "scoped ref R<System.Int32> r1", RefKind.Ref, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
23438
VerifyParameterSymbol(lambdas[2].Parameters[0], "scoped ref R<System.Object> r1", RefKind.Ref, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
23860
VerifyParameterSymbol(typeA.GetMethod("NoAttributes").Parameters[0], "out System.Int32 i", RefKind.Out, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
23861
VerifyParameterSymbol(typeA.GetMethod("ScopedRefOnly").Parameters[0], "out System.Int32 i", RefKind.Out, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
23963
VerifyParameterSymbol(typeA.GetMethod("ScopedRefOnly").Parameters[0], "scoped ref R x", RefKind.Ref, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
24071
VerifyParameterSymbol(typeA.GetMethod("ScopedRefOnly").Parameters[0], "scoped in R x", RefKind.In, ScopedKind.
ScopedRef
, expectedHasUnscopedRefAttribute: false);
24128
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("S1.F1").ThisParameter, "ref S1 this", RefKind.Ref, ScopedKind.
ScopedRef
);
24129
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("S2.F2").ThisParameter, "in S2 this", RefKind.In, ScopedKind.
ScopedRef
);
24130
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("A.F3").Parameters[0], "out System.Int32 i3", RefKind.Out, useUpdatedRules ? ScopedKind.
ScopedRef
: ScopedKind.None);
24171
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("S1.F1").ThisParameter, "ref S1 this", RefKind.Ref, ScopedKind.
ScopedRef
);
24172
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("S2.F2").ThisParameter, "in S2 this", RefKind.In, ScopedKind.
ScopedRef
);
24173
VerifyParameterSymbol(comp.GetMember<MethodSymbol>("A.F3").Parameters[0], "out System.Int32 i3", RefKind.Out, useUpdatedRules ? ScopedKind.
ScopedRef
: ScopedKind.None);
24205
verifyParameter(delegateTypesAndLambdas[0], 0, "out System.Int32", "i1", RefKind.Out, useUpdatedRules ? ScopedKind.
ScopedRef
: ScopedKind.None);
24209
verifyParameter(delegateTypesAndLambdas[4], 0, "out R", "r5", RefKind.Out, useUpdatedRules ? ScopedKind.
ScopedRef
: ScopedKind.None);
24255
VerifyParameterSymbol(getFunctionPointerMethod(comp, "A.F1").Parameters[0], "out modreq(System.Runtime.InteropServices.OutAttribute) System.Int32", RefKind.Out, useUpdatedRules ? ScopedKind.
ScopedRef
: ScopedKind.None);
24259
VerifyParameterSymbol(getFunctionPointerMethod(comp, "A.F5").Parameters[0], "out modreq(System.Runtime.InteropServices.OutAttribute) R", RefKind.Out, useUpdatedRules ? ScopedKind.
ScopedRef
: ScopedKind.None);
25675
VerifyParameterSymbol(method.Parameters[0], "out System.Int32 i", RefKind.Out, version == 11 ? ScopedKind.
ScopedRef
: ScopedKind.None);
25803
VerifyParameterSymbol(method.Parameters[0], "out T t", RefKind.Out, expectedUseUpdatedEscapeRules ? ScopedKind.
ScopedRef
: ScopedKind.None);
26296
VerifyLocalSymbol(locals[1], "scoped ref R r2", RefKind.Ref, ScopedKind.
ScopedRef
);
26297
VerifyLocalSymbol(locals[2], "scoped ref readonly R r5", RefKind.RefReadOnly, ScopedKind.
ScopedRef
);
26386
VerifyLocalSymbol(locals[1], "scoped ref R r2", RefKind.Ref, ScopedKind.
ScopedRef
);
26387
VerifyLocalSymbol(locals[2], "scoped ref readonly R r5", RefKind.RefReadOnly, ScopedKind.
ScopedRef
);
26509
VerifyLocalSymbol(locals[4], "scoped ref scoped s5", RefKind.Ref, ScopedKind.
ScopedRef
);
26510
VerifyLocalSymbol(locals[5], "scoped ref scoped s6", RefKind.Ref, ScopedKind.
ScopedRef
);
26610
VerifyLocalSymbol(locals[4], "scoped ref scoped s5", RefKind.Ref, ScopedKind.
ScopedRef
);
26611
VerifyLocalSymbol(locals[5], "scoped ref scoped s6", RefKind.Ref, ScopedKind.
ScopedRef
);