public void IDynamicIndexerAccessExpression_PublicExtensionMethodTests() { // Test null argument IDynamicIndexerAccessOperation nullDynamicExpression = null; Assert.Throws <ArgumentNullException>(() => nullDynamicExpression.GetArgumentName(0)); Assert.Throws <ArgumentNullException>(() => nullDynamicExpression.GetArgumentRefKind(0)); Func < ImmutableArray <IOperation>, ImmutableArray <string>, ImmutableArray <RefKind>, HasDynamicArgumentsExpression > createDynamicExpression = (arguments, argumentNames, argumentRefKinds) => new DynamicIndexerAccessOperation( operation: null, arguments, argumentNames, argumentRefKinds, semanticModel: null, syntax: null, type: null, isImplicit: false ); TestCore(createDynamicExpression); }
/// <summary> /// Get an optional argument <see cref="RefKind"/> for an argument at the given <paramref name="index"/> to the given <paramref name="dynamicOperation"/>. /// Returns a non-null argument <see cref="RefKind"/> for C#. /// Always returns null for VB as <see cref="RefKind"/> cannot be specified for an argument in VB. /// </summary> /// <param name="dynamicOperation">Dynamic or late bound operation.</param> /// <param name="index">Argument index.</param> public static RefKind?GetArgumentRefKind(this IDynamicIndexerAccessOperation dynamicOperation, int index) { if (dynamicOperation == null) { throw new ArgumentNullException(nameof(dynamicOperation)); } return(GetArgumentRefKind((HasDynamicArgumentsExpression)dynamicOperation, index)); }
public override IOperation VisitDynamicIndexerAccess( IDynamicIndexerAccessOperation operation, object?argument ) { return(new DynamicIndexerAccessOperation( Visit(operation.Operation), VisitArray(operation.Arguments), ((HasDynamicArgumentsExpression)operation).ArgumentNames, ((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, operation.IsImplicit )); }
public override NullAbstractValue VisitDynamicIndexerAccess(IDynamicIndexerAccessOperation operation, object argument) { var _ = base.VisitDynamicIndexerAccess(operation, argument); return(GetValueBasedOnInstanceOrReferenceValue(operation.Operation)); }
public override void VisitDynamicIndexerAccess(IDynamicIndexerAccessOperation operation) { Assert.Equal(OperationKind.DynamicIndexerAccess, operation.Kind); AssertEx.Equal(new[] { operation.Operation }.Concat(operation.Arguments), operation.Children); }
public virtual void VisitDynamicIndexerAccess(IDynamicIndexerAccessOperation operation) { DefaultVisit(operation); }
public override void VisitDynamicIndexerAccess([NotNull] IDynamicIndexerAccessOperation operation) { base.VisitDynamicIndexerAccess(operation); }
public override void VisitDynamicIndexerAccess(IDynamicIndexerAccessOperation operation) { VisitDynamicArguments((HasDynamicArgumentsExpression)operation); base.VisitDynamicIndexerAccess(operation); }
public override bool VisitDynamicIndexerAccess([NotNull] IDynamicIndexerAccessOperation operation1, [CanBeNull] IOperation argument) { return(argument is IDynamicIndexerAccessOperation operation2 && AreBaseOperationsEqual(operation1, operation2)); }