YuriyLisovskiy / borsch-lang

Українська мова програмування.
MIT License
13 stars 1 forks source link

Виправити помилку: колізія назв функцій #22

Closed YuriyLisovskiy closed 2 years ago

YuriyLisovskiy commented 2 years ago

Якщо назвати метод або функцію класу так само, як і вбудована, то буде колізія, приклад:

клас Стек
{
    функція __конструктор__(я: Стек)
    {
        я._список = [];
    }

    функція додати(я: Стек, елемент: абиякий)
    {
        я._список = додати(я._список, елемент);
        повернути нуль;
    }
}

Код використання:

@'колекції/стек.борщ' -> стек

ст = стек.Стек();
ст.додати(1);

Помилка виглядає так:

Відстеження (стек викликів):
  Файл "/Users/username/Projects/borsch-lang/Test/тест.борщ", рядок 122
    ст.додати(1)
  Файл "/Users/username/Projects/borsch-lang/Lib/колекції/стек.борщ", рядок 30
    я._список = додати(я._список, елемент)
Помилка виконання: аргумент 'я' очікує параметр з типом 'невідомий', отримано 'список'