| File: Microsoft\CSharp\RuntimeBinder\Semantics\Tree\EXPR.cs | Web Access |
| Project: src\runtime\src\libraries\Microsoft.CSharp\src\Microsoft.CSharp.csproj (Microsoft.CSharp) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; using System.Diagnostics.CodeAnalysis; namespace Microsoft.CSharp.RuntimeBinder.Semantics { internal abstract class Expr { private CType _type; protected Expr(ExpressionKind kind) { Kind = kind; } internal object RuntimeObject { get; set; } internal CType RuntimeObjectActualType { get; set; } public ExpressionKind Kind { get; } public EXPRFLAG Flags { get; set; } public bool IsOptionalArgument { get; set; } public string ErrorString { get; set; } public CType Type { get { Debug.Assert(!(this is ExprList)); Debug.Assert(_type != null); return _type; } protected set { _type = value; } } [ExcludeFromCodeCoverage(Justification = "Should only be called through override")] public virtual object Object { [RequiresUnreferencedCode(Binder.TrimmerWarning)] get { Debug.Fail("Invalid Expr in GetObject"); throw Error.InternalCompilerError(); } } } }