254 references to BindValueKind
Microsoft.CodeAnalysis.CSharp (254)
Binder\Binder.ValueChecks.cs (103)
477
private const
BindValueKind
ValueKindSignificantBitsMask = unchecked((
BindValueKind
)~((1 << ValueKindInsignificantBits) - 1));
574
private static bool RequiresRValueOnly(
BindValueKind
kind)
576
return (kind & ValueKindSignificantBitsMask) ==
BindValueKind
.RValue;
579
private static bool RequiresAssignmentOnly(
BindValueKind
kind)
581
return (kind & ValueKindSignificantBitsMask) ==
BindValueKind
.Assignable;
584
private static bool RequiresVariable(
BindValueKind
kind)
589
private static bool RequiresReferenceToLocation(
BindValueKind
kind)
591
return (kind &
BindValueKind
.RefersToLocation) != 0;
594
private static bool RequiresAssignableVariable(
BindValueKind
kind)
596
return (kind &
BindValueKind
.Assignable) != 0;
599
private static bool RequiresRefAssignableVariable(
BindValueKind
kind)
601
return (kind &
BindValueKind
.RefAssignable) != 0;
604
private static bool RequiresRefOrOut(
BindValueKind
kind)
606
return (kind &
BindValueKind
.RefOrOut) ==
BindValueKind
.RefOrOut;
611
private static AccessorKind GetIndexerAccessorKind(BoundIndexerAccess indexerAccess,
BindValueKind
valueKind)
621
private static AccessorKind GetAccessorKind(
BindValueKind
valueKind)
623
var
coreValueKind = valueKind & ValueKindSignificantBitsMask;
626
BindValueKind
.CompoundAssignment => AccessorKind.Both,
627
BindValueKind
.Assignable => AccessorKind.Set,
632
private BoundIndexerAccess BindIndexerDefaultArgumentsAndParamsCollection(BoundIndexerAccess indexerAccess,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
634
var
coreValueKind = valueKind & ValueKindSignificantBitsMask;
636
var useSetAccessor = coreValueKind ==
BindValueKind
.Assignable && indexerAccess.Indexer.RefKind != RefKind.Ref;
733
private BoundExpression CheckValue(BoundExpression expr,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
748
Debug.Assert(expr.Syntax.Kind() != SyntaxKind.Argument || valueKind ==
BindValueKind
.RefOrOut);
753
Debug.Assert(valueKind ==
BindValueKind
.RefOrOut);
757
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;
3405
private static void ReportReadonlyLocalError(SyntaxNode node, LocalSymbol local,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3408
Debug.Assert(kind !=
BindValueKind
.RValue);
3443
private static ErrorCode GetThisLvalueError(
BindValueKind
kind, bool isValueType, bool isPrimaryConstructorParameter)
3447
case
BindValueKind
.CompoundAssignment:
3448
case
BindValueKind
.Assignable:
3451
case
BindValueKind
.RefOrOut:
3454
case
BindValueKind
.AddressOf:
3457
case
BindValueKind
.IncrementDecrement:
3460
case
BindValueKind
.RefReturn:
3461
case
BindValueKind
.ReadonlyRef:
3464
case
BindValueKind
.RefAssignable:
3476
private static ErrorCode GetRangeLvalueError(
BindValueKind
kind)
3480
case
BindValueKind
.Assignable:
3481
case
BindValueKind
.CompoundAssignment:
3482
case
BindValueKind
.IncrementDecrement:
3485
case
BindValueKind
.AddressOf:
3488
case
BindValueKind
.RefReturn:
3489
case
BindValueKind
.ReadonlyRef:
3492
case
BindValueKind
.RefAssignable:
3504
private static ErrorCode GetMethodGroupOrFunctionPointerLvalueError(
BindValueKind
valueKind)
3515
private static ErrorCode GetStandardLvalueError(
BindValueKind
kind)
3519
case
BindValueKind
.CompoundAssignment:
3520
case
BindValueKind
.Assignable:
3523
case
BindValueKind
.AddressOf:
3526
case
BindValueKind
.IncrementDecrement:
3529
case
BindValueKind
.FixedReceiver:
3532
case
BindValueKind
.RefReturn:
3533
case
BindValueKind
.ReadonlyRef:
3536
case
BindValueKind
.RefAssignable:
3564
private static void ReportReadOnlyFieldError(FieldSymbol field, SyntaxNode node,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3572
Debug.Assert(kind !=
BindValueKind
.AddressOf); // If this assert fails, we probably should report ErrorCode.ERR_InvalidAddrOp
3589
int index = (checkingReceiver ? 6 : 0) + (field.IsStatic ? 3 : 0) + (kind ==
BindValueKind
.RefReturn ? 0 : (RequiresRefOrOut(kind) ? 1 : 2));
3600
private static void ReportReadOnlyError(Symbol symbol, SyntaxNode node,
BindValueKind
kind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
3607
if (kind ==
BindValueKind
.AddressOf)
3625
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);
449
internal BoundExpression BindValueAllowArgList(ExpressionSyntax node, BindingDiagnosticBag diagnostics,
BindValueKind
valueKind)
494
BindValueKind
valueKind;
527
valueBeforeConversion = defaultValueBinder.BindValue(defaultValueSyntax.Value, diagnostics,
BindValueKind
.RValue);
545
var initializer = initializerBinder.BindValue(equalsValueSyntax.Value, diagnostics,
BindValueKind
.RValue);
875
node, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(BindToTypeForErrorRecovery(BindValue(node.Expression, BindingDiagnosticBag.Discarded,
BindValueKind
.RefersToLocation))),
1027
ImmutableArray.Create(BindValue(arguments[0].Expression, diagnostics,
BindValueKind
.RValue)) :
1057
BoundExpression boundArgument = BindValue(argumentSyntax.Expression, diagnostics,
BindValueKind
.RValue);
1238
BoundExpression argument = BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
1261
BoundExpression argument = this.BindValue(node.Expression, diagnostics,
BindValueKind
.RefOrOut);
1286
BoundExpression argument = BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
2611
BoundExpression operand = this.BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
2636
BoundExpression boundOperand = BindValue(node.Operand, diagnostics,
BindValueKind
.RValue);
2744
BoundExpression boundOperand = BindValue(operand, diagnostics,
BindValueKind
.RValue);
3147
var
requiredValueKind = origRefKind == RefKind.In ?
BindValueKind
.ReadonlyRef :
BindValueKind
.RefOrOut;
3428
BindValueKind
valueKind =
3430
BindValueKind
.RValue :
3432
BindValueKind
.ReadonlyRef :
3433
BindValueKind
.RefOrOut;
3962
if (!this.CheckValueKind(argument.Syntax, argument,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
3974
if (this.CheckValueKind(argument.Syntax, argument,
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
4127
var size = BindValue(dimension, diagnostics,
BindValueKind
.RValue);
4243
var boundExpression = BindValue(expression, diagnostics,
BindValueKind
.RValue);
4260
var boundExpression = BindValue(expression, diagnostics,
BindValueKind
.RValue);
4589
count = BindValue(countSyntax, diagnostics,
BindValueKind
.RValue);
5304
ExpressionElementSyntax expressionElementSyntax => @this.BindValue(expressionElementSyntax.Expression, diagnostics,
BindValueKind
.RValue),
5684
BindValueKind
rhsValueKind,
5696
Debug.Assert(rhsValueKind ==
BindValueKind
.RValue);
5784
var
rhsKind = isRef ? GetRequiredRHSValueKindForRefAssignment(boundLeft) :
BindValueKind
.RValue;
5832
var boundExpression = BindValue(memberInitializer, diagnostics,
BindValueKind
.RValue);
5847
BindValueKind
valueKind = isRhsNestedInitializer ?
BindValueKind
.RValue : (isRef ?
BindValueKind
.RefAssignable :
BindValueKind
.Assignable);
5860
leftSyntax, implicitReceiver,
BindValueKind
.Assignable, false, diagnostics);
5867
BindValueKind
valueKind,
6109
BindValueKind
valueKind,
6143
return ToBadExpression(boundMember, (valueKind ==
BindValueKind
.RValue) ? LookupResultKind.NotAValue : LookupResultKind.NotAVariable);
6398
var boundElementInitializer = BindInitializerExpressionOrValue(elementInitializer, initializerType,
BindValueKind
.RValue, implicitReceiver.Syntax, diagnostics);
6427
exprBuilder.Add(BindValue(childElementInitializer, diagnostics,
BindValueKind
.RValue));
7716
boundLeft = CheckValue(boundLeft,
BindValueKind
.RValue, diagnostics);
7826
boundLeft = CheckValue(boundLeft,
BindValueKind
.RValue, diagnostics);
8984
hasError = !CheckValueKind(node, receiver,
BindValueKind
.FixedReceiver, checkingReceiver: false, diagnostics: diagnostics);
9397
receiver = CheckValue(receiver,
BindValueKind
.RValue, diagnostics);
9527
if (CheckValueKind(node, expr,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
9539
if (!CheckValueKind(node, expr,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
10565
lengthOrCountAccess = CheckValue(lengthOrCountAccess,
BindValueKind
.RValue, diagnostics);
11400
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),