1) I changed the State.maybeX() methods to add their jobs to a
work-queue instead of processing  them immediately.  I think that should
significantly reduce the stack depth.

2) Requiring a @ProxyFor annotation has also been deferred until after
all types have been scanned.  This should prevent the multiple-warning
scenario.

3) The DiagnosticKind.NOTE just doesn't show up in the Eclipse editor.
It will show up in the "Error Log" view, but that view doesn't provide a
back-reference to the element.

Regarding the 5926 case, were any of those methods defined in unchecked
proxies or RequestContexts?  I just want to make sure the problem is
really fixed the first time around.

Thanks for testing this out.


http://gwt-code-reviews.appspot.com/1467804/diff/3002/user/src/com/google/web/bindery/requestfactory/apt/DomainChecker.java
File
user/src/com/google/web/bindery/requestfactory/apt/DomainChecker.java
(right):

http://gwt-code-reviews.appspot.com/1467804/diff/3002/user/src/com/google/web/bindery/requestfactory/apt/DomainChecker.java#newcode58
user/src/com/google/web/bindery/requestfactory/apt/DomainChecker.java:58:
this.params = new ArrayList<TypeMirror>(params.size());
On 2011/06/28 00:29:30, tbroyer wrote:
Wrap in a Collections.unmodifiableList() (as a safeguard)

Done.

http://gwt-code-reviews.appspot.com/1467804/diff/3002/user/src/com/google/web/bindery/requestfactory/apt/DomainChecker.java#newcode187
user/src/com/google/web/bindery/requestfactory/apt/DomainChecker.java:187:
state.poison(checkedType, "Could not find domain method similar to %s",
sb);
On 2011/06/28 00:29:30, tbroyer wrote:
Should pass clientMethodElement, otherwise @SkipInterfaceValidation
will only be
checked on the class, not on the method.

Done.

http://gwt-code-reviews.appspot.com/1467804/diff/3002/user/src/com/google/web/bindery/requestfactory/apt/ProxyScanner.java
File
user/src/com/google/web/bindery/requestfactory/apt/ProxyScanner.java
(right):

http://gwt-code-reviews.appspot.com/1467804/diff/3002/user/src/com/google/web/bindery/requestfactory/apt/ProxyScanner.java#newcode78
user/src/com/google/web/bindery/requestfactory/apt/ProxyScanner.java:78:
state.addMapping(x, domain);
On 2011/06/28 00:29:30, tbroyer wrote:
This should be called even if domain==null, maybe with a special
value, to take
note that the proxy has been seen, so that TransportableTypeVisitor
doesn't bail
each time it sees it later.

Done.

http://gwt-code-reviews.appspot.com/1467804/diff/3002/user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java
File
user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java
(right):

http://gwt-code-reviews.appspot.com/1467804/diff/3002/user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java#newcode53
user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java:53:
private boolean boxPrimitives;
On 2011/06/28 00:29:30, tbroyer wrote:
make 'final'

Done.

http://gwt-code-reviews.appspot.com/1467804/diff/3002/user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java#newcode64
user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java:64:
List<TypeMirror> newArgs = new ArrayList<TypeMirror>();
On 2011/06/28 00:29:30, tbroyer wrote:
Initialize capacity at x.getTypeArguments().size().

Done.

http://gwt-code-reviews.appspot.com/1467804/diff/3002/user/test/com/google/web/bindery/requestfactory/server/RequestFactoryInterfaceValidatorTest.java
File
user/test/com/google/web/bindery/requestfactory/server/RequestFactoryInterfaceValidatorTest.java
(right):

http://gwt-code-reviews.appspot.com/1467804/diff/3002/user/test/com/google/web/bindery/requestfactory/server/RequestFactoryInterfaceValidatorTest.java#newcode45
user/test/com/google/web/bindery/requestfactory/server/RequestFactoryInterfaceValidatorTest.java:45:
// This annotation is temporary until RFIV and this test are removed
On 2011/06/28 00:29:30, tbroyer wrote:
Just so that it's clear for everyone, maybe add a note saying the RFIV
only
processes SkipInterfaceValidation on methods, not on types (even less
containing
types), and that this annotation here is for the annotation processor.

Done.

http://gwt-code-reviews.appspot.com/1467804/

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to