parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Запутался в вызовах методов MAIN и своего класса

Peranth 06.02.2004 11:43

Непонятные грабли нашел.

Суть заключается в следующем.

Есть два файла (для упрощенности лишний код убран):

______________________
1. Файл file.class.p

@CLASS
cFile

@DeleteFile[fileID]
^file:delete[/file$fileID]

@DeleteAll[]
^DeleteFile[1]
^DeleteFile[2]
^DeleteFile[3]

______________________
2. Файл index.html

@main[]
$File[^cFile:Create[]]
^DeleteAllFiles[]


@DeleteAllFiles[]
^File.DeleteAll[]

@DeleteFile[]
# здесь какой-то код

________________________


Parser на это выдает ошибку: method of MAIN (MAIN) accepts maximum 0 parameter(s) DeleteFile.
И указывает на строку с вызовом ^DeleteFile[1]

Меняю код на:
@DeleteAll[]
^self.DeleteFile[1]
^self.DeleteFile[2]
^self.DeleteFile[3]
и все начинает работать.

Вопрос: почему вызывается не тот метод внутри класса, а метод с таким же именем но из класса MAIN?