Module: Tapioca::TypeVariableHelper
- Extended by:
- T::Sig, SorbetHelper
- Defined in:
- lib/tapioca/helpers/type_variable_helper.rb
Constant Summary
Constants included from SorbetHelper
SorbetHelper::FEATURE_REQUIREMENTS, SorbetHelper::SORBET_BIN, SorbetHelper::SORBET_EXE_PATH_ENV_VAR, SorbetHelper::SORBET_GEM_SPEC
Class Method Summary collapse
Methods included from SorbetHelper
sorbet, sorbet_path, sorbet_supports?
Class Method Details
.serialize_type_variable(type, variance, fixed, upper, lower) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/tapioca/helpers/type_variable_helper.rb', line 18 def self.serialize_type_variable(type, variance, fixed, upper, lower) variance = nil if variance == :invariant bounds = [] bounds << "fixed: #{fixed}" if fixed bounds << "lower: #{lower}" if lower bounds << "upper: #{upper}" if upper parameters = [] block = [] parameters << ":#{variance}" if variance if sorbet_supports?(:type_variable_block_syntax) block = bounds else parameters.concat(bounds) end serialized = type.dup serialized << "(#{parameters.join(", ")})" unless parameters.empty? serialized << " { { #{block.join(", ")} } }" unless block.empty? serialized end |