Method: Puppet::Pops::Types::PObjectType::PAnnotatedMember#assert_override

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

#assert_override(parent_members) ⇒ PAnnotatedMember

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Checks if the this member overrides an inherited member, and if so, that this member is declared with override = true and that the inherited member accepts to be overridden by this member.

Parameters:

  • parent_members (Hash{String=>PAnnotatedMember})

    the hash of inherited members

Returns:



153
154
155
156
157
158
159
160
161
162
163
164
# File 'lib/puppet/pops/types/p_object_type.rb', line 153

def assert_override(parent_members)
  parent_member = parent_members[@name]
  if parent_member.nil?
    if @override
      raise Puppet::ParseError, _("expected %{label} to override an inherited %{feature_type}, but no such %{feature_type} was found") %
                                { label: label, feature_type: feature_type }
    end
    self
  else
    parent_member.assert_can_be_overridden(self)
  end
end