private void checkMeasure ( TypeCheckInfo question , SFunctionDefinitionBase node , ILexNameToken iLexNameToken , PType result ) { PTypeAssistantTC assistant = question . assistantFactory . createPTypeAssistant ( ) ; if ( ! assistant . isNumeric ( result ) ) { if ( assistant . isProduct ( result ) ) { AProductType pt = assistant . getProduct ( result ) ; for ( PType t : pt . getTypes ( ) ) { if ( ! assistant . isNumeric ( t ) ) { TypeCheckerErrors . report ( 3272 , "Measure range is not a nat, or a nat tuple" , node . getMeasure ( ) . getLocation ( ) , node . getMeasure ( ) ) ; TypeCheckerErrors . detail ( "Actual" , result ) ; break ; } } } else { TypeCheckerErrors . report ( 3272 , "Measure range is not a nat, or a nat tuple" , node . getMeasure ( ) . getLocation ( ) , node . getMeasure ( ) ) ; TypeCheckerErrors . detail ( "Actual" , result ) ; } } }
A measure must return a nat or nat - tuple .