[FIR-TEST] Move analysis tests to separate module

This commit is contained in:
Dmitriy Novozhilov
2020-03-18 15:10:46 +03:00
parent 3a479d5d16
commit cc07ae96b3
1477 changed files with 1001 additions and 980 deletions
@@ -0,0 +1,57 @@
// FILE: Element.java
// FULL_JDK
public interface Element {}
// FILE: DerivedElement.java
public interface DerivedElement extends Element {}
// FILE: EmptyDiagnostic.java
public class EmptyDiagnostic {}
// FILE: Diagnostic.java
import org.jetbrains.annotations.NotNull;
public class Diagnostic<E extends Element> extends EmptyDiagnostic {
@NotNull
public E getElement();
}
// FILE: DiagnosticFactory.java
import org.jetbrains.annotations.NotNull;
public class DiagnosticFactory<D extends EmptyDiagnostic> {
@NotNull
public D cast(@NotNull EmptyDiagnostic diagnostic) {
return (D) diagnostic;
}
}
// FILE: DiagnosticFactory0.java
public class DiagnosticFactory0<E extends Element> extends DiagnosticFactory<Diagnostic<E>> {}
// FILE: test.kt
class Fix(e: DerivedElement)
fun create(d: Diagnostic<DerivedElement>) {
val element = d.element
Fix(element)
}
fun <DE : DerivedElement> createGeneric(d: Diagnostic<DE>) {
val element = d.element
Fix(element)
}
private val DERIVED_FACTORY = DiagnosticFactory0<DerivedElement>()
fun createViaFactory(d: EmptyDiagnostic) {
val casted = DERIVED_FACTORY.cast(d)
val element = casted.element
Fix(element)
}