You are right though that it fails in this scenario. I've created an automated test here. Weld has assignability rules defined in BeanTypeAssignabilityRules so I suppose that will be a good entry point to start investigating.