254 references to BindValueKind
Microsoft.CodeAnalysis.CSharp (254)
Binder\Binder.ValueChecks.cs (103)
478
private const
BindValueKind
ValueKindSignificantBitsMask = unchecked((
BindValueKind
)~((1 << ValueKindInsignificantBits) - 1));
575
private static bool RequiresRValueOnly(
BindValueKind
kind)
577
return (kind & ValueKindSignificantBitsMask) ==
BindValueKind
.RValue;
580
private static bool RequiresAssignmentOnly(
BindValueKind
kind)
582
return (kind & ValueKindSignificantBitsMask) ==
BindValueKind
.Assignable;
585
private static bool RequiresVariable(
BindValueKind
kind)
590
private static bool RequiresReferenceToLocation(
BindValueKind
kind)
592
return (kind &
BindValueKind
.RefersToLocation) != 0;
595
private static bool RequiresAssignableVariable(
BindValueKind
kind)
597
return (kind &
BindValueKind
.Assignable) != 0;
600
private static bool RequiresRefAssignableVariable(
BindValueKind
kind)
602
return (kind &
BindValueKind
.RefAssignable) != 0;
605
private static bool RequiresRefOrOut(
BindValueKind
kind)
607
return (kind &
BindValueKind
.RefOrOut) ==
BindValueKind
.RefOrOut;
612
private static AccessorKind GetIndexerAccessorKind(BoundIndexerAccess indexerAccess,
BindValueKind
valueKind)
622
private static AccessorKind GetAccessorKind(
BindValueKind
valueKind)
624
var
coreValueKind = valueKind & ValueKindSignificantBitsMask;
627
BindValueKind
.CompoundAssignment => AccessorKind.Both,
628
BindValueKind
.Assignable => AccessorKind.Set,
633
private BoundIndexerAccess BindIndexerDefaultArgumentsAndParamsCollection(BoundIndexerAccess indexerAccess,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
635
var
coreValueKind = valueKind & ValueKindSignificantBitsMask;
637
var useSetAccessor = coreValueKind ==
BindValueKind
.Assignable && indexerAccess.Indexer.RefKind != RefKind.Ref;
734
private BoundExpression CheckValue(BoundExpression expr,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
749
Debug.Assert(expr.Syntax.Kind() != SyntaxKind.Argument || valueKind ==
BindValueKind
.RefOrOut);
754
Debug.Assert(valueKind ==
BindValueKind
.RefOrOut);
758
Debug.Assert(valueKind is (
BindValueKind
.Assignable or
BindValueKind
.RefOrOut or
BindValueKind
.RefAssignable) || diagnostics.DiagnosticBag is null || diagnostics.HasAnyResolvedErrors());
808
if (valueKind ==
BindValueKind
.RValue)
815
if ((valueKind &
BindValueKind
.RefersToLocation) ==
BindValueKind
.RefersToLocation)
823
if ((valueKind &
BindValueKind
.RefersToLocation) ==
BindValueKind
.RefersToLocation)
837
if (expr.Kind == BoundKind.MethodGroup && valueKind !=
BindValueKind
.RValueOrMethodGroup)
886
expr.HasAnyErrors && valueKind ==
BindValueKind
.RValueOrMethodGroup)
891
var resultKind = (valueKind ==
BindValueKind
.RValue || valueKind ==
BindValueKind
.RValueOrMethodGroup) ?
923
internal bool CheckValueKind(SyntaxNode node, BoundExpression expr,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
981
case BoundKind.MethodGroup when valueKind ==
BindValueKind
.AddressOf:
1203
bool checkArrayAccessValueKind(SyntaxNode node,
BindValueKind
valueKind, ImmutableArray<BoundExpression> indices, BindingDiagnosticBag diagnostics)
1225
private static void ReportThisLvalueError(SyntaxNode node,
BindValueKind
valueKind, bool isValueType, bool isPrimaryConstructorParameter, BindingDiagnosticBag diagnostics)
1253
private void CheckAddressOfInAsyncOrIteratorMethod(SyntaxNode node,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1255
if (valueKind ==
BindValueKind
.AddressOf)
1268
private bool CheckLocalValueKind(SyntaxNode node, BoundLocal local,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1358
private bool CheckParameterValueKind(SyntaxNode node, BoundParameter parameter,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1360
Debug.Assert(!RequiresAssignableVariable(
BindValueKind
.AddressOf));
1421
static void reportReadOnlyParameterError(ParameterSymbol parameterSymbol, SyntaxNode node,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1425
Debug.Assert(valueKind !=
BindValueKind
.AddressOf); // If this assert fails, we probably should report ErrorCode.ERR_InvalidAddrOp
1431
if (valueKind ==
BindValueKind
.RefReturn)
1450
if (valueKind ==
BindValueKind
.RefReturn)
1566
private bool CheckFieldValueKind(SyntaxNode node, BoundFieldAccess fieldAccess,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1611
Debug.Assert(valueKind ==
BindValueKind
.RefAssignable);
1628
return CheckIsValidReceiverForVariable(node, fieldAccess.ReceiverOpt,
BindValueKind
.Assignable, diagnostics);
1714
private bool CheckSimpleAssignmentValueKind(SyntaxNode node, BoundAssignmentOperator assignment,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1793
private bool CheckEventValueKind(BoundEventAccess boundEvent,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1804
if (valueKind ==
BindValueKind
.CompoundAssignment)
1830
if (!CheckIsValidReceiverForVariable(eventSyntax, receiver,
BindValueKind
.Assignable, diagnostics))
1837
if (eventSymbol.IsWindowsRuntimeEvent && valueKind !=
BindValueKind
.Assignable)
1841
if (valueKind ==
BindValueKind
.RefOrOut)
1862
private bool CheckIsValidReceiverForVariable(SyntaxNode node, BoundExpression receiver,
BindValueKind
kind, BindingDiagnosticBag diagnostics)
1892
BindValueKind
valueKind,
1933
private bool CheckPropertyValueKind(SyntaxNode node, BoundExpression expr,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1960
else if (valueKind ==
BindValueKind
.RefOrOut)
2031
var
setValueKind = setMethod.IsEffectivelyReadOnly ?
BindValueKind
.RValue :
BindValueKind
.Assignable;
3414
private static void ReportReadonlyLocalError(SyntaxNode node, LocalSymbol local,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3417
Debug.Assert(kind !=
BindValueKind
.RValue);
3452
private static ErrorCode GetThisLvalueError(
BindValueKind
kind, bool isValueType, bool isPrimaryConstructorParameter)
3456
case
BindValueKind
.CompoundAssignment:
3457
case
BindValueKind
.Assignable:
3460
case
BindValueKind
.RefOrOut:
3463
case
BindValueKind
.AddressOf:
3466
case
BindValueKind
.IncrementDecrement:
3469
case
BindValueKind
.RefReturn:
3470
case
BindValueKind
.ReadonlyRef:
3473
case
BindValueKind
.RefAssignable:
3485
private static ErrorCode GetRangeLvalueError(
BindValueKind
kind)
3489
case
BindValueKind
.Assignable:
3490
case
BindValueKind
.CompoundAssignment:
3491
case
BindValueKind
.IncrementDecrement:
3494
case
BindValueKind
.AddressOf:
3497
case
BindValueKind
.RefReturn:
3498
case
BindValueKind
.ReadonlyRef:
3501
case
BindValueKind
.RefAssignable:
3513
private static ErrorCode GetMethodGroupOrFunctionPointerLvalueError(
BindValueKind
valueKind)
3524
private static ErrorCode GetStandardLvalueError(
BindValueKind
kind)
3528
case
BindValueKind
.CompoundAssignment:
3529
case
BindValueKind
.Assignable:
3532
case
BindValueKind
.AddressOf:
3535
case
BindValueKind
.IncrementDecrement:
3538
case
BindValueKind
.FixedReceiver:
3541
case
BindValueKind
.RefReturn:
3542
case
BindValueKind
.ReadonlyRef:
3545
case
BindValueKind
.RefAssignable:
3573
private static void ReportReadOnlyFieldError(FieldSymbol field, SyntaxNode node,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3581
Debug.Assert(kind !=
BindValueKind
.AddressOf); // If this assert fails, we probably should report ErrorCode.ERR_InvalidAddrOp
3598
int index = (checkingReceiver ? 6 : 0) + (field.IsStatic ? 3 : 0) + (kind ==
BindValueKind
.RefReturn ? 0 : (RequiresRefOrOut(kind) ? 1 : 2));
3609
private static void ReportReadOnlyError(Symbol symbol, SyntaxNode node,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3616
if (kind ==
BindValueKind
.AddressOf)
3634
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);
436
internal BoundExpression BindValueAllowArgList(ExpressionSyntax node, BindingDiagnosticBag diagnostics,
BindValueKind
valueKind)
481
BindValueKind
valueKind;
514
valueBeforeConversion = defaultValueBinder.BindValue(defaultValueSyntax.Value, diagnostics,
BindValueKind
.RValue);
532
var initializer = initializerBinder.BindValue(equalsValueSyntax.Value, diagnostics,
BindValueKind
.RValue);
862
node, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(BindToTypeForErrorRecovery(BindValue(node.Expression, BindingDiagnosticBag.Discarded,
BindValueKind
.RefersToLocation))),
1014
ImmutableArray.Create(BindValue(arguments[0].Expression, diagnostics,
BindValueKind
.RValue)) :
1044
BoundExpression boundArgument = BindValue(argumentSyntax.Expression, diagnostics,
BindValueKind
.RValue);
1225
BoundExpression argument = BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
1248
BoundExpression argument = this.BindValue(node.Expression, diagnostics,
BindValueKind
.RefOrOut);
1273
BoundExpression argument = BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
2609
BoundExpression operand = this.BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
2634
BoundExpression boundOperand = BindValue(node.Operand, diagnostics,
BindValueKind
.RValue);
2742
BoundExpression boundOperand = BindValue(operand, diagnostics,
BindValueKind
.RValue);
3145
var
requiredValueKind = origRefKind == RefKind.In ?
BindValueKind
.ReadonlyRef :
BindValueKind
.RefOrOut;
3426
BindValueKind
valueKind =
3428
BindValueKind
.RValue :
3430
BindValueKind
.ReadonlyRef :
3431
BindValueKind
.RefOrOut;
3960
if (!this.CheckValueKind(argument.Syntax, argument,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
3972
if (this.CheckValueKind(argument.Syntax, argument,
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
4125
var size = BindValue(dimension, diagnostics,
BindValueKind
.RValue);
4241
var boundExpression = BindValue(expression, diagnostics,
BindValueKind
.RValue);
4258
var boundExpression = BindValue(expression, diagnostics,
BindValueKind
.RValue);
4587
count = BindValue(countSyntax, diagnostics,
BindValueKind
.RValue);
5301
ExpressionElementSyntax expressionElementSyntax => @this.BindValue(expressionElementSyntax.Expression, diagnostics,
BindValueKind
.RValue),
5681
BindValueKind
rhsValueKind,
5693
Debug.Assert(rhsValueKind ==
BindValueKind
.RValue);
5781
var
rhsKind = isRef ? GetRequiredRHSValueKindForRefAssignment(boundLeft) :
BindValueKind
.RValue;
5829
var boundExpression = BindValue(memberInitializer, diagnostics,
BindValueKind
.RValue);
5844
BindValueKind
valueKind = isRhsNestedInitializer ?
BindValueKind
.RValue : (isRef ?
BindValueKind
.RefAssignable :
BindValueKind
.Assignable);
5857
leftSyntax, implicitReceiver,
BindValueKind
.Assignable, false, diagnostics);
5864
BindValueKind
valueKind,
6106
BindValueKind
valueKind,
6140
return ToBadExpression(boundMember, (valueKind ==
BindValueKind
.RValue) ? LookupResultKind.NotAValue : LookupResultKind.NotAVariable);
6395
var boundElementInitializer = BindInitializerExpressionOrValue(elementInitializer, initializerType,
BindValueKind
.RValue, implicitReceiver.Syntax, diagnostics);
6424
exprBuilder.Add(BindValue(childElementInitializer, diagnostics,
BindValueKind
.RValue));
7713
boundLeft = CheckValue(boundLeft,
BindValueKind
.RValue, diagnostics);
7823
boundLeft = CheckValue(boundLeft,
BindValueKind
.RValue, diagnostics);
8946
hasError = !CheckValueKind(node, receiver,
BindValueKind
.FixedReceiver, checkingReceiver: false, diagnostics: diagnostics);
9359
receiver = CheckValue(receiver,
BindValueKind
.RValue, diagnostics);
9489
if (CheckValueKind(node, expr,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
9501
if (!CheckValueKind(node, expr,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
10527
lengthOrCountAccess = CheckValue(lengthOrCountAccess,
BindValueKind
.RValue, diagnostics);
11360
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);
1291
receiverArgument = CheckValue(receiverArgument,
BindValueKind
.RefOrOut, diagnostics);
1394
receiver = CheckValue(receiver,
BindValueKind
.RefOrOut, diagnostics);
1421
var
valueKind = method.IsEffectivelyReadOnly
1422
?
BindValueKind
.RefersToLocation
1423
:
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable;
1993
return CheckValue(typeOrValue.Data.ValueExpression,
BindValueKind
.RValue, diagnostics);
2420
boundArgument = CheckValue(boundArgument,
BindValueKind
.RValue, diagnostics);
Binder\Binder_Operators.cs (28)
30
BoundExpression right = BindValue(node.Right, diagnostics,
BindValueKind
.RValue);
104
if (left.Kind == BoundKind.EventAccess && !CheckEventValueKind((BoundEventAccess)left,
BindValueKind
.Assignable, diagnostics))
346
if (!CheckValueKind(node, left,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
900
BindValueKind
bindValueKind = GetBinaryAssignmentKind(syntaxNode.Kind());
902
BoundExpression right = BindValue(syntaxNode.Right, diagnostics,
BindValueKind
.RValue);
3143
BoundExpression operand = BindToNaturalType(BindValue(operandSyntax, diagnostics,
BindValueKind
.IncrementDecrement), diagnostics);
3334
!CheckValueKind(node, operand,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
3971
BoundExpression operand = BindToNaturalType(BindValue(node.Operand, diagnostics,
BindValueKind
.AddressOf), diagnostics);
4058
bool receiverIsLValue = CheckValueKind(receiver.Syntax, receiver,
BindValueKind
.AddressOf, checkingReceiver: false, diagnostics: BindingDiagnosticBag.Discarded);
4483
private static
BindValueKind
GetBinaryAssignmentKind(SyntaxKind kind)
4488
return
BindValueKind
.Assignable;
4501
return
BindValueKind
.CompoundAssignment;
4503
return
BindValueKind
.RValue;
4507
private static
BindValueKind
GetUnaryAssignmentKind(SyntaxKind kind)
4515
return
BindValueKind
.IncrementDecrement;
4520
return
BindValueKind
.RValue;
5441
var leftOperand = BindValue(node.Left, diagnostics,
BindValueKind
.RValue);
5443
var rightOperand = BindValue(node.Right, diagnostics,
BindValueKind
.RValue);
5630
BoundExpression leftOperand = BindValue(node.Left, diagnostics,
BindValueKind
.CompoundAssignment);
5632
BoundExpression rightOperand = BindValue(node.Right, diagnostics,
BindValueKind
.RValue);
5759
BoundExpression trueExpr = BindValue(whenTrue, diagnostics,
BindValueKind
.RValue);
5760
BoundExpression falseExpr = BindValue(whenFalse, diagnostics,
BindValueKind
.RValue);
5800
BoundExpression trueExpr = BindValue(whenTrue, diagnostics,
BindValueKind
.RValue |
BindValueKind
.RefersToLocation);
5801
BoundExpression falseExpr = BindValue(whenFalse, diagnostics,
BindValueKind
.RValue |
BindValueKind
.RefersToLocation);
Binder\Binder_Patterns.cs (5)
240
indexerAccess = CheckValue(indexerAccess,
BindValueKind
.RValue, diagnostics);
389
indexerAccess = CheckValue(indexerAccess,
BindValueKind
.RValue, diagnostics);
537
expression = CheckValue(expression,
BindValueKind
.RValue, diagnostics);
1589
boundMember = CheckValue(boundMember,
BindValueKind
.RValue, diagnostics);
1602
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);
3031
BindValueKind
requiredValueKind = GetRequiredReturnValueKind(refKind);
3614
BindValueKind
requiredValueKind = bodyBinder.GetRequiredReturnValueKind(refKind);
3630
BindValueKind
requiredValueKind = GetRequiredReturnValueKind(refKind);
3644
private
BindValueKind
GetRequiredReturnValueKind(RefKind refKind)
3646
BindValueKind
requiredValueKind =
BindValueKind
.RValue;
3651
BindValueKind
.RefReturn :
3652
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),