public Var(VarInfo varInfo) { Name = varInfo.Name; DefinedAt = varInfo.DefinedAt; _parseInfo = varInfo.ParseInfo; AccessLevel = varInfo.AccessLevel; WholeContext = varInfo.WholeContext; CodeType = varInfo.Type; InExtendedCollection = varInfo.InExtendedCollection; Ref = varInfo.Ref; ID = varInfo.ID; Static = varInfo.Static; Recursive = varInfo.Recursive; BridgeInvocable = varInfo.BridgeInvocable; RequiresCapture = varInfo.RequiresCapture; IsMacro = varInfo.IsMacro; Virtual = varInfo.Virtual; Override = varInfo.Override; _tokenType = varInfo.TokenType; _tokenModifiers = varInfo.TokenModifiers.ToArray(); _handleRestrictedCalls = varInfo.HandleRestrictedCalls; _inferType = varInfo.InferType; _initialValueContext = varInfo.InitialValueContext; _initialValueResolve = varInfo.InitialValueResolve; _operationalScope = varInfo.Scope; _variableTypeHandler = varInfo.VariableTypeHandler; if (!_inferType) { AddScriptData(); } if (ID != -1) { if (VariableType == VariableType.Global) { _parseInfo.TranslateInfo.VarCollection.Reserve(ID, true, _parseInfo.Script.Diagnostics, DefinedAt.range); } else if (VariableType == VariableType.Player) { _parseInfo.TranslateInfo.VarCollection.Reserve(ID, false, _parseInfo.Script.Diagnostics, DefinedAt.range); } } // Get the initial value. if (_initialValueResolve == InitialValueResolve.Instant) { GetInitialValue(); } else { _parseInfo.TranslateInfo.StagedInitiation.On(InitiationStage.Content, GetInitialValue); } if (DefinedAt != null) { _parseInfo.Script.AddCodeLensRange(new ReferenceCodeLensRange(this, _parseInfo, varInfo.CodeLensType, DefinedAt.range)); _parseInfo.Script.Elements.AddDeclarationCall(this, new DeclarationCall(DefinedAt.range, true)); } }
public VarInfo(string name, Location definedAt, ParseInfo parseInfo) { Name = name; DefinedAt = definedAt; ParseInfo = parseInfo; VariableTypeHandler = new VariableTypeHandler(this); }