New visualizer
This commit is contained in:
@@ -810,14 +810,17 @@ begin
|
||||
condition := Accept(Node.Condition).AsIntf<IAstNode>;
|
||||
FNextIsTail := isContextTail;
|
||||
thenBranch := Accept(Node.ThenBranch).AsIntf<IAstNode>;
|
||||
elseBranch := Accept(Node.ElseBranch).AsIntf<IAstNode>;
|
||||
if Assigned(Node.ElseBranch) then
|
||||
elseBranch := Accept(Node.ElseBranch).AsIntf<IAstNode>;
|
||||
|
||||
conditionType := (condition as TAstNode).StaticType;
|
||||
if not TTypeRules.CanAssign(TTypes.Ordinal, conditionType) then
|
||||
raise ETypeException.CreateFmt('If condition must be Ordinal, but got %s', [conditionType.ToString]);
|
||||
|
||||
thenType := (thenBranch as TAstNode).StaticType;
|
||||
elseType := (elseBranch as TAstNode).StaticType;
|
||||
elseType :=
|
||||
if elseBranch <> nil then (elseBranch as TAstNode).StaticType
|
||||
else TTypes.Void;
|
||||
resultType := TTypeRules.Promote(thenType, elseType);
|
||||
|
||||
if (condition <> Node.Condition) or (thenBranch <> Node.ThenBranch) or (elseBranch <> Node.ElseBranch) then
|
||||
|
||||
Reference in New Issue
Block a user