/**
* Adds the type data module to the type system.
*
* @param ITypeDataModule $module
*
* @return void
*/
public function registerTypeDataModule(ITypeDataModule $module)
{
$this->typeDataModules[] = $module;
foreach ($module->functions() as $name => $returnType) {
$normalizedFunctionName = $this->normalizeFunctionName($name);
$this->functionTypeMap[$normalizedFunctionName] = $returnType;
unset($this->functions[$normalizedFunctionName]);
}
foreach ($module->types() as $name => $typeData) {
$normalizedClassName = $this->normalizeClassName($name);
$this->classTypeMap[$normalizedClassName] = $typeData;
unset($this->objectTypes[$normalizedClassName]);
}
}