99
1010from fluent .syntax import ast as FTL
1111from .errors import FluentCyclicReferenceError , FluentFormatError , FluentReferenceError
12- from .types import FluentType , FluentDateType , FluentNone , FluentNumber , fluent_date , fluent_number
12+ from .types import FluentType , FluentDateType , FluentNone , FluentNumber , FluentInt , FluentFloat , fluent_date , fluent_number
1313from .utils import numeric_to_native , reference_to_id , unknown_reference_error_obj
1414
1515try :
@@ -146,7 +146,7 @@ def __call__(self, env):
146146 return retval
147147
148148 def resolve (self , fluentish , env ):
149- if isinstance (fluentish , FluentType ):
149+ if isinstance (fluentish , ( FluentType , FluentNumber ) ):
150150 return fluentish .format (env .context ._babel_locale )
151151 return fluentish
152152
@@ -166,7 +166,13 @@ def __call__(self, env):
166166 return self .value
167167
168168
169- class NumberLiteral (FTL .NumberLiteral , Literal ):
169+ class NumberLiteral (FTL .NumberLiteral , BaseResolver ):
170+ def __init__ (self , value , ** kwargs ):
171+ super (NumberLiteral , self ).__init__ (value , ** kwargs )
172+ if '.' in self .value :
173+ self .value = FluentFloat (self .value )
174+ else :
175+ self .value = FluentInt (self .value )
170176 def __call__ (self , env ):
171177 return self .value
172178
0 commit comments