static Set<Dependency> tryCreateFromField(JavaField field) {
        return tryCreateDependency(field, "has type", field.getRawType());
    }
@Test
    @UseDataProvider("field_array_types")
    public void Dependencies_from_field_with_component_type(Field reflectionArrayField) {
        Class<?> reflectionDeclaringClass = reflectionArrayField.getDeclaringClass();
        JavaField field = new ClassFileImporter().importClasses(reflectionDeclaringClass).get(reflectionDeclaringClass).getField(reflectionArrayField.getName());

        Set<Dependency> dependencies = Dependency.tryCreateFromField(field);

        DependenciesAssertion.ExpectedDependencies expectedDependencies = from(reflectionDeclaringClass).to(reflectionArrayField.getType())
                .withDescriptionContaining("Field <%s> has type <%s>", field.getFullName(), reflectionArrayField.getType().getName())
                .inLocation(DependencyTest.class, 0);
        Class<?> expectedComponentType = reflectionArrayField.getType().getComponentType();
        while (expectedComponentType != null) {
            expectedDependencies.from(reflectionDeclaringClass).to(expectedComponentType)
                    .withDescriptionContaining("Field <%s> depends on component type <%s>", field.getFullName(), expectedComponentType.getName())
                    .inLocation(DependencyTest.class, 0);
            expectedComponentType = expectedComponentType.getComponentType();
        }

        assertThatDependencies(dependencies).containOnly(expectedDependencies);
    }