public TES5ObjectProperty CreateObjectProperty(TES5MultipleScriptsScope multipleScriptsScope, ITES5Referencer reference, string propertyName)
        {
            ITES5VariableOrProperty referencesTo = reference.ReferencesTo;

            this.typeInferencer.InferenceVariableByReferenceEdid(referencesTo, multipleScriptsScope);
            TES5Property       remoteProperty = multipleScriptsScope.GetPropertyFromScript(referencesTo.TES5Type.OriginalName, propertyName);
            TES5ObjectProperty objectProperty = new TES5ObjectProperty(reference, remoteProperty);

            return(objectProperty);
        }
        public TES5ObjectProperty CreateObjectProperty(ITES5Referencer reference, string propertyName, TES5MultipleScriptsScope multipleScriptsScope)
        {
            ITES5VariableOrProperty?referencesTo = reference.ReferencesTo;

            if (referencesTo == null)
            {
                throw new NullableException(nameof(referencesTo));
            }
            this.typeInferencer.InferenceVariableByReferenceEdid(referencesTo, multipleScriptsScope);
            TES5Property       remoteProperty = multipleScriptsScope.GetPropertyFromScript(referencesTo.TES5Type.OriginalName, propertyName);
            TES5ObjectProperty objectProperty = new TES5ObjectProperty(reference, remoteProperty);

            return(objectProperty);
        }