<?xml version="1.0" encoding="UTF-8"?>
<test-data>
    <test-code>
        <description><![CDATA[
TEST1
     ]]></description>
        <expected-problems>0</expected-problems>
        <code><![CDATA[
public class Foo {
 public void foo() { }
}
     ]]></code>
    </test-code>
    <test-code>
        <description><![CDATA[
TEST2
     ]]></description>
        <expected-problems>0</expected-problems>
        <code><![CDATA[
public class Foo {
 public final void foo() { }
}
     ]]></code>
    </test-code>
    <test-code>
        <description><![CDATA[
TEST3
     ]]></description>
        <expected-problems>0</expected-problems>
        <code><![CDATA[
public class Foo {
 public final void foo() { }
 public void foo2() { }
}
     ]]></code>
    </test-code>
    <test-code>
        <description><![CDATA[
TEST4
     ]]></description>
        <expected-problems>1</expected-problems>
        <code><![CDATA[
public final class Foo {
 public final void foo() { }
}
     ]]></code>
    </test-code>
    <test-code>
        <description><![CDATA[
TEST5
     ]]></description>
        <expected-problems>1</expected-problems>
        <code><![CDATA[
public final class Foo {
 public final void foo() { }
 public void foo2() { }
}
     ]]></code>
    </test-code>
    <test-code>
        <description><![CDATA[
TEST6
     ]]></description>
        <expected-problems>3</expected-problems>
        <code><![CDATA[
public final class Foo {
 public final void fooA() { }
 public final void fooS() { }
 public final void fooD() { }
 public void foo2() { }
}
     ]]></code>
    </test-code>
    <test-code>
        <description><![CDATA[
final method in inner class of non-final outer class
     ]]></description>
        <expected-problems>0</expected-problems>
        <code><![CDATA[
public final class Foo {
 public static class Bar {
  public final void buz() {}
 }
}
     ]]></code>
    </test-code>
    <test-code>
        <description><![CDATA[
final method in inner final class 
     ]]></description>
        <expected-problems>1</expected-problems>
        <code><![CDATA[
public final class Foo {
 public final class Bar {
  public final void buz() {}
 }
}
     ]]></code>
    </test-code>

    <test-code>
        <description>#1464 UnnecessaryFinalModifier false positive on a @SafeVarargs method</description>
        <expected-problems>0</expected-problems>
        <code><![CDATA[
public final class InboxContents<T> {
    @SafeVarargs
    public final InboxContents<T> conflateWith(T... values) { // false positive
        return conflateWith(ImmutableList.copyOf(values));
    }
}
public final class InboxContents2 {
    @java.lang.SafeVarargs
    public final InboxContents conflateWith(String... values) {
        return conflateWith(ImmutableList.copyOf(values));
    }
}
        ]]></code>
    </test-code>
</test-data>
