Method: Puppet::Pops::Types::PObjectType::PAnnotatedMember#assert_can_be_overridden
- Defined in:
- lib/puppet/pops/types/p_object_type.rb
#assert_can_be_overridden(member) ⇒ 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 given member can override this member.
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/puppet/pops/types/p_object_type.rb', line 172 def assert_can_be_overridden(member) unless instance_of?(member.class) raise Puppet::ParseError, _("%{member} attempts to override %{label}") % { member: member.label, label: label } end if @final && !(constant? && member.constant?) raise Puppet::ParseError, _("%{member} attempts to override final %{label}") % { member: member.label, label: label } end unless member.override? # TRANSLATOR 'override => true' is a puppet syntax and should not be translated raise Puppet::ParseError, _("%{member} attempts to override %{label} without having override => true") % { member: member.label, label: label } end unless @type.assignable?(member.type) raise Puppet::ParseError, _("%{member} attempts to override %{label} with a type that does not match") % { member: member.label, label: label } end member end |