Skip to content

Commit

Permalink
#308 - Fix Type Analyzer
Browse files Browse the repository at this point in the history
  • Loading branch information
sys27 committed May 15, 2022
1 parent 8064323 commit a38f39b
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions xFunc.Maths/Analyzers/TypeAnalyzers/TypeAnalyzer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ private ResultTypes CheckStatistical([NotNull] DifferentParametersExpression? ex
if (exp.ParametersCount == 1)
{
var result = exp[0].Analyze(this);
if (result == ResultTypes.Number || result == ResultTypes.Vector)
if (result is ResultTypes.Number or ResultTypes.Vector)
return ResultTypes.Number;

throw new DifferentParameterTypeMismatchException(ResultTypes.Number | ResultTypes.Vector, result, 0);
Expand Down Expand Up @@ -1138,8 +1138,8 @@ public virtual ResultTypes Analyze(Round exp)
if (exp is null)
ArgNull(ExceptionArgument.exp);

var number = exp.Arguments[0].Analyze(this);
var digits = exp.Arguments[1]?.Analyze(this) ?? ResultTypes.None;
var number = exp.Argument.Analyze(this);
var digits = exp.Digits?.Analyze(this) ?? ResultTypes.None;

if (digits is ResultTypes.None or ResultTypes.Undefined or ResultTypes.Number)
{
Expand Down Expand Up @@ -1381,6 +1381,9 @@ ResultTypes.Undefined or
ResultTypes.TemperatureNumber => ResultTypes.TemperatureNumber,
ResultTypes.MassNumber => ResultTypes.MassNumber,
ResultTypes.LengthNumber => ResultTypes.LengthNumber,
ResultTypes.TimeNumber => ResultTypes.TimeNumber,
ResultTypes.AreaNumber => ResultTypes.AreaNumber,
ResultTypes.VolumeNumber => ResultTypes.VolumeNumber,

_ => NumberOrUnits.ThrowFor(valueResult),
};
Expand Down Expand Up @@ -1432,7 +1435,7 @@ public virtual ResultTypes Analyze(Determinant exp)
ArgNull(ExceptionArgument.exp);

var result = exp.Argument.Analyze(this);
if (result == ResultTypes.Undefined || result == ResultTypes.Matrix)
if (result is ResultTypes.Undefined or ResultTypes.Matrix)
return ResultTypes.Number;

throw new ParameterTypeMismatchException(ResultTypes.Matrix, result);
Expand All @@ -1445,7 +1448,7 @@ public virtual ResultTypes Analyze(Inverse exp)
ArgNull(ExceptionArgument.exp);

var result = exp.Argument.Analyze(this);
if (result == ResultTypes.Undefined || result == ResultTypes.Matrix)
if (result is ResultTypes.Undefined or ResultTypes.Matrix)
return ResultTypes.Matrix;

throw new ParameterTypeMismatchException(ResultTypes.Matrix, result);
Expand Down Expand Up @@ -1538,7 +1541,7 @@ public virtual ResultTypes Analyze(Im exp)
ArgNull(ExceptionArgument.exp);

var result = exp.Argument.Analyze(this);
if (result == ResultTypes.Undefined || result == ResultTypes.ComplexNumber)
if (result is ResultTypes.Undefined or ResultTypes.ComplexNumber)
return ResultTypes.Number;

throw new ParameterTypeMismatchException(ResultTypes.ComplexNumber, result);
Expand All @@ -1551,7 +1554,7 @@ public virtual ResultTypes Analyze(Phase exp)
ArgNull(ExceptionArgument.exp);

var result = exp.Argument.Analyze(this);
if (result == ResultTypes.Undefined || result == ResultTypes.ComplexNumber)
if (result is ResultTypes.Undefined or ResultTypes.ComplexNumber)
return ResultTypes.Number;

throw new ParameterTypeMismatchException(ResultTypes.ComplexNumber, result);
Expand All @@ -1564,7 +1567,7 @@ public virtual ResultTypes Analyze(Re exp)
ArgNull(ExceptionArgument.exp);

var result = exp.Argument.Analyze(this);
if (result == ResultTypes.Undefined || result == ResultTypes.ComplexNumber)
if (result is ResultTypes.Undefined or ResultTypes.ComplexNumber)
return ResultTypes.Number;

throw new ParameterTypeMismatchException(ResultTypes.ComplexNumber, result);
Expand Down

0 comments on commit a38f39b

Please sign in to comment.