Still, I think it would be nice to be able to save a method even when it does not compile. On Tue, Jun 28, 2016 at 2:52 PM, Peter Uhnák <i.uhnak@gmail.com> wrote:
Yeah I guess that's not such a bad idea, to have a TemplateClass that would contain just the template methods, so I don't need to worry about conflicting instance variables.
Peter
On Tue, Jun 28, 2016 at 2:08 PM, Ben Coman <btc@openinworld.com> wrote:
On Tue, Jun 28, 2016 at 5:55 PM, Peter Uhnak <i.uhnak@gmail.com> wrote:
Hi,
is it possible to accept a method without creating instance variable?
E.g.
~~~~~~~~~~~~~~~~~~~~~~~~~~ Object subclass: #MyObject slots: { } classVariables: { } category: 'Category' ~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~ MyObject>>addValue: aValue container add: aValue ~~~~~~~~~~~~~~~~~~~~~~~~~~
Now normally when I would try to compile the method I would get the "Unknown variable 'container'" warning that will force me to either create temporary or instance variable; I would like to somehow ignore that, because the method will actually never get called.
My objective is use this method as a template for code generation, so I would then take this method, apply some code transformation and compile it into different object.
Of course I could do
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MyObject>>addValueTemplate ^ 'MyObject>>addValue: aValue container add: aValue' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
But then I would lose code highlighting, which is quite error-prone for more complex snippets.
If you have a better approach, I am all ears. :)
Thanks, Peter
If you are only templating the method and not the whole class, why not add it as an instance variable MyObject? Or if MyObject is a real domain object with a few template methods, maybe put the templates on the class side and add a dummy class-instance-variable there.
cheers -ben