void () { myFixture.addClass(""" package org.checkerframework.checker.tainting.qual; import java.lang.annotation.ElementType; import java.lang.annotation.Target; @Target({ElementType.LOCAL_VARIABLE, ElementType.FIELD, ElementType.METHOD}) public @interface Tainted { }"""); myFixture.addClass(""" package org.checkerframework.checker.tainting.qual; import java.lang.annotation.ElementType; import java.lang.annotation.Target; @Target({TYPE_USE,TYPE_PARAMETER}) public @interface Untainted { }"""); myFixture.addClass(A_CLASS); myFixture.addClass(""" package com.jetbrains; import org.checkerframework.checker.tainting.qual.*; class OtherClass { static @Tainted String source() { return "unsafe"; } static String foo(String... a) { return a.length==0? "bar" : a[0]; } static @Untainted String safe() { return "safe"; } }"""); PropertyChecker.customized() .checkScenarios(() -> this::doTestSinkToSourceFlowIsReported); }