protected function assertEqualTypes(IType $expected, IType $actual, $message = '') { $this->assertSame($expected->getIdentifier(), $actual->getIdentifier(), $message); $this->assertTrue($expected->isEqualTo($actual), $message); $this->assertTrue($actual->isEqualTo($expected), $message); $this->assertSame($expected, $actual, $message); }
protected function getAncestorTypes(IType $type) { $ancestorTypes = [$type->getIdentifier() => $type]; if (!$type->hasParentType()) { return $ancestorTypes; } if ($type instanceof ICompositeType) { foreach ($type->getComposedTypes() as $composedType) { $ancestorTypes += $this->getAncestorTypes($composedType); } } else { $parentType = $type->getParentType(); $ancestorTypes[$parentType->getIdentifier()] = $parentType; $ancestorTypes += $this->getAncestorTypes($parentType); } return $ancestorTypes; }
public function isEqualTo(IType $type) { return $this->identifier === $type->getIdentifier(); }