1- import . Units: UNIT_SYMBOLS, UNIT_MAPPING, UNIT_VALUES
1+ import . Units: UNIT_SYMBOLS, UNIT_MAPPING, UNIT_VALUES, DEFAULT_UNIT_BASE_TYPE
22import . Constants: CONSTANT_SYMBOLS, CONSTANT_MAPPING, CONSTANT_VALUES
3+ import .. DEFAULT_DIM_BASE_TYPE
34
45const SYMBOL_CONFLICTS = intersect (UNIT_SYMBOLS, CONSTANT_SYMBOLS)
56
@@ -93,6 +94,8 @@ function Base.convert(::Type{Quantity{T,D}}, q::Quantity{<:Any,<:SymbolicDimensi
9394 return result
9495end
9596
97+ const DEFAULT_SYMBOLIC_UNIT_TYPE = Quantity{DEFAULT_UNIT_BASE_TYPE,SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}}
98+
9699"""
97100 uexpand(q::Quantity{<:Any,<:SymbolicDimensions})
98101
@@ -269,20 +272,22 @@ module SymbolicUnitsParse
269272 import .. CONSTANT_SYMBOLS
270273 import .. SYMBOL_CONFLICTS
271274 import .. SymbolicDimensions
275+ import .. DEFAULT_SYMBOLIC_UNIT_TYPE
276+ import .. DEFAULT_UNIT_BASE_TYPE
277+ import .. DEFAULT_DIM_BASE_TYPE
272278
273279 import ... Quantity
274- import ... DEFAULT_VALUE_TYPE
275- import ... DEFAULT_DIM_BASE_TYPE
276280
277281 # Lazily create unit symbols (since there are so many)
278282 module Constants
279283 import .. CONSTANT_SYMBOLS
280284 import .. SYMBOL_CONFLICTS
281285 import .. SymbolicDimensions
286+ import .. DEFAULT_SYMBOLIC_UNIT_TYPE
287+ import .. DEFAULT_UNIT_BASE_TYPE
288+ import .. DEFAULT_DIM_BASE_TYPE
282289
283290 import .. Quantity
284- import .. DEFAULT_VALUE_TYPE
285- import .. DEFAULT_DIM_BASE_TYPE
286291
287292 import ... Constants as EagerConstants
288293
@@ -292,11 +297,11 @@ module SymbolicUnitsParse
292297 CONSTANT_SYMBOLS_EXIST[] || lock (CONSTANT_SYMBOLS_LOCK) do
293298 CONSTANT_SYMBOLS_EXIST[] && return nothing
294299 for unit in setdiff (CONSTANT_SYMBOLS, SYMBOL_CONFLICTS)
295- @eval const $ unit = Quantity (DEFAULT_VALUE_TYPE (1.0 ), SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}; $ (unit)= 1 )
300+ @eval const $ unit = Quantity (DEFAULT_UNIT_BASE_TYPE (1.0 ), SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}; $ (unit)= 1 )
296301 end
297302 # Evaluate conflicting symbols to non-symbolic form:
298303 for unit in SYMBOL_CONFLICTS
299- @eval const $ unit = convert (Quantity{DEFAULT_VALUE_TYPE,SymbolicDimensions} , EagerConstants.$ unit)
304+ @eval const $ unit = convert (DEFAULT_SYMBOLIC_UNIT_TYPE , EagerConstants.$ unit)
300305 end
301306 CONSTANT_SYMBOLS_EXIST[] = true
302307 end
@@ -311,7 +316,7 @@ module SymbolicUnitsParse
311316 UNIT_SYMBOLS_EXIST[] || lock (UNIT_SYMBOLS_LOCK) do
312317 UNIT_SYMBOLS_EXIST[] && return nothing
313318 for unit in UNIT_SYMBOLS
314- @eval const $ unit = Quantity (DEFAULT_VALUE_TYPE (1.0 ), SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}; $ (unit)= 1 )
319+ @eval const $ unit = Quantity (DEFAULT_UNIT_BASE_TYPE (1.0 ), SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}; $ (unit)= 1 )
315320 end
316321 UNIT_SYMBOLS_EXIST[] = true
317322 end
@@ -338,11 +343,11 @@ module SymbolicUnitsParse
338343 _generate_unit_symbols ()
339344 Constants. _generate_unit_symbols ()
340345 raw_result = eval (Meta. parse (raw_string))
341- return copy (as_quantity (raw_result)):: Quantity{DEFAULT_VALUE_TYPE,SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}}
346+ return copy (as_quantity (raw_result)):: DEFAULT_SYMBOLIC_UNIT_TYPE
342347 end
343348
344- as_quantity (q:: Quantity ) = q
345- as_quantity (x:: Number ) = Quantity ( convert (DEFAULT_VALUE_TYPE, x), SymbolicDimensions{DEFAULT_DIM_BASE_TYPE} )
349+ as_quantity (q:: Quantity ) = convert (DEFAULT_SYMBOLIC_UNIT_TYPE, q)
350+ as_quantity (x:: Number ) = DEFAULT_SYMBOLIC_UNIT_TYPE (x )
346351 as_quantity (x) = error (" Unexpected type evaluated: $(typeof (x)) " )
347352end
348353
0 commit comments