Add more task property validations - conflicting property types are declared - same annotation is used on both field and method - missing @PathSensitive annotation for cacheable task - @Input used on File or FileCollection property
Fix handling of `@InputFiles` and `@Classpath` being present both `@Classpath` was introduced in Gradle 3.2. Tasks willing to stay compatible with earlier versions need to annotate their classpath properties with both `@Classpath` and `@InputFiles`. However, the detected type in 3.2 depended on the order the annotations were declared: `@Classpath @InputFiles` worked fine (i.e. was detected as `@InputFiles` prior to 3.2, but as `@Classpath` in 3.2). However, `@InputFiles @Classpath` was detected always as `@InputFiles`. This is now fixed.