More types for static analysis

This commit is contained in:
Jens True 2023-08-02 14:14:10 +00:00
parent a2c5252cf2
commit 4ddde1e277
7 changed files with 16 additions and 17 deletions

@ -60,14 +60,14 @@ abstract class FactorGraphLayer
$this->localFactors[] = $factor;
}
abstract public function buildLayer();
abstract public function buildLayer(): void;
public function createPriorSchedule()
public function createPriorSchedule(): ?ScheduleSequence
{
return null;
}
public function createPosteriorSchedule()
public function createPosteriorSchedule(): ?ScheduleSequence
{
return null;
}

@ -10,9 +10,9 @@ class RankSorter
/**
* Performs an in-place sort of the items in according to the ranks in non-decreasing order.
*
* @param array $teams The items to sort according to the order specified by ranks.
* @param array $teamRanks The ranks for each item where 1 is first place.
* @return array
* @param array<mixed> $teams The items to sort according to the order specified by ranks.
* @param array<int> $teamRanks The ranks for each item where 1 is first place.
* @return array<array>
*/
public static function sort(array &$teams, array &$teamRanks): array
{

@ -198,8 +198,7 @@ class GaussianWeightedSumFactor extends GaussianFactor
// The tricky part here is that we have to put the messages and variables in the same
// order as the weights. Thankfully, the weights and messages share the same index numbers,
// so we just need to make sure they're consistent
$allMessagesCount = is_countable($allMessages) ? count($allMessages) : 0;
for ($i = 0; $i < $allMessagesCount; $i++) {
for ($i = 0; $i < count($allMessages); $i++) {
$updatedMessages[] = $allMessages[$indicesToUse[$i]];
$updatedVariables[] = $allVariables[$indicesToUse[$i]];
}

@ -38,7 +38,7 @@ class IteratedTeamDifferencesInnerLayer extends TrueSkillFactorGraphLayer
$this->TeamDifferencesComparisonLayer->buildLayer();
}
public function createPriorSchedule(): ScheduleSequence
public function createPriorSchedule(): ?ScheduleSequence
{
switch (is_countable($this->getInputVariablesGroups()) ? count($this->getInputVariablesGroups()) : 0) {
case 0:
@ -78,7 +78,7 @@ class IteratedTeamDifferencesInnerLayer extends TrueSkillFactorGraphLayer
);
}
private function createTwoTeamInnerPriorLoopSchedule()
private function createTwoTeamInnerPriorLoopSchedule(): ScheduleSequence
{
$teamPerformancesToTeamPerformanceDifferencesLayerLocalFactors = $this->TeamPerformancesToTeamPerformanceDifferencesLayer->getLocalFactors();
$teamDifferencesComparisonLayerLocalFactors = $this->TeamDifferencesComparisonLayer->getLocalFactors();
@ -104,9 +104,9 @@ class IteratedTeamDifferencesInnerLayer extends TrueSkillFactorGraphLayer
);
}
private function createMultipleTeamInnerPriorLoopSchedule()
private function createMultipleTeamInnerPriorLoopSchedule(): ScheduleLoop
{
$totalTeamDifferences = is_countable($this->TeamPerformancesToTeamPerformanceDifferencesLayer->getLocalFactors()) ? count($this->TeamPerformancesToTeamPerformanceDifferencesLayer->getLocalFactors()) : 0;
$totalTeamDifferences = count($this->TeamPerformancesToTeamPerformanceDifferencesLayer->getLocalFactors());
$forwardScheduleList = [];

@ -26,7 +26,7 @@ class PlayerPerformancesToTeamPerformancesLayer extends TrueSkillFactorGraphLaye
}
}
public function createPriorSchedule(): ScheduleSequence
public function createPriorSchedule(): ?ScheduleSequence
{
$localFactors = $this->getLocalFactors();
@ -57,7 +57,7 @@ class PlayerPerformancesToTeamPerformancesLayer extends TrueSkillFactorGraphLaye
);
}
public function createPosteriorSchedule(): ScheduleSequence
public function createPosteriorSchedule(): ?ScheduleSequence
{
$allFactors = [];
$localFactors = $this->getLocalFactors();

@ -42,7 +42,7 @@ class PlayerPriorValuesToSkillsLayer extends TrueSkillFactorGraphLayer
}
}
public function createPriorSchedule(): ScheduleSequence
public function createPriorSchedule(): ?ScheduleSequence
{
$localFactors = $this->getLocalFactors();

@ -45,7 +45,7 @@ class PlayerSkillsToPerformancesLayer extends TrueSkillFactorGraphLayer
return $this->getParentFactorGraph()->getVariableFactory()->createKeyedVariable($key, $key . "'s performance");
}
public function createPriorSchedule(): ScheduleSequence
public function createPriorSchedule(): ?ScheduleSequence
{
$localFactors = $this->getLocalFactors();
@ -58,7 +58,7 @@ class PlayerSkillsToPerformancesLayer extends TrueSkillFactorGraphLayer
);
}
public function createPosteriorSchedule(): ScheduleSequence
public function createPosteriorSchedule(): ?ScheduleSequence
{
$localFactors = $this->getLocalFactors();