[gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-16 Thread scottb
LGTM. Just be sure to add the test class that you had in http://gwt-code-reviews.appspot.com/161802 http://gwt-code-reviews.appspot.com/225801 -- http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-16 Thread spoon
Rietveld really wants to create a new issue rather than adding a patch here. I'm not sure why. Anyway, the updated version of this patch is here: http://gwt-code-reviews.appspot.com/227801 http://gwt-code-reviews.appspot.com/161802 --

[gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-16 Thread spoon
Trying again: http://gwt-code-reviews.appspot.com/220802 http://gwt-code-reviews.appspot.com/161802 -- http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-16 Thread cromwellian
LGTM. I like the UnitTestTreeLogger, didn't even know it existed. http://gwt-code-reviews.appspot.com/220802 -- http://groups.google.com/group/Google-Web-Toolkit-Contributors

Re: [gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-11 Thread Scott Blum
Yeah.. just remember someone might also do funky things with the passed-in class literal, like .getName() or == Foo.class. So most likely it needs to wrap the real class object and generate unbox code if you use the literal itself. On Thu, Mar 11, 2010 at 2:28 AM, Ray Cromwell

[gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-10 Thread Lex Spoon
On Tue, Mar 9, 2010 at 2:28 PM, sco...@google.com wrote: That being said, there's an inconsistency between this and the the existing error reporting architecture. The general paradigm is that all potential user-errors are caught by the time GenerateJavaAST finishes. These lines in

[gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-10 Thread Scott Blum
Hi Lex, Thanks for the very thoughtful write-up. You make many excellent points, and I especially agree with you about how much it sucks to work with Eclipse's internal AST, and the points about how it's less code and easier to understand if you mix the checking and transform code together, for

[gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-10 Thread Scott Blum
Generally speaking, this sounds like a good direction. I am becoming more fond of things that can be checked locally. On Wed, Mar 10, 2010 at 7:02 PM, Ray Cromwell cromwell...@google.comwrote: Can I suggest a middle-ground philosophical approach for the future? In the normal javac world,

Re: [gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-10 Thread Ian Petersen
If you do as Ray suggests and implement @IsLiteral, please make it work transitively. ie. make this work: public static T extends IMarker T foo(@IsLiteral ClassT clazz) { return (T)GWT.create(clazz); } The above example is not particularly compelling, but it's the best I can do right now.

Re: [gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-10 Thread Scott Blum
You could do just the error checking transitively, without needing dataflow. It's the implementation that gets tricky... On Wed, Mar 10, 2010 at 8:41 PM, Ray Cromwell cromwell...@gmail.com wrote: Transitivity would require dataflow which I think is more than what is being proposed at the

Re: [gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-10 Thread Ray Cromwell
True, but it kind of violates the idea that the error checking should strive for locality. Actually, as long as the annotations are replicated, it can stay local. Consider: public Type makeIt(@IsLiteral Class? clazzLiteral) { return GWT.create(clazzLiteral); } When visiting makeIt(), you can

Re: [gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-10 Thread Scott Blum
On Wed, Mar 10, 2010 at 10:51 PM, Ray Cromwell cromwell...@gmail.comwrote: True, but it kind of violates the idea that the error checking should strive for locality. Actually, as long as the annotations are replicated, it can stay local. Consider: public Type makeIt(@IsLiteral Class?

Re: [gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-10 Thread Ray Cromwell
On Wed, Mar 10, 2010 at 9:48 PM, Scott Blum sco...@google.com wrote:  Well, you could conservatively throw out these cases and require the annotation to carry forward.  But to me the real problem in our current compiler is makeIt(Foo.class); makeIf(Bar.class); public Type

[gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-09 Thread scottb
Mostly LGTM, and a definitely improvement. That being said, there's an inconsistency between this and the the existing error reporting architecture. The general paradigm is that all potential user-errors are caught by the time GenerateJavaAST finishes. These lines in JavaToJavaScriptCompiler

[gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-09 Thread scottb
I should have mentioned.. one of the important reasons to do the error checking early (and on the JDT AST rather than the GWT AST) is that at some point we want to share all user-error validation code with the Google Eclipse Plugin, and it'd be good if that migration is as painless as possible.

[gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-08 Thread spoon
I left out a file. Creating a new issue. http://gwt-code-reviews.appspot.com/162801 -- http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Re: Give a better error message when RunAsyncCode.runAsyncCode is passed something

2010-03-08 Thread spoon
Can you review this, Ray? In trunk, the compiler generates an internal compiler exception if runAsyncCode is called with something other than a class literal as an argument. This fixes that problem, and while at it, updates all the other error messages in ReplaceRunAsyncs to be more