ActiveNewExpression(CachedInstancesKey <NewExpression> instancesKey, ActiveExpressionOptions?options, bool deferEvaluation) : base(instancesKey.Expression, options, deferEvaluation) => this.instancesKey = instancesKey;
protected ActiveTypeBinaryExpression(CachedInstancesKey <TypeBinaryExpression> instancesKey, ActiveExpressionOptions?options, bool deferEvaluation) : base(instancesKey.Expression, options, deferEvaluation) => this.instancesKey = instancesKey;
public ActiveCoalesceExpression(CachedInstancesKey <BinaryExpression> instancesKey, ActiveExpressionOptions?options, bool deferEvaluation) : base(instancesKey, options, deferEvaluation, false, false) { }
protected ActiveBinaryExpression(CachedInstancesKey <BinaryExpression> instancesKey, ActiveExpressionOptions?options, bool deferEvaluation, bool getDelegate = true, bool evaluateIfNotDeferred = true) : base(instancesKey.Expression, options, deferEvaluation) { this.instancesKey = instancesKey; this.getDelegate = getDelegate; this.evaluateIfNotDeferred = evaluateIfNotDeferred; }
ActiveInvocationExpression(CachedInstancesKey <InvocationExpression> instancesKey, ActiveExpressionOptions?options, bool deferEvaluation) : base(instancesKey.Expression.Type, ExpressionType.Invoke, options, deferEvaluation) => this.instancesKey = instancesKey;
public bool Equals(CachedInstancesKey <TExpression> x, CachedInstancesKey <TExpression> y) => ExpressionEqualityComparer.Default.Equals(x.Expression, y.Expression) && ((x.Options is null && y.Options is null) || (x.Options is not null && y.Options is not null && x.Options.Equals(y.Options)));