public function createObjectProperty(TES5MultipleScriptsScope $multipleScriptsScope, TES5Referencer $reference, $propertyName) { $this->typeInferencer->inferenceVariableByReferenceEdid($reference->getReferencesTo(), $multipleScriptsScope); $remoteProperty = $multipleScriptsScope->getPropertyFromScript($reference->getReferencesTo()->getPropertyType()->value(), $propertyName); $objectProperty = new TES5ObjectProperty($reference, $remoteProperty); return $objectProperty; }
public function inferenceObjectByAssignation(TES5Referencer $reference, TES5Value $value, TES5MultipleScriptsScope $multipleScriptsScope) { if ($reference->getReferencesTo() !== null && !$reference->getType()->isPrimitive()) { $this->inferenceType($reference->getReferencesTo(), $value->getType()->getNativeType(), $multipleScriptsScope); } }
public function output() { $referenceOutput = $this->objectReference->output(); $referenceOutput = $referenceOutput[0]; return [$referenceOutput . '.' . $this->property->getPropertyName()]; }
public function getType() { return TES5InheritanceGraphAnalyzer::findReturnTypeForObjectCall($this->called->getType(), $this->functionName); }