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;
732
private BoundExpression CheckValue(BoundExpression expr,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
747
Debug.Assert(expr.Syntax.Kind() != SyntaxKind.Argument || valueKind ==
BindValueKind
.RefOrOut);
752
Debug.Assert(valueKind ==
BindValueKind
.RefOrOut);
756
Debug.Assert(valueKind is (
BindValueKind
.Assignable or
BindValueKind
.RefOrOut or
BindValueKind
.RefAssignable) || diagnostics.DiagnosticBag is null || diagnostics.HasAnyResolvedErrors());
806
if (valueKind ==
BindValueKind
.RValue)
813
if ((valueKind &
BindValueKind
.RefersToLocation) ==
BindValueKind
.RefersToLocation)
821
if ((valueKind &
BindValueKind
.RefersToLocation) ==
BindValueKind
.RefersToLocation)
835
if (expr.Kind == BoundKind.MethodGroup && valueKind !=
BindValueKind
.RValueOrMethodGroup)
884
expr.HasAnyErrors && valueKind ==
BindValueKind
.RValueOrMethodGroup)
889
var resultKind = (valueKind ==
BindValueKind
.RValue || valueKind ==
BindValueKind
.RValueOrMethodGroup) ?
921
internal bool CheckValueKind(SyntaxNode node, BoundExpression expr,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
979
case BoundKind.MethodGroup when valueKind ==
BindValueKind
.AddressOf:
1201
bool checkArrayAccessValueKind(SyntaxNode node,
BindValueKind
valueKind, ImmutableArray<BoundExpression> indices, BindingDiagnosticBag diagnostics)
1223
private static void ReportThisLvalueError(SyntaxNode node,
BindValueKind
valueKind, bool isValueType, bool isPrimaryConstructorParameter, BindingDiagnosticBag diagnostics)
1251
private void CheckAddressOfInAsyncOrIteratorMethod(SyntaxNode node,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1253
if (valueKind ==
BindValueKind
.AddressOf)
1266
private bool CheckLocalValueKind(SyntaxNode node, BoundLocal local,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1356
private bool CheckParameterValueKind(SyntaxNode node, BoundParameter parameter,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1358
Debug.Assert(!RequiresAssignableVariable(
BindValueKind
.AddressOf));
1419
static void reportReadOnlyParameterError(ParameterSymbol parameterSymbol, SyntaxNode node,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1423
Debug.Assert(valueKind !=
BindValueKind
.AddressOf); // If this assert fails, we probably should report ErrorCode.ERR_InvalidAddrOp
1429
if (valueKind ==
BindValueKind
.RefReturn)
1448
if (valueKind ==
BindValueKind
.RefReturn)
1564
private bool CheckFieldValueKind(SyntaxNode node, BoundFieldAccess fieldAccess,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1609
Debug.Assert(valueKind ==
BindValueKind
.RefAssignable);
1626
return CheckIsValidReceiverForVariable(node, fieldAccess.ReceiverOpt,
BindValueKind
.Assignable, diagnostics);
1712
private bool CheckSimpleAssignmentValueKind(SyntaxNode node, BoundAssignmentOperator assignment,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1791
private bool CheckEventValueKind(BoundEventAccess boundEvent,
BindValueKind
valueKind, BindingDiagnosticBag diagnostics)
1802
if (valueKind ==
BindValueKind
.CompoundAssignment)
1828
if (!CheckIsValidReceiverForVariable(eventSyntax, receiver,
BindValueKind
.Assignable, diagnostics))
1835
if (eventSymbol.IsWindowsRuntimeEvent && valueKind !=
BindValueKind
.Assignable)
1839
if (valueKind ==
BindValueKind
.RefOrOut)
1860
private bool CheckIsValidReceiverForVariable(SyntaxNode node, BoundExpression receiver,
BindValueKind
kind, BindingDiagnosticBag diagnostics)
1890
BindValueKind
valueKind,
1931
private bool CheckPropertyValueKind(SyntaxNode node, BoundExpression expr,
BindValueKind
valueKind, bool checkingReceiver, BindingDiagnosticBag diagnostics)
1958
else if (valueKind ==
BindValueKind
.RefOrOut)
2029
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)
561
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)
241
internal BoundExpression BindValue(ExpressionSyntax node, BindingDiagnosticBag diagnostics,
BindValueKind
valueKind)
249
return BindToNaturalType(BindValue(node, diagnostics,
BindValueKind
.RValue), diagnostics, reportNoTargetType);
266
return CheckValue(valueOrType,
BindValueKind
.RValue, diagnostics);
435
internal BoundExpression BindValueAllowArgList(ExpressionSyntax node, BindingDiagnosticBag diagnostics,
BindValueKind
valueKind)
480
BindValueKind
valueKind;
513
valueBeforeConversion = defaultValueBinder.BindValue(defaultValueSyntax.Value, diagnostics,
BindValueKind
.RValue);
531
var initializer = initializerBinder.BindValue(equalsValueSyntax.Value, diagnostics,
BindValueKind
.RValue);
861
node, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(BindToTypeForErrorRecovery(BindValue(node.Expression, BindingDiagnosticBag.Discarded,
BindValueKind
.RefersToLocation))),
1013
ImmutableArray.Create(BindValue(arguments[0].Expression, diagnostics,
BindValueKind
.RValue)) :
1043
BoundExpression boundArgument = BindValue(argumentSyntax.Expression, diagnostics,
BindValueKind
.RValue);
1224
BoundExpression argument = BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
1247
BoundExpression argument = this.BindValue(node.Expression, diagnostics,
BindValueKind
.RefOrOut);
1272
BoundExpression argument = BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
2586
BoundExpression operand = this.BindValue(node.Expression, diagnostics,
BindValueKind
.RValue);
2611
BoundExpression boundOperand = BindValue(node.Operand, diagnostics,
BindValueKind
.RValue);
2719
BoundExpression boundOperand = BindValue(operand, diagnostics,
BindValueKind
.RValue);
3122
var
requiredValueKind = origRefKind == RefKind.In ?
BindValueKind
.ReadonlyRef :
BindValueKind
.RefOrOut;
3403
BindValueKind
valueKind =
3405
BindValueKind
.RValue :
3407
BindValueKind
.ReadonlyRef :
3408
BindValueKind
.RefOrOut;
3937
if (!this.CheckValueKind(argument.Syntax, argument,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
3949
if (this.CheckValueKind(argument.Syntax, argument,
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
4102
var size = BindValue(dimension, diagnostics,
BindValueKind
.RValue);
4218
var boundExpression = BindValue(expression, diagnostics,
BindValueKind
.RValue);
4235
var boundExpression = BindValue(expression, diagnostics,
BindValueKind
.RValue);
4564
count = BindValue(countSyntax, diagnostics,
BindValueKind
.RValue);
5277
ExpressionElementSyntax expressionElementSyntax => @this.BindValue(expressionElementSyntax.Expression, diagnostics,
BindValueKind
.RValue),
5651
BindValueKind
rhsValueKind,
5663
Debug.Assert(rhsValueKind ==
BindValueKind
.RValue);
5751
var
rhsKind = isRef ? GetRequiredRHSValueKindForRefAssignment(boundLeft) :
BindValueKind
.RValue;
5799
var boundExpression = BindValue(memberInitializer, diagnostics,
BindValueKind
.RValue);
5814
BindValueKind
valueKind = isRhsNestedInitializer ?
BindValueKind
.RValue : (isRef ?
BindValueKind
.RefAssignable :
BindValueKind
.Assignable);
5827
leftSyntax, implicitReceiver,
BindValueKind
.Assignable, false, diagnostics);
5834
BindValueKind
valueKind,
6076
BindValueKind
valueKind,
6110
return ToBadExpression(boundMember, (valueKind ==
BindValueKind
.RValue) ? LookupResultKind.NotAValue : LookupResultKind.NotAVariable);
6365
var boundElementInitializer = BindInitializerExpressionOrValue(elementInitializer, initializerType,
BindValueKind
.RValue, implicitReceiver.Syntax, diagnostics);
6394
exprBuilder.Add(BindValue(childElementInitializer, diagnostics,
BindValueKind
.RValue));
7682
boundLeft = CheckValue(boundLeft,
BindValueKind
.RValue, diagnostics);
7792
boundLeft = CheckValue(boundLeft,
BindValueKind
.RValue, diagnostics);
8915
hasError = !CheckValueKind(node, receiver,
BindValueKind
.FixedReceiver, checkingReceiver: false, diagnostics: diagnostics);
9328
receiver = CheckValue(receiver,
BindValueKind
.RValue, diagnostics);
9458
if (CheckValueKind(node, expr,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
9470
if (!CheckValueKind(node, expr,
BindValueKind
.RefersToLocation, checkingReceiver: false, BindingDiagnosticBag.Discarded))
10496
lengthOrCountAccess = CheckValue(lengthOrCountAccess,
BindValueKind
.RValue, diagnostics);
11329
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)
125
boundExpression = CheckValue(boundExpression,
BindValueKind
.RValueOrMethodGroup, diagnostics);
245
boundExpression = CheckValue(boundExpression,
BindValueKind
.RValueOrMethodGroup, diagnostics);
736
extensionMemberAccess = CheckValue(extensionMemberAccess,
BindValueKind
.RValue, diagnostics);
1275
receiverArgument = CheckValue(receiverArgument,
BindValueKind
.RefOrOut, diagnostics);
1378
receiver = CheckValue(receiver,
BindValueKind
.RefOrOut, diagnostics);
1405
var
valueKind = method.IsEffectivelyReadOnly
1406
?
BindValueKind
.RefersToLocation
1407
:
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable;
1923
return CheckValue(typeOrValue.Data.ValueExpression,
BindValueKind
.RValue, diagnostics);
2350
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))
893
BindValueKind
bindValueKind = GetBinaryAssignmentKind(syntaxNode.Kind());
895
BoundExpression right = BindValue(syntaxNode.Right, diagnostics,
BindValueKind
.RValue);
3121
BoundExpression operand = BindToNaturalType(BindValue(operandSyntax, diagnostics,
BindValueKind
.IncrementDecrement), diagnostics);
3312
!CheckValueKind(node, operand,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
3939
BoundExpression operand = BindToNaturalType(BindValue(node.Operand, diagnostics,
BindValueKind
.AddressOf), diagnostics);
4026
bool receiverIsLValue = CheckValueKind(receiver.Syntax, receiver,
BindValueKind
.AddressOf, checkingReceiver: false, diagnostics: BindingDiagnosticBag.Discarded);
4451
private static
BindValueKind
GetBinaryAssignmentKind(SyntaxKind kind)
4456
return
BindValueKind
.Assignable;
4469
return
BindValueKind
.CompoundAssignment;
4471
return
BindValueKind
.RValue;
4475
private static
BindValueKind
GetUnaryAssignmentKind(SyntaxKind kind)
4483
return
BindValueKind
.IncrementDecrement;
4488
return
BindValueKind
.RValue;
5409
var leftOperand = BindValue(node.Left, diagnostics,
BindValueKind
.RValue);
5411
var rightOperand = BindValue(node.Right, diagnostics,
BindValueKind
.RValue);
5598
BoundExpression leftOperand = BindValue(node.Left, diagnostics,
BindValueKind
.CompoundAssignment);
5600
BoundExpression rightOperand = BindValue(node.Right, diagnostics,
BindValueKind
.RValue);
5727
BoundExpression trueExpr = BindValue(whenTrue, diagnostics,
BindValueKind
.RValue);
5728
BoundExpression falseExpr = BindValue(whenFalse, diagnostics,
BindValueKind
.RValue);
5768
BoundExpression trueExpr = BindValue(whenTrue, diagnostics,
BindValueKind
.RValue |
BindValueKind
.RefersToLocation);
5769
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)
837
BoundExpression boundExpression = lambdaBodyBinder.BindValue(expression, diagnostics,
BindValueKind
.RValue);
847
BoundExpression boundExpression = lambdaBodyBinder.BindValue(expression, diagnostics,
BindValueKind
.RValue);
985
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;
626
BoundExpression collectionExpr = this.GetBinder(collectionSyntax).BindValue(collectionSyntax, diagnostics,
BindValueKind
.RValue);
836
if (CheckValueKind(collectionExpr.Syntax, collectionExpr,
BindValueKind
.RefersToLocation |
BindValueKind
.Assignable, checkingReceiver: false, BindingDiagnosticBag.Discarded))
844
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),