Size: a a a

2020 January 23

SM

Sergey Milegov in PHP
Может не знал, что есть дока.
источник

VS

Vlad Sobenko in PHP
Подскажите почему псалм не может проанализировать код правильно, если вынести условие в отдельную ф-цию?  https://psalm.dev/r/fe3dd1e86a. Или я что то делаю не так?
источник

Л

Лев in PHP
Он просто не заглядывает вглубь.
источник

Л

Лев in PHP
Перепиши функцию валидации чтобы наоборот она кидала ексепшн, но возвращала гарантированно строку
источник

VS

Vlad Sobenko in PHP
Лев
Перепиши функцию валидации чтобы наоборот она кидала ексепшн, но возвращала гарантированно строку
Не хотелось бы, чтобы метод валидатор делал что то кроме валидации
источник

Л

Лев in PHP
Такие моменты не только у псалма
источник

Л

Лев in PHP
Попробуй этот же код через phan
источник

VS

Vlad Sobenko in PHP
Выглядит, как полная дичь.
источник

Л

Лев in PHP
Ну сделай им коммит...
источник

VS

Vlad Sobenko in PHP
phan та же дичь(та же ошибка)
источник

ЕР

Евгений Ромашкан in PHP
Vlad Sobenko
Подскажите почему псалм не может проанализировать код правильно, если вынести условие в отдельную ф-цию?  https://psalm.dev/r/fe3dd1e86a. Или я что то делаю не так?
источник

ЕР

Евгений Ромашкан in PHP
источник

ЕР

Евгений Ромашкан in PHP
Сам не распарсит, увы
источник

VS

Vlad Sobenko in PHP
Евгений Ромашкан
Сам не распарсит, увы
Спс. Жаль.
источник

SP

Sergey Protko in PHP
Vlad Sobenko
Подскажите почему псалм не может проанализировать код правильно, если вынести условие в отдельную ф-цию?  https://psalm.dev/r/fe3dd1e86a. Или я что то делаю не так?
потому что псалм при проверке типов проверяет лишь сигнатуры методов которые ты дергаешь. Ну и в целом с точки зрения типов, у тебя тип DEVICE_MAP все ж таки array<array-key, string>. Вот если бы у тебя ключ был описан суммой литеральных типов то можно было бы твою функцию isValidName сделать как тайп гвард (ассерты в псалме).

В тайпскрипте скажем это можно было бы сделать за счет as const и keyof typeof DEVICE_MAP. В псалме такой возможности нет.
источник

VS

Vlad Sobenko in PHP
Sergey Protko
потому что псалм при проверке типов проверяет лишь сигнатуры методов которые ты дергаешь. Ну и в целом с точки зрения типов, у тебя тип DEVICE_MAP все ж таки array<array-key, string>. Вот если бы у тебя ключ был описан суммой литеральных типов то можно было бы твою функцию isValidName сделать как тайп гвард (ассерты в псалме).

В тайпскрипте скажем это можно было бы сделать за счет as const и keyof typeof DEVICE_MAP. В псалме такой возможности нет.
Спс. Только прикрутили на легаси. Вопросов много).
источник

AD

Andrey Dembitskyi in PHP
Sergey Protko
потому что псалм при проверке типов проверяет лишь сигнатуры методов которые ты дергаешь. Ну и в целом с точки зрения типов, у тебя тип DEVICE_MAP все ж таки array<array-key, string>. Вот если бы у тебя ключ был описан суммой литеральных типов то можно было бы твою функцию isValidName сделать как тайп гвард (ассерты в псалме).

В тайпскрипте скажем это можно было бы сделать за счет as const и keyof typeof DEVICE_MAP. В псалме такой возможности нет.
есть key-of
источник

AD

Andrey Dembitskyi in PHP
Andrey Dembitskyi
есть key-of
источник

SP

Sergey Protko in PHP
Andrey Dembitskyi
есть key-of
я вкурсе, и что ты можешь объявить тип и сдеть ассерт этого типа в целом тоже но насколько я помню псалм пока не настолько умный
источник

ММ

Марк Москаленко in PHP
Всем привет!
источник