Днес, докато разглеждах някакъв код, попаднах на следните две заглавки на функции и разбрах, че доколкото мога да преценя, те трябва да са дубликати. Същият брой параметри и без съвпадения или предпазители, които да ни позволят да заобиколим първия. Но компилаторът не ме предупреждава, че вторият никога няма да съвпадне. Някакво обяснение защо би било така?
def update_display_cache(context, text, line_no, position, text, adjusted_text, _) do
def update_display_cache(context, display_line, line_no, position, text, adjusted_text, _) do
Направих няколко прости функции със съответстващи списъци с параметри, включително една със завършващия параметър _ и всички те дадоха очакваното предупреждение.warning: this clause cannot match because a previous clause at line 24 always matches
Също така копирах и поставих цялата заглавка и тялото на първата функция без промени и все още не получих предупреждение.
Еликсир 1.7.4