So, I am writing some code and using C_OBJECT. Using the following contrived object as an example:
C_OBJECT($object) $object:=New object $object.foo:=New object $object.foo.foo1:="foo1" $object.foo.foo2:="foo2" $object.bar:=New object $object.bar.bar1:="bar1" $object.bar.bar2:="bar2" The code executes as expected. Sometimes I might accidentally forget to initialise a nested object - it happens! So, if I replace the above with: C_OBJECT($object) $object:=New object $object.foo:=New object $object.foo.foo1:="foo1" $object.foo.foo2:="foo2" $object.bar.bar1:="bar1" $object.bar.bar2:="bar2" i.e. I forget "$object.bar:=New object" then the code will silently fail. Can somebody tell me why the interpreter does not raise an error in this situation? This was tested with 17.1 and 17.2 on Mac and the behaviour was the same (i.e. silent code failure) in both versions. In the docs for C_OBJECT: https://doc.4d.com/4Dv17/4D/17.3/C-OBJECT.301-4621707.en.html it states: "Important: The C_OBJECT command does not create an object named variable. If you want to access the properties of the object itself using object notation, you must first initialize it using the New object command, otherwise a syntax error is returned (see example)." That doesn't seem to be the case - no syntax error is raised and the code also compiles?! Can somebody point out what I am missing here? Thanks. Regards, Narinder Chandi, ToolBox Systems Ltd. I am available for new consulting opportunities… http://4d.1045681.n5.nabble.com/ANN-4D-Developer-Available-td5765443.html -- ********************************************************************** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:[email protected] **********************************************************************

