Files
Upsilon/Upsilon/Binder/VariableSymbols/UserDataVariableSymbol.cs
2019-01-19 17:27:56 +01:00

30 lines
991 B
C#

using Upsilon.BaseTypes;
using Upsilon.BoundTypes;
namespace Upsilon.Binder.VariableSymbols
{
public class UserDataVariableSymbol : VariableSymbol
{
public BoundTypeDefinition BoundTypeDefinition { get; }
public UserDataBoundTypeDefinition Parent { get; }
public UserDataVariableSymbol(string name, TypeContainer typeContainer, bool isLocal) : base(name, typeContainer, isLocal)
{
_typeContainer = typeContainer;
}
public UserDataVariableSymbol(string name, BoundTypeDefinition type, bool isLocal, UserDataBoundTypeDefinition parent = null)
: base(name, type.ScriptType, isLocal)
{
BoundTypeDefinition = type;
Parent = parent;
}
private TypeContainer _typeContainer;
public override TypeContainer TypeContainer
{
get => BoundTypeDefinition?.ScriptType ?? _typeContainer;
set => _typeContainer = value;
}
}
}