When a <property> element is compound (eg name="foo.bar.baz"), completion for the value of the "ref" attribute does not work.
What happens is:
1) SpringBeanResolveConverter.PropertyBean#getRequiredClass
2) SpringBeanResolveConverter#getValueClasses
3) SpringBeanUtil#getRequiredClass
4) SpringPropertyImpl#getRequiredType
5) ...(DOM API)...
6) BeanPropertyConverter#fromString
Inside BeanPropertyConverter#fromString, parameter "s" has value ="foo.bar.baz"
Method BeanPropertyConverter#resolve uses PropertyUtil.findPropertySetter, and of course it can not find "foo.bar.baz". Because of that, no 'expected type' can be found.
My understanding of DOM API and Spring plugin is limited, but would it make sense if BeanPropertyConverter#fromString would somehow delegate to BeanPropertyConverter#createReferences? Those resolve to PsiMethod (if not null), and you can make BeanProperty from that.