1) Flags api incompatibility whenever the api of an overridable api method evolves.
2) Adds relevant tests for issue (1).
3) Correctly handles the following case:

Api_version_1:

    public class A {
        public void foo(A self) {
      }
    }

    class B extends A {
    }


Api_version_2:

    class A as before.

    class B extends A{
       /* method overloading not overriding */
       public final void foo(B self) {
      }
    }


Api checker was incorrectly marking this case as METHOD_OVERRIDING error. Instead, it should just mark it as METHOD_OVERLOADING error.

4) Adds test case for issue (3).
5) Adds test case for  addition of unchecked exceptions.
6) Updates the config file so that 'ant apicheck' passes. I verified each change in the config file by manually inspecting the source code.  
7) Also adds conservative tests for Api-checking of classes in new Api which are sub-classes of classes in existing Api.


Review by: scottb



git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@3703 8db76d5a-ed1c-0410-87a9-c151d255dfc7
14 files changed