On Tue, Jun 28, 2016 at 5:55 PM, Peter Uhnak <i.uh...@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

Reply via email to