removeExpressionType() публичный Метод

Removes the type of the expression.
public removeExpressionType ( Expression $expression ) : void
$expression Pinq\Expressions\Expression
Результат void
Пример #1
0
 public function visitAssignment(O\AssignmentExpression $expression)
 {
     $assignTo = $expression->getAssignTo();
     $assignmentValue = $expression->getAssignmentValue();
     $this->walk($assignmentValue);
     $operator = $expression->getOperator();
     if ($operator === O\Operators\Assignment::EQUAL) {
         $this->analysisContext->setExpressionType($assignTo, $this->analysis[$assignmentValue]);
         $this->analysis[$expression] = $this->analysis[$assignmentValue];
     } elseif ($operator === O\Operators\Assignment::EQUAL_REFERENCE) {
         $this->analysisContext->removeExpressionType($assignTo);
         $this->analysisContext->setExpressionType($assignTo, $this->analysis[$assignmentValue]);
         $this->analysisContext->createReference($assignTo, $assignmentValue);
         $this->analysis[$expression] = $this->analysis[$assignmentValue];
     } else {
         $this->walk($assignTo);
         $binaryOperation = $this->typeSystem->getBinaryOperation($this->analysis[$assignTo], O\Operators\Assignment::toBinaryOperator($operator), $this->analysis[$assignmentValue]);
         $this->analysis[$expression] = $binaryOperation->getReturnType();
     }
 }