Ruby не является языком статической типизации, поэтому движок завершения кода не может точно знать , какой тип будет возвращать любая функция.
Однако, иногда программист знает. Возьмите код ниже, который использует метапрограммирование, чтобы «запутать» завершение кода:
class Example
define_method :foo do
2 + 2
end
def bar
foo_result = foo
end
end
Статический анализатор не знает, что существует foo
, поэтому он не может обеспечить завершение кода для него. Даже если foo
всегда будет Integer
, и мы это знаем, я получаю завершение кода только для BasicObject
.
Есть ли способ сообщить механизму завершения кода, какой тип я знаю, что-то будет, чтобы я мог получить лучшие результаты завершения, которые просто игнорируются интерпретатором?