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());
810
if (valueKind ==
BindValueKind
.RValue)
817
if ((valueKind &
BindValueKind
.RefersToLocation) ==
BindValueKind
.RefersToLocation)
825
if ((valueKind &
BindValueKind
.RefersToLocation) ==
BindValueKind
.RefersToLocation)
839
if (expr.Kind == BoundKind.MethodGroup && valueKind !=
BindValueKind
.RValueOrMethodGroup)
888
expr.HasAnyErrors && valueKind ==
BindValueKind
.RValueOrMethodGroup)
893
var resultKind = (valueKind ==
BindValueKind
.RValue || valueKind ==
BindValueKind
.RValueOrMethodGroup) ?
925
internal bool CheckValueKind(SyntaxNode node, BoundExpression expr,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
983
case BoundKind.MethodGroup when valueKind ==
BindValueKind
.AddressOf:
1205
bool checkArrayAccessValueKind(SyntaxNode node,
BindValueKind
valueKind, ImmutableArray<BoundExpression> indices, BindingDiagnosticBag diagnostics)
1227
private static void ReportThisLvalueError(SyntaxNode node,
BindValueKind
valueKind, bool isValueType, bool isPrimaryConstructorParameter, BindingDiagnosticBag diagnostics)
1255
private void CheckAddressOfInAsyncOrIteratorMethod(SyntaxNode node,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1257
if (valueKind ==
BindValueKind
.AddressOf)
1270
private bool CheckLocalValueKind(SyntaxNode node, BoundLocal local,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1360
private bool CheckParameterValueKind(SyntaxNode node, BoundParameter parameter,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1362
Debug.Assert(!RequiresAssignableVariable(
BindValueKind
.AddressOf));
1423
static void reportReadOnlyParameterError(ParameterSymbol parameterSymbol, SyntaxNode node,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1427
Debug.Assert(valueKind !=
BindValueKind
.AddressOf); // If this assert fails, we probably should report ErrorCode.ERR_InvalidAddrOp
1433
if (valueKind ==
BindValueKind
.RefReturn)
1452
if (valueKind ==
BindValueKind
.RefReturn)
1568
private bool CheckFieldValueKind(SyntaxNode node, BoundFieldAccess fieldAccess,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1613
Debug.Assert(valueKind ==
BindValueKind
.RefAssignable);
1630
return CheckIsValidReceiverForVariable(node, fieldAccess.ReceiverOpt,
BindValueKind
.Assignable, diagnostics);
1716
private bool CheckSimpleAssignmentValueKind(SyntaxNode node, BoundAssignmentOperator assignment,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1795
private bool CheckEventValueKind(BoundEventAccess boundEvent,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1806
if (valueKind ==
BindValueKind
.CompoundAssignment)
1832
if (!CheckIsValidReceiverForVariable(eventSyntax, receiver,
BindValueKind
.Assignable, diagnostics))
1839
if (eventSymbol.IsWindowsRuntimeEvent && valueKind !=
BindValueKind
.Assignable)
1843
if (valueKind ==
BindValueKind
.RefOrOut)
1864
private bool CheckIsValidReceiverForVariable(SyntaxNode node, BoundExpression receiver,
BindValueKind
kind, BindingDiagnosticBag diagnostics)
1894
BindValueKind
valueKind,
1935
private bool CheckPropertyValueKind(SyntaxNode node, BoundExpression expr,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1962
else if (valueKind ==
BindValueKind
.RefOrOut)
2033
var
setValueKind = setMethod.IsEffectivelyReadOnly ?
BindValueKind
.RValue :
BindValueKind
.Assignable;
3406
private static void ReportReadonlyLocalError(SyntaxNode node, LocalSymbol local,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3409
Debug.Assert(kind !=
BindValueKind
.RValue);
3444
private static ErrorCode GetThisLvalueError(
BindValueKind
kind, bool isValueType, bool isPrimaryConstructorParameter)
3448
case
BindValueKind
.CompoundAssignment:
3449
case
BindValueKind
.Assignable:
3452
case
BindValueKind
.RefOrOut:
3455
case
BindValueKind
.AddressOf:
3458
case
BindValueKind
.IncrementDecrement:
3461
case
BindValueKind
.RefReturn:
3462
case
BindValueKind
.ReadonlyRef:
3465
case
BindValueKind
.RefAssignable:
3477
private static ErrorCode GetRangeLvalueError(
BindValueKind
kind)
3481
case
BindValueKind
.Assignable:
3482
case
BindValueKind
.CompoundAssignment:
3483
case
BindValueKind
.IncrementDecrement:
3486
case
BindValueKind
.AddressOf:
3489
case
BindValueKind
.RefReturn:
3490
case
BindValueKind
.ReadonlyRef:
3493
case
BindValueKind
.RefAssignable:
3505
private static ErrorCode GetMethodGroupOrFunctionPointerLvalueError(
BindValueKind
valueKind)
3516
private static ErrorCode GetStandardLvalueError(
BindValueKind
kind)
3520
case
BindValueKind
.CompoundAssignment:
3521
case
BindValueKind
.Assignable:
3524
case
BindValueKind
.AddressOf:
3527
case
BindValueKind
.IncrementDecrement:
3530
case
BindValueKind
.FixedReceiver:
3533
case
BindValueKind
.RefReturn:
3534
case
BindValueKind
.ReadonlyRef:
3537
case
BindValueKind
.RefAssignable:
3565
private static void ReportReadOnlyFieldError(FieldSymbol field, SyntaxNode node,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3573
Debug.Assert(kind !=
BindValueKind
.AddressOf); // If this assert fails, we probably should report ErrorCode.ERR_InvalidAddrOp
3590
int index = (checkingReceiver ? 6 : 0) + (field.IsStatic ? 3 : 0) + (kind ==
BindValueKind
.RefReturn ? 0 : (RequiresRefOrOut(kind) ? 1 : 2));
3601
private static void ReportReadOnlyError(Symbol symbol, SyntaxNode node,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3608
if (kind ==
BindValueKind
.AddressOf)
3626
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);
445
internal BoundExpression BindValueAllowArgList(ExpressionSyntax node, BindingDiagnosticBag diagnostics,
BindValueKind
valueKind)
490
BindValueKind
valueKind;
523
valueBeforeConversion = defaultValueBinder.BindValue(defaultValueSyntax.Value, diagnostics,
BindValueKind
.RValue);
541
var initializer = initializerBinder.BindValue(equalsValueSyntax.Value, diagnostics,
BindValueKind
.RValue);
871
node, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(BindToTypeForErrorRecovery(BindValue(node.Expression, BindingDiagnosticBag.Discarded,
BindValueKind
.RefersToLocation))),
1023
ImmutableArray.Create(BindValue(arguments[0].Expression, diagnostics,
BindValueKind
.RValue)) :
1053
BoundExpression boundArgument = BindValue(argumentSyntax.Expression, diagnostics,
BindValueKind
.RValue);
1234
BoundExpression argument = BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
1257
BoundExpression argument = this.BindValue(node.Expression, diagnostics,
BindValueKind
.RefOrOut);
1282
BoundExpression argument = BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
2602
BoundExpression operand = this.BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
2627
BoundExpression boundOperand = BindValue(node.Operand, diagnostics,
BindValueKind
.RValue);
2735
BoundExpression boundOperand = BindValue(operand, diagnostics,
BindValueKind
.RValue);
3138
var
requiredValueKind = origRefKind == RefKind.In ?
BindValueKind
.ReadonlyRef :
BindValueKind
.RefOrOut;
3419
BindValueKind
valueKind =
3421
BindValueKind
.RValue :
3423
BindValueKind
.ReadonlyRef :
3424
BindValueKind
.RefOrOut;
3953
if (!this.CheckValueKind(argument.Syntax, argument,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
3965
if (this.CheckValueKind(argument.Syntax, argument,
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
4118
var size = BindValue(dimension, diagnostics,
BindValueKind
.RValue);
4234
var boundExpression = BindValue(expression, diagnostics,
BindValueKind
.RValue);
4251
var boundExpression = BindValue(expression, diagnostics,
BindValueKind
.RValue);
4580
count = BindValue(countSyntax, diagnostics,
BindValueKind
.RValue);
5295
ExpressionElementSyntax expressionElementSyntax => @this.BindValue(expressionElementSyntax.Expression, diagnostics,
BindValueKind
.RValue),
5675
BindValueKind
rhsValueKind,
5687
Debug.Assert(rhsValueKind ==
BindValueKind
.RValue);
5775
var
rhsKind = isRef ? GetRequiredRHSValueKindForRefAssignment(boundLeft) :
BindValueKind
.RValue;
5823
var boundExpression = BindValue(memberInitializer, diagnostics,
BindValueKind
.RValue);
5838
BindValueKind
valueKind = isRhsNestedInitializer ?
BindValueKind
.RValue : (isRef ?
BindValueKind
.RefAssignable :
BindValueKind
.Assignable);
5851
leftSyntax, implicitReceiver,
BindValueKind
.Assignable, false, diagnostics);
5858
BindValueKind
valueKind,
6100
BindValueKind
valueKind,
6134
return ToBadExpression(boundMember, (valueKind ==
BindValueKind
.RValue) ? LookupResultKind.NotAValue : LookupResultKind.NotAVariable);
6389
var boundElementInitializer = BindInitializerExpressionOrValue(elementInitializer, initializerType,
BindValueKind
.RValue, implicitReceiver.Syntax, diagnostics);
6418
exprBuilder.Add(BindValue(childElementInitializer, diagnostics,
BindValueKind
.RValue));
7707
boundLeft = CheckValue(boundLeft,
BindValueKind
.RValue, diagnostics);
7817
boundLeft = CheckValue(boundLeft,
BindValueKind
.RValue, diagnostics);
8975
hasError = !CheckValueKind(node, receiver,
BindValueKind
.FixedReceiver, checkingReceiver: false, diagnostics: diagnostics);
9388
receiver = CheckValue(receiver,
BindValueKind
.RValue, diagnostics);
9518
if (CheckValueKind(node, expr,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
9530
if (!CheckValueKind(node, expr,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
10556
lengthOrCountAccess = CheckValue(lengthOrCountAccess,
BindValueKind
.RValue, diagnostics);
11391
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);
3261
BoundExpression operand = BindToNaturalType(BindValue(operandSyntax, diagnostics,
BindValueKind
.IncrementDecrement), diagnostics);
3456
!CheckValueKind(node, operand,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
4112
BoundExpression operand = BindToNaturalType(BindValue(node.Operand, diagnostics,
BindValueKind
.AddressOf), diagnostics);
4199
bool receiverIsLValue = CheckValueKind(receiver.Syntax, receiver,
BindValueKind
.AddressOf, checkingReceiver: false, diagnostics: BindingDiagnosticBag.Discarded);
4629
private static
BindValueKind
GetBinaryAssignmentKind(SyntaxKind kind)
4634
return
BindValueKind
.Assignable;
4647
return
BindValueKind
.CompoundAssignment;
4649
return
BindValueKind
.RValue;
4653
private static
BindValueKind
GetUnaryAssignmentKind(SyntaxKind kind)
4661
return
BindValueKind
.IncrementDecrement;
4666
return
BindValueKind
.RValue;
5587
var leftOperand = BindValue(node.Left, diagnostics,
BindValueKind
.RValue);
5589
var rightOperand = BindValue(node.Right, diagnostics,
BindValueKind
.RValue);
5776
BoundExpression leftOperand = BindValue(node.Left, diagnostics,
BindValueKind
.CompoundAssignment);
5778
BoundExpression rightOperand = BindValue(node.Right, diagnostics,
BindValueKind
.RValue);
5905
BoundExpression trueExpr = BindValue(whenTrue, diagnostics,
BindValueKind
.RValue);
5906
BoundExpression falseExpr = BindValue(whenFalse, diagnostics,
BindValueKind
.RValue);
5946
BoundExpression trueExpr = BindValue(whenTrue, diagnostics,
BindValueKind
.RValue |
BindValueKind
.RefersToLocation);
5947
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);
871
BindValueKind
valueKind;
878
protected BoundExpression BindInferredVariableInitializer(BindingDiagnosticBag diagnostics, ExpressionSyntax initializer,
BindValueKind
valueKind, CSharpSyntaxNode errorSyntax)
919
out
BindValueKind
valueKind,
926
valueKind =
BindValueKind
.RValue;
936
?
BindValueKind
.ReadonlyRef
937
:
BindValueKind
.RefOrOut;
1012
BindValueKind
valueKind;
1422
var
lhsKind = isRef ?
BindValueKind
.RefAssignable :
BindValueKind
.Assignable;
1430
var
rhsKind = isRef ? GetRequiredRHSValueKindForRefAssignment(op1) :
BindValueKind
.RValue;
1443
private static
BindValueKind
GetRequiredRHSValueKindForRefAssignment(BoundExpression boundLeft)
1445
var
rhsKind =
BindValueKind
.RefersToLocation;
1455
rhsKind |=
BindValueKind
.Assignable;
1867
BindValueKind
valueKind,
2684
var expr = BindValue(node, diagnostics,
BindValueKind
.RValue);
3040
BindValueKind
requiredValueKind = GetRequiredReturnValueKind(refKind);
3623
BindValueKind
requiredValueKind = bodyBinder.GetRequiredReturnValueKind(refKind);
3639
BindValueKind
requiredValueKind = GetRequiredReturnValueKind(refKind);
3653
private
BindValueKind
GetRequiredReturnValueKind(RefKind refKind)
3655
BindValueKind
requiredValueKind =
BindValueKind
.RValue;
3660
BindValueKind
.RefReturn :
3661
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),