On Wednesday, August 11, 2010, Mariano Martinez Peck
<marianop...@gmail.com> wrote:
>
>
> On Wed, Aug 11, 2010 at 3:23 PM, Alexandre Bergel <alexan...@bergel.eu> wrote:
>
>> Yes please don't add that.
>
> This is not my intention. But I just discovered some bugs in my test because 
> I instantiated a class that shouldn't be instantiated since it is abstract.
> If now we close our eyes and dream about a clean oo language. Will forbidding 
> to instantiate an abstract class a wished feature?
>
>
> I am also against of this change. We should continue to have flexible 
> language and not to convert this in Java. In addition, I MAY want to 
> instantiate Abstract classes.
> Sometime you are doing prototypes, or TDD, and you want to instantiate an 
> object of an abstract class. Even if you have a subclassResponsability. I 
> don't care. Maybe I am not testing that right now, nor showing that to my 
> client.
>
> I think the correct way to detect your kind of problems is with Lint. If it 
> is not already done, maybe it could be added.

There is a rule that checks for that, I think it is called "refers to
abstract class". I don't have an image at hand to verify. It could be
extended to take a declaration like #isAbstractClass into account.

Lukaz

>
> Cheers
>
> Mariano
>
>
> Cheers,
> Alexandre
>
>>
>> On Wednesday, August 11, 2010, Stanislav Paskalev <ksh...@gmail.com> wrote:
>>> And it will also require modifying the Pharo by Example book that says
>>> that there's nothing wrong with instantiating abstract classes and
>>> that there is no *abstract* class marker in this sense, only abstract
>>> methods.
>>>
>>> So, why would try to convert Pharo to another language ?
>>>
>>> Stanislav Paskalev
>>>
>>>
>>> On Wed, Aug 11, 2010 at 3:43 PM, Alexandre Bergel <alexan...@bergel.eu> 
>>> wrote:
>>>> Hi!
>>>>
>>>> Just wondering. What about redefining new into:
>>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>> Behavior>>new
>>>>        "Answer a new initialized instance of the receiver (which is a 
>>>> class) with no indexable variables. Fail if the class is indexable."
>>>>        self isAbstractClass ifTrue: [ self error: 'An abstract class 
>>>> cannot be instantiated' ].
>>>>        ^ self basicNew initialize
>>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>>
>>>> This may break a lot of code however.
>>>>
>>>> Cheers,
>>>> Alexandre
>>>> --
>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>> Alexandre Bergel  http://www.bergel.eu
>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> Pharo-project@lists.gforge.inria.fr
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project@lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> --
>> Lukas Renggli
>> www.lukas-renggli.ch
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project@lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project@lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>

-- 
Lukas Renggli
www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to