Method: Puppet::Pops::Types::TypeSetReference#resolve

Defined in:
lib/puppet/pops/types/type_set_reference.rb

#resolve(loader) ⇒ Object

Raises:

  • (ArgumentError)


39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/puppet/pops/types/type_set_reference.rb', line 39

def resolve(loader)
  typed_name = Loader::TypedName.new(:type, @name, @name_authority)
  loaded_entry = loader.load_typed(typed_name)
  type_set = loaded_entry.nil? ? nil : loaded_entry.value

  raise ArgumentError, "#{self} cannot be resolved" if type_set.nil?
  raise ArgumentError, "#{self} resolves to a #{type_set.name}" unless type_set.is_a?(PTypeSetType)

  @type_set = type_set.resolve(loader)
  unless @version_range.include?(@type_set.version)
    raise ArgumentError, "#{self} resolves to an incompatible version. Expected #{@version_range}, got #{type_set.version}"
  end
  nil
end