254 references to BindValueKind
Microsoft.CodeAnalysis.CSharp (254)
Binder\Binder.ValueChecks.cs (103)
479
private const
BindValueKind
ValueKindSignificantBitsMask = unchecked((
BindValueKind
)~((1 << ValueKindInsignificantBits) - 1));
576
private static bool RequiresRValueOnly(
BindValueKind
kind)
578
return (kind & ValueKindSignificantBitsMask) ==
BindValueKind
.RValue;
581
private static bool RequiresAssignmentOnly(
BindValueKind
kind)
583
return (kind & ValueKindSignificantBitsMask) ==
BindValueKind
.Assignable;
586
private static bool RequiresVariable(
BindValueKind
kind)
591
private static bool RequiresReferenceToLocation(
BindValueKind
kind)
593
return (kind &
BindValueKind
.RefersToLocation) != 0;
596
private static bool RequiresAssignableVariable(
BindValueKind
kind)
598
return (kind &
BindValueKind
.Assignable) != 0;
601
private static bool RequiresRefAssignableVariable(
BindValueKind
kind)
603
return (kind &
BindValueKind
.RefAssignable) != 0;
606
private static bool RequiresRefOrOut(
BindValueKind
kind)
608
return (kind &
BindValueKind
.RefOrOut) ==
BindValueKind
.RefOrOut;
613
private static AccessorKind GetIndexerAccessorKind(BoundIndexerAccess indexerAccess,
BindValueKind
valueKind)
623
private static AccessorKind GetAccessorKind(
BindValueKind
valueKind)
625
var
coreValueKind = valueKind & ValueKindSignificantBitsMask;
628
BindValueKind
.CompoundAssignment => AccessorKind.Both,
629
BindValueKind
.Assignable => AccessorKind.Set,
634
private BoundIndexerAccess BindIndexerDefaultArgumentsAndParamsCollection(BoundIndexerAccess indexerAccess,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
636
var
coreValueKind = valueKind & ValueKindSignificantBitsMask;
638
var useSetAccessor = coreValueKind ==
BindValueKind
.Assignable && indexerAccess.Indexer.RefKind != RefKind.Ref;
735
private BoundExpression CheckValue(BoundExpression expr,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
750
Debug.Assert(expr.Syntax.Kind() != SyntaxKind.Argument || valueKind ==
BindValueKind
.RefOrOut);
755
Debug.Assert(valueKind ==
BindValueKind
.RefOrOut);
759
Debug.Assert(valueKind is (
BindValueKind
.Assignable or
BindValueKind
.RefOrOut or
BindValueKind
.RefAssignable) || diagnostics.DiagnosticBag is null || diagnostics.HasAnyResolvedErrors());
809
if (valueKind ==
BindValueKind
.RValue)
816
if ((valueKind &
BindValueKind
.RefersToLocation) ==
BindValueKind
.RefersToLocation)
824
if ((valueKind &
BindValueKind
.RefersToLocation) ==
BindValueKind
.RefersToLocation)
838
if (expr.Kind == BoundKind.MethodGroup && valueKind !=
BindValueKind
.RValueOrMethodGroup)
887
expr.HasAnyErrors && valueKind ==
BindValueKind
.RValueOrMethodGroup)
892
var resultKind = (valueKind ==
BindValueKind
.RValue || valueKind ==
BindValueKind
.RValueOrMethodGroup) ?
924
internal bool CheckValueKind(SyntaxNode node, BoundExpression expr,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
982
case BoundKind.MethodGroup when valueKind ==
BindValueKind
.AddressOf:
1204
bool checkArrayAccessValueKind(SyntaxNode node,
BindValueKind
valueKind, ImmutableArray<BoundExpression> indices, BindingDiagnosticBag diagnostics)
1226
private static void ReportThisLvalueError(SyntaxNode node,
BindValueKind
valueKind, bool isValueType, bool isPrimaryConstructorParameter, BindingDiagnosticBag diagnostics)
1254
private void CheckAddressOfInAsyncOrIteratorMethod(SyntaxNode node,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1256
if (valueKind ==
BindValueKind
.AddressOf)
1269
private bool CheckLocalValueKind(SyntaxNode node, BoundLocal local,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1359
private bool CheckParameterValueKind(SyntaxNode node, BoundParameter parameter,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1361
Debug.Assert(!RequiresAssignableVariable(
BindValueKind
.AddressOf));
1422
static void reportReadOnlyParameterError(ParameterSymbol parameterSymbol, SyntaxNode node,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1426
Debug.Assert(valueKind !=
BindValueKind
.AddressOf); // If this assert fails, we probably should report ErrorCode.ERR_InvalidAddrOp
1432
if (valueKind ==
BindValueKind
.RefReturn)
1451
if (valueKind ==
BindValueKind
.RefReturn)
1567
private bool CheckFieldValueKind(SyntaxNode node, BoundFieldAccess fieldAccess,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1612
Debug.Assert(valueKind ==
BindValueKind
.RefAssignable);
1629
return CheckIsValidReceiverForVariable(node, fieldAccess.ReceiverOpt,
BindValueKind
.Assignable, diagnostics);
1715
private bool CheckSimpleAssignmentValueKind(SyntaxNode node, BoundAssignmentOperator assignment,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1794
private bool CheckEventValueKind(BoundEventAccess boundEvent,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1805
if (valueKind ==
BindValueKind
.CompoundAssignment)
1831
if (!CheckIsValidReceiverForVariable(eventSyntax, receiver,
BindValueKind
.Assignable, diagnostics))
1838
if (eventSymbol.IsWindowsRuntimeEvent && valueKind !=
BindValueKind
.Assignable)
1842
if (valueKind ==
BindValueKind
.RefOrOut)
1863
private bool CheckIsValidReceiverForVariable(SyntaxNode node, BoundExpression receiver,
BindValueKind
kind, BindingDiagnosticBag diagnostics)
1893
BindValueKind
valueKind,
1934
private bool CheckPropertyValueKind(SyntaxNode node, BoundExpression expr,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1961
else if (valueKind ==
BindValueKind
.RefOrOut)
2032
var
setValueKind = setMethod.IsEffectivelyReadOnly ?
BindValueKind
.RValue :
BindValueKind
.Assignable;
3415
private static void ReportReadonlyLocalError(SyntaxNode node, LocalSymbol local,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3418
Debug.Assert(kind !=
BindValueKind
.RValue);
3453
private static ErrorCode GetThisLvalueError(
BindValueKind
kind, bool isValueType, bool isPrimaryConstructorParameter)
3457
case
BindValueKind
.CompoundAssignment:
3458
case
BindValueKind
.Assignable:
3461
case
BindValueKind
.RefOrOut:
3464
case
BindValueKind
.AddressOf:
3467
case
BindValueKind
.IncrementDecrement:
3470
case
BindValueKind
.RefReturn:
3471
case
BindValueKind
.ReadonlyRef:
3474
case
BindValueKind
.RefAssignable:
3486
private static ErrorCode GetRangeLvalueError(
BindValueKind
kind)
3490
case
BindValueKind
.Assignable:
3491
case
BindValueKind
.CompoundAssignment:
3492
case
BindValueKind
.IncrementDecrement:
3495
case
BindValueKind
.AddressOf:
3498
case
BindValueKind
.RefReturn:
3499
case
BindValueKind
.ReadonlyRef:
3502
case
BindValueKind
.RefAssignable:
3514
private static ErrorCode GetMethodGroupOrFunctionPointerLvalueError(
BindValueKind
valueKind)
3525
private static ErrorCode GetStandardLvalueError(
BindValueKind
kind)
3529
case
BindValueKind
.CompoundAssignment:
3530
case
BindValueKind
.Assignable:
3533
case
BindValueKind
.AddressOf:
3536
case
BindValueKind
.IncrementDecrement:
3539
case
BindValueKind
.FixedReceiver:
3542
case
BindValueKind
.RefReturn:
3543
case
BindValueKind
.ReadonlyRef:
3546
case
BindValueKind
.RefAssignable:
3574
private static void ReportReadOnlyFieldError(FieldSymbol field, SyntaxNode node,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3582
Debug.Assert(kind !=
BindValueKind
.AddressOf); // If this assert fails, we probably should report ErrorCode.ERR_InvalidAddrOp
3599
int index = (checkingReceiver ? 6 : 0) + (field.IsStatic ? 3 : 0) + (kind ==
BindValueKind
.RefReturn ? 0 : (RequiresRefOrOut(kind) ? 1 : 2));
3610
private static void ReportReadOnlyError(Symbol symbol, SyntaxNode node,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3617
if (kind ==
BindValueKind
.AddressOf)
3635
int index = (checkingReceiver ? 3 : 0) + (kind ==
BindValueKind
.RefReturn ? 0 : (RequiresRefOrOut(kind) ? 1 : 2));
Binder\Binder_Attributes.cs (1)
563
BoundExpression namedArgumentValue = this.BindValue(namedArgument.Expression, diagnostics,
BindValueKind
.RValue);
Binder\Binder_Conversions.cs (3)
455
if (CheckValueKind(syntax, source,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
470
if (CheckValueKind(syntax, source,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
Binder\Binder_Deconstruct.cs (3)
99
BoundExpression boundRight = rightPlaceholder ?? BindValue(right, deconstructionDiagnostics,
BindValueKind
.RValue);
658
memberAccess = CheckValue(memberAccess,
BindValueKind
.RValueOrMethodGroup, diagnostics);
792
var checkedVariable = CheckValue(boundVariable,
BindValueKind
.Assignable, diagnostics);
Binder\Binder_Expressions.cs (54)
242
internal BoundExpression BindValue(ExpressionSyntax node, BindingDiagnosticBag diagnostics,
BindValueKind
valueKind)
250
return BindToNaturalType(BindValue(node, diagnostics,
BindValueKind
.RValue), diagnostics, reportNoTargetType);
267
return CheckValue(valueOrType,
BindValueKind
.RValue, diagnostics);
441
internal BoundExpression BindValueAllowArgList(ExpressionSyntax node, BindingDiagnosticBag diagnostics,
BindValueKind
valueKind)
486
BindValueKind
valueKind;
519
valueBeforeConversion = defaultValueBinder.BindValue(defaultValueSyntax.Value, diagnostics,
BindValueKind
.RValue);
537
var initializer = initializerBinder.BindValue(equalsValueSyntax.Value, diagnostics,
BindValueKind
.RValue);
867
node, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(BindToTypeForErrorRecovery(BindValue(node.Expression, BindingDiagnosticBag.Discarded,
BindValueKind
.RefersToLocation))),
1019
ImmutableArray.Create(BindValue(arguments[0].Expression, diagnostics,
BindValueKind
.RValue)) :
1049
BoundExpression boundArgument = BindValue(argumentSyntax.Expression, diagnostics,
BindValueKind
.RValue);
1230
BoundExpression argument = BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
1253
BoundExpression argument = this.BindValue(node.Expression, diagnostics,
BindValueKind
.RefOrOut);
1278
BoundExpression argument = BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
2598
BoundExpression operand = this.BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
2623
BoundExpression boundOperand = BindValue(node.Operand, diagnostics,
BindValueKind
.RValue);
2731
BoundExpression boundOperand = BindValue(operand, diagnostics,
BindValueKind
.RValue);
3134
var
requiredValueKind = origRefKind == RefKind.In ?
BindValueKind
.ReadonlyRef :
BindValueKind
.RefOrOut;
3415
BindValueKind
valueKind =
3417
BindValueKind
.RValue :
3419
BindValueKind
.ReadonlyRef :
3420
BindValueKind
.RefOrOut;
3949
if (!this.CheckValueKind(argument.Syntax, argument,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
3961
if (this.CheckValueKind(argument.Syntax, argument,
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
4114
var size = BindValue(dimension, diagnostics,
BindValueKind
.RValue);
4230
var boundExpression = BindValue(expression, diagnostics,
BindValueKind
.RValue);
4247
var boundExpression = BindValue(expression, diagnostics,
BindValueKind
.RValue);
4576
count = BindValue(countSyntax, diagnostics,
BindValueKind
.RValue);
5291
ExpressionElementSyntax expressionElementSyntax => @this.BindValue(expressionElementSyntax.Expression, diagnostics,
BindValueKind
.RValue),
5671
BindValueKind
rhsValueKind,
5683
Debug.Assert(rhsValueKind ==
BindValueKind
.RValue);
5771
var
rhsKind = isRef ? GetRequiredRHSValueKindForRefAssignment(boundLeft) :
BindValueKind
.RValue;
5819
var boundExpression = BindValue(memberInitializer, diagnostics,
BindValueKind
.RValue);
5834
BindValueKind
valueKind = isRhsNestedInitializer ?
BindValueKind
.RValue : (isRef ?
BindValueKind
.RefAssignable :
BindValueKind
.Assignable);
5847
leftSyntax, implicitReceiver,
BindValueKind
.Assignable, false, diagnostics);
5854
BindValueKind
valueKind,
6096
BindValueKind
valueKind,
6130
return ToBadExpression(boundMember, (valueKind ==
BindValueKind
.RValue) ? LookupResultKind.NotAValue : LookupResultKind.NotAVariable);
6385
var boundElementInitializer = BindInitializerExpressionOrValue(elementInitializer, initializerType,
BindValueKind
.RValue, implicitReceiver.Syntax, diagnostics);
6414
exprBuilder.Add(BindValue(childElementInitializer, diagnostics,
BindValueKind
.RValue));
7703
boundLeft = CheckValue(boundLeft,
BindValueKind
.RValue, diagnostics);
7813
boundLeft = CheckValue(boundLeft,
BindValueKind
.RValue, diagnostics);
8971
hasError = !CheckValueKind(node, receiver,
BindValueKind
.FixedReceiver, checkingReceiver: false, diagnostics: diagnostics);
9384
receiver = CheckValue(receiver,
BindValueKind
.RValue, diagnostics);
9514
if (CheckValueKind(node, expr,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
9526
if (!CheckValueKind(node, expr,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
10552
lengthOrCountAccess = CheckValue(lengthOrCountAccess,
BindValueKind
.RValue, diagnostics);
11387
var access = conditionalAccessBinder.BindValue(node.WhenNotNull, diagnostics,
BindValueKind
.RValue);
Binder\Binder_InterpolatedString.cs (2)
90
var value = BindValue(interpolation.Expression, diagnostics,
BindValueKind
.RValue);
101
alignment = GenerateConversionForAssignment(intType, BindValue(interpolation.AlignmentClause.Value, diagnostics, Binder.
BindValueKind
.RValue), diagnostics);
Binder\Binder_Invocation.cs (11)
126
boundExpression = CheckValue(boundExpression,
BindValueKind
.RValueOrMethodGroup, diagnostics);
246
boundExpression = CheckValue(boundExpression,
BindValueKind
.RValueOrMethodGroup, diagnostics);
737
extensionMemberAccess = CheckValue(extensionMemberAccess,
BindValueKind
.RValue, diagnostics);
1277
receiverArgument = CheckValue(receiverArgument,
BindValueKind
.RefOrOut, diagnostics);
1380
receiver = CheckValue(receiver,
BindValueKind
.RefOrOut, diagnostics);
1407
var
valueKind = method.IsEffectivelyReadOnly
1408
?
BindValueKind
.RefersToLocation
1409
:
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable;
1979
return CheckValue(typeOrValue.Data.ValueExpression,
BindValueKind
.RValue, diagnostics);
2409
boundArgument = CheckValue(boundArgument,
BindValueKind
.RValue, diagnostics);
Binder\Binder_Operators.cs (28)
37
BoundExpression right = BindValue(node.Right, diagnostics,
BindValueKind
.RValue);
111
if (left.Kind == BoundKind.EventAccess && !CheckEventValueKind((BoundEventAccess)left,
BindValueKind
.Assignable, diagnostics))
357
if (!CheckValueKind(node, left,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
929
BindValueKind
bindValueKind = GetBinaryAssignmentKind(syntaxNode.Kind());
931
BoundExpression right = BindValue(syntaxNode.Right, diagnostics,
BindValueKind
.RValue);
3283
BoundExpression operand = BindToNaturalType(BindValue(operandSyntax, diagnostics,
BindValueKind
.IncrementDecrement), diagnostics);
3478
!CheckValueKind(node, operand,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
4134
BoundExpression operand = BindToNaturalType(BindValue(node.Operand, diagnostics,
BindValueKind
.AddressOf), diagnostics);
4221
bool receiverIsLValue = CheckValueKind(receiver.Syntax, receiver,
BindValueKind
.AddressOf, checkingReceiver: false, diagnostics: BindingDiagnosticBag.Discarded);
4651
private static
BindValueKind
GetBinaryAssignmentKind(SyntaxKind kind)
4656
return
BindValueKind
.Assignable;
4669
return
BindValueKind
.CompoundAssignment;
4671
return
BindValueKind
.RValue;
4675
private static
BindValueKind
GetUnaryAssignmentKind(SyntaxKind kind)
4683
return
BindValueKind
.IncrementDecrement;
4688
return
BindValueKind
.RValue;
5609
var leftOperand = BindValue(node.Left, diagnostics,
BindValueKind
.RValue);
5611
var rightOperand = BindValue(node.Right, diagnostics,
BindValueKind
.RValue);
5798
BoundExpression leftOperand = BindValue(node.Left, diagnostics,
BindValueKind
.CompoundAssignment);
5800
BoundExpression rightOperand = BindValue(node.Right, diagnostics,
BindValueKind
.RValue);
5927
BoundExpression trueExpr = BindValue(whenTrue, diagnostics,
BindValueKind
.RValue);
5928
BoundExpression falseExpr = BindValue(whenFalse, diagnostics,
BindValueKind
.RValue);
5968
BoundExpression trueExpr = BindValue(whenTrue, diagnostics,
BindValueKind
.RValue |
BindValueKind
.RefersToLocation);
5969
BoundExpression falseExpr = BindValue(whenFalse, diagnostics,
BindValueKind
.RValue |
BindValueKind
.RefersToLocation);
Binder\Binder_Patterns.cs (5)
251
indexerAccess = CheckValue(indexerAccess,
BindValueKind
.RValue, diagnostics);
400
indexerAccess = CheckValue(indexerAccess,
BindValueKind
.RValue, diagnostics);
548
expression = CheckValue(expression,
BindValueKind
.RValue, diagnostics);
1600
boundMember = CheckValue(boundMember,
BindValueKind
.RValue, diagnostics);
1613
if (!hasErrors && !CheckValueKind(node: memberName.Parent, expr: boundMember, valueKind:
BindValueKind
.RValue,
Binder\Binder_Query.cs (3)
848
BoundExpression boundExpression = lambdaBodyBinder.BindValue(expression, diagnostics,
BindValueKind
.RValue);
858
BoundExpression boundExpression = lambdaBodyBinder.BindValue(expression, diagnostics,
BindValueKind
.RValue);
998
var checkedUltimateReceiver = CheckValue(ultimateReceiver,
BindValueKind
.RValue, diagnostics);
Binder\Binder_Statements.cs (28)
240
: BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
395
var boundExpr = BindValue(exprSyntax, diagnostics,
BindValueKind
.RValue);
866
BindValueKind
valueKind;
873
protected BoundExpression BindInferredVariableInitializer(BindingDiagnosticBag diagnostics, ExpressionSyntax initializer,
BindValueKind
valueKind, CSharpSyntaxNode errorSyntax)
914
out
BindValueKind
valueKind,
921
valueKind =
BindValueKind
.RValue;
931
?
BindValueKind
.ReadonlyRef
932
:
BindValueKind
.RefOrOut;
1007
BindValueKind
valueKind;
1417
var
lhsKind = isRef ?
BindValueKind
.RefAssignable :
BindValueKind
.Assignable;
1425
var
rhsKind = isRef ? GetRequiredRHSValueKindForRefAssignment(op1) :
BindValueKind
.RValue;
1438
private static
BindValueKind
GetRequiredRHSValueKindForRefAssignment(BoundExpression boundLeft)
1440
var
rhsKind =
BindValueKind
.RefersToLocation;
1450
rhsKind |=
BindValueKind
.Assignable;
1861
BindValueKind
valueKind,
2678
var expr = BindValue(node, diagnostics,
BindValueKind
.RValue);
3034
BindValueKind
requiredValueKind = GetRequiredReturnValueKind(refKind);
3617
BindValueKind
requiredValueKind = bodyBinder.GetRequiredReturnValueKind(refKind);
3633
BindValueKind
requiredValueKind = GetRequiredReturnValueKind(refKind);
3647
private
BindValueKind
GetRequiredReturnValueKind(RefKind refKind)
3649
BindValueKind
requiredValueKind =
BindValueKind
.RValue;
3654
BindValueKind
.RefReturn :
3655
BindValueKind
.ReadonlyRef;
Binder\ForEachLoopBinder.cs (9)
343
BindValueKind
requiredCurrentKind;
347
requiredCurrentKind =
BindValueKind
.RValue;
350
requiredCurrentKind =
BindValueKind
.Assignable |
BindValueKind
.RefersToLocation;
353
requiredCurrentKind =
BindValueKind
.RefersToLocation;
629
BoundExpression collectionExpr = this.GetBinder(collectionSyntax).BindValue(collectionSyntax, diagnostics,
BindValueKind
.RValue);
839
if (CheckValueKind(collectionExpr.Syntax, collectionExpr,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
847
if (!CheckValueKind(collectionExpr.Syntax, collectionExpr,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
Binder\LockOrUsingBinder.cs (1)
84
BoundExpression boundExpression = originalBinder.BindValue(TargetExpressionSyntax, expressionDiagnostics, Binder.
BindValueKind
.RValueOrMethodGroup);
Binder\SwitchBinder.cs (1)
497
gotoCaseExpressionOpt = gotoBinder.BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
Binder\SwitchExpressionArmBinder.cs (1)
46
BoundExpression armResult = armBinder.BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
Symbols\Source\SourceFixedFieldSymbol.cs (1)
93
binder.BindValue(sizeExpression, diagnostics, Binder.
BindValueKind
.RValue),