public override object VisitFieldRef(BoundFieldRef x) { return(x.Update( (BoundExpression)Accept(x.Instance), (BoundTypeRef)Accept(x.ContainingType), (BoundVariableName)Accept(x.FieldName))); }
public override void VisitFieldRef(BoundFieldRef x) { Span span = Span.Invalid; if (x.PhpSyntax is DirectVarUse) { span = ((DirectVarUse)x.PhpSyntax).Span; } else if (x.PhpSyntax is StaticFieldUse) { span = ((StaticFieldUse)x.PhpSyntax).NameSpan; } else if (x.PhpSyntax is ClassConstUse) { span = ((ClassConstUse)x.PhpSyntax).NamePosition; } if (span.IsValid) { _result.Add(new SymbolStat(_tctx, span, x, ((IFieldReferenceExpression)x).Member)); } // base.VisitFieldRef(x); }
public override T VisitFieldRef(BoundFieldRef x) { if (x.ContainingType != null) { // class const // static field CheckMissusedPrimitiveType(x.ContainingType); } if (x.Access.IsWrite && ((Microsoft.CodeAnalysis.Operations.IMemberReferenceOperation)x).Member is PropertySymbol prop && prop.SetMethod == null) { // read-only property written _diagnostics.Add(_routine, GetMemberNameSpanForDiagnostic(x.PhpSyntax), ErrorCode.ERR_ReadOnlyPropertyWritten, prop.ContainingType.PhpQualifiedName().ToString(), // TOOD: _statics prop.Name); } // return base.VisitFieldRef(x); }
public override VoidStruct VisitFieldRef(BoundFieldRef x) { if (x.PhpSyntax?.Span.Contains(_position) == true) { Span span = x.PhpSyntax.Span; //if (x.PhpSyntax is StaticFieldUse) //{ // span = ((StaticFieldUse)x.PhpSyntax).NameSpan; //} //else if (x.PhpSyntax is ClassConstUse) //{ // span = ((ClassConstUse)x.PhpSyntax).NamePosition; //} if (span.IsValid) { _result = new SymbolStat(_tctx, span, x, ((IMemberReferenceOperation)x).Member); } } // return(base.VisitFieldRef(x)); }