MSIR.0919 Object's class ((classname)) not (attribute): Difference between revisions

From m204wiki
Jump to navigation Jump to search
mNo edit summary
(Automatically generated page update)
Line 5: Line 5:
Of course, if the narrowing assignment or class test is intentional and difficult to avoid, then it makes sense to add the Allow Narrow to the source class's Public block.
Of course, if the narrowing assignment or class test is intentional and difficult to avoid, then it makes sense to add the Allow Narrow to the source class's Public block.


[[Category:Sirius Mods messages]]
[[Category:Sirius Mods messages]] [[Category:MSIR.0800 - MSIR.0999]]

Revision as of 16:08, 13 August 2015

A statement requested an operation that is not enabled for the class on which it was performed. For example, if the indicated attribute is Allow Narrow, it indicates that either a narrowing assignment or class test was performed where the source variables class does not have Allow Narrow in its Public block. Narrowing assignments and class tests require the Allow Narrow for good reasons — these operations facilitate writing brittle, difficult to maintain, code.

While the obvious solution might seem to be to put an Allow Narrow in the source class's Public block, it is best to first consider whether there might be a way of doing what the program is trying to do without requiring this. It might even be worth asking whether what the program is trying to do is correct. A common cause of this message is accidentally declaring a variable with the base class, when it really should be in the extension class.

Of course, if the narrowing assignment or class test is intentional and difficult to avoid, then it makes sense to add the Allow Narrow to the source class's Public block.