Emit a warning when a JSNI method reference is assigned to a field.

A common error when passing method as callbacks in JSNI occurs for
example in:

  $wnd.aCallback = o.@Class:callback();

where a qualified method reference is set into a field of a different
object without capturing the qualifier. A later call

  $wnd.aCallback();

will bind $wnd to 'this' and the callback; which is probably not desired.

In order to silence this warning the user can explicitly assign the
qualified method reference to a variable as follows.

  var callback =  o.@Class:callback();
  $wnd.aCallback = callback;

Change-Id: I06ae1f9eddc225d3507d556b5fec8faccd7e65e6
Fix code duplication in JsInterop patch.

The ComputeInstantiatedJsoTypes pass was not correctly
extracted from ImplementCastsAndTypeChecks.

Change-Id: I3041bbdfac951f3bf993d7c4e1288d17d49cc95f
Makes CoreSuite compatible with all browsers

Change-Id: I349eef7c8015addc93a5793b2d33c9ccc4cf09ab
Fix handling of null in AssertionFailedError(String).

Previously, you would see "junit.framework.AssertionFailedError: null"
if you pass in 'null' as the message for AssertionFailedError (which
many Assert methods do). This was fixed in the core JUnit code
in https://github.com/junit-team/junit/commit/1b809a4a2e

Change-Id: I4d32ff789dc684d1427d9d0e53229fc15b53ab5c
Fix inconsistency in MethodInliner.

MethodInliner would create an instance of JNonNullType whose
underlying type was JNullType. Leaving the AST in an illegal
state where further passes down the road could be making wrong
decisions.

Change-Id: I2bbca4692b6eadb609a22b1016a834fd94bc7840
Exclude some JsInterfaceTests from old ff and ie8.

Change-Id: Ibb5294d24f8d5cef6b5faa613996b9f2f2c40d28
SuperDevMode: add -compileTestRecompiles flag

This allows compile tests to catch bugs that don't show up
during the first compile. (That is, assuming they do show
up when no files have changed.)

Change-Id: Ida97349ecb6948bb8fa05b317148a0cc12572842
Review-Link: https://gwt-review.googlesource.com/#/c/6921/
Don't fail compilation if we can't emit a private artifact

Only fail for "public" and "deploy" artifacts (StandardLinkerContext's
produceOutput is only called for those 3 visibilities, "source"
artifacts and emitted by the SourceSaver).

This change reverts to the GWT 2.5.1 behavior, for private artifacts
only. The behavior was changed in 73862cc8ceb81c29a669d573441e231e4b272842

Bug: issue 8623
Change-Id: I7a87c13d33c942f9cbcd3c27ec90c9ea9c19c70d
Improvements and deprecations to Impl.getNameOf.

Impl.getNameOf() (not a public API) provides a way to obtain the
actual name of the JavaScript function that implements a Java method
given a JSNI reference. Also allows the same for fields and types.

(1) Impl.getNameOf now only accepts a proper JSNI reference as
its string parameter.

(2) Deprecated access to types just by name.

(3) Deprecated use of binary names. All names must be
    source names.

(4) Add limited support for pinning methods; methods that are
    pinned will not be inlined or statified. All methods
    referred to by Impl.getNameOf() are pinned.

TODO in follow up cl, add support for pinning fields.

Change-Id: Ia3fb6471318e3b9cb757d243578a5903b271e62c
Fix UnusedImportRemover to traverse package annotations

Previously we just noted the type of the annotation, but we then
considered types from annotation properties as unused and removed the
imports, resulting in errors downstream.

Bug: issue 8425
Change-Id: Idfa9430fd60cc7dea2069a8d860d6de078b6ca16
Remove old JUnitCreator

Change-Id: Ib97903d515875615b33fbe236e028693e2929484
Fix CompilationStateBuilder for units that fail JDT compile.

Units that fail JDT compiler might be saved as cached units; these
might be resolved later and need their dependency information
to invalidate other units.

All the other information collected and checks performed in
UnitProcessorImpl that require traversing the JDT AST have
been turned off for units that fail JDT compile; when
units fail JDT compile, their JDT ASTs are left in an
inconsistent state that might cause exceptions when traversing.

This patch fixes a breakage when superdevmode recompiles
due to having units with JDT errors incorrectly represented.

TODO: have a saner approach to units that fail to compile
under JDT.

Change-Id: I8c9d7a59d4f4be424b81ba1a46993924e9ffc126
Remove magicness around nullMethod.

(1) Removes JSNI syntax @null::nullMethod and @null::nullField.
(2) Declares a noop function JCHSU.emptyFunction() that is used
    in the places where null.nullMethod() was used for that
    purpose, e.g. to make clinits idempotent.
(3) Declares an typeMarker function in JCHSU.typeMarker() to be used
     where the null.nullMethod was used as a typeMarker.
(4) Moves the setting of typeMarker at Object from code generation at
    GenerateJavaScriptAst to intrinsic in library JCHSU.defineClass.

Change-Id: Ifc309a782a2fc2af675e4645adb9cee4e95a1a40
Adding explanation about how to configure file encoding in eclipse.

This is need in order to correctly open i18n java and properties files.

Change-Id: I0a8f43d610c281a4b965c9d34983e6691e86b5ad
create BUILD file in gwt/svn/trunk/user (take 2)

Part 1: move globs, java libraries, and AugmentedJars.
(These are the minimum changes needed so that everything
still builds without blaze warnings.)

Change-Id: I7095f3bac3a54a8f4c7a275bdc76c3e295479bc9
Add library tree traversal capabilities to ModuleDef.

Change-Id: I9b33e6bf691c0f58a01abb9a9a0384867d7dbe85
CrossSiteIFrameLinker: change installcode default for pretty mode

When using -style pretty or -style detailed, change the default
for "installcode" to false so that the cache.js files are easier
to read.

However, don't change this for optimized builds because it might
have a bad effect on latency for some apps; it's hard to tell
without doing extensive testing.

Most apps shouldn't care about this, but where it matters, the
default can be explicitly overridden:

  <set-configuration-property name="installCode" value="true" />

Change-Id: I98a15ed8c47362c014680e6cddfdab9c1755e67a
Fix bad merge in ImplementCastsAndTypeChecks.

Fixes duplicated code resulting from a bad merge in
the JsInterop patch.

Change-Id: I596effcd1b9a095ec2165efaf5af6b906ceaeb05
Removed NOOP from MethodInliner.

The code

if (!result.canBeNull()) {
  result = result.getNonNull();
}

was effectively a NOOP because of all JRefernceType subclasses
only JNonNullType return false from canBeNull() and getNonNull()
at JNonNull returns itself.

Change-Id: Ia6971fa45581fc5478678d4bb2f2743272008223
SuperDevMode: add -failOnError flag

This flag stops the compile if any GWT module has a
Java file that won't compile. (Traditionally known as
-strict in the regular GWT compiler.)

Change-Id: I6b0579226f353231aded17c2b6af996d39635cb7