After bringing all the dependencies up to date and jumping through the usual hoops, I get hit with this:
@dot: [mkdir] Created dir: /var/tmp/portage/dev-util/eclipse-sdk-3.6.0/work/eclipse-build-0.6.0/build/eclipse-3.6.0-src/plugins/org.eclipse.equinox.p2.metadata/@dot [javac] Compiling 140 source files to /var/tmp/portage/dev-util/eclipse-sdk-3.6.0/work/eclipse-build-0.6.0/build/eclipse-3.6.0-src/plugins/org.eclipse.equinox.p2.metadata/@dot [javac] /var/tmp/portage/dev-util/eclipse-sdk-3.6.0/work/eclipse-build-0.6.0/build/eclipse-3.6.0-src/plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/CompoundIterator.java:28: type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds T,java.lang.Object [javac] private T nextObject = noElement(); [javac] ^ [javac] /var/tmp/portage/dev-util/eclipse-sdk-3.6.0/work/eclipse-build-0.6.0/build/eclipse-3.6.0-src/plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/CompoundIterator.java:51: type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds T,java.lang.Object [javac] nextObject = noElement(); [javac] ^ [javac] /var/tmp/portage/dev-util/eclipse-sdk-3.6.0/work/eclipse-build-0.6.0/build/eclipse-3.6.0-src/plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/MatchIteratorFilter.java:24: type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds T,java.lang.Object [javac] private T nextObject = noElement(); [javac] ^ [javac] /var/tmp/portage/dev-util/eclipse-sdk-3.6.0/work/eclipse-build-0.6.0/build/eclipse-3.6.0-src/plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/MatchIteratorFilter.java:39: type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds T,java.lang.Object [javac] nextObject = noElement(); [javac] ^ [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. [javac] Note: /var/tmp/portage/dev-util/eclipse-sdk-3.6.0/work/eclipse-build-0.6.0/build/eclipse-3.6.0-src/plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/Everything.java uses unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. [javac] 4 errors The code referenced by the errors above looks pretty sketchy. The noElement() methods are examples of the "returns an instance of any type you think it should" anti-pattern: private static <T> T noElement() { return (T) NO_ELEMENT; } Unless NO_ELEMENT is null (which it isn't), that code cannot possibly be correct. The compiler is right to complain about it. Please see the attached patch for a correct implementation that compiles cleanly. After applying the attached patch, Eclipse 3.6 builds successfully on Gentoo. :-) On Monday, 9 August 2010, at 4:43 pm, Andrew Overholt wrote: > * Matt Whitlock <m...@whitlock.name> [2010-08-09 16:39]: > > Linux Tools 0.6.0 has been out for a while, but there is still no Eclipse > > Build 0.6.0? > > I'm going to tag it tomorrow :) In the meantime, can you build from SVN > trunk with this tarball and see if it all works on Gentoo? > > > http://www.eclipse.org/downloads/download.php?file=/technology/linuxtools/eclipse-build/e36-branch/eclipse-3.6.0-src-noxpt.tar.bz2
--- plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/CompoundIterator.java~ 2010-02-19 12:12:49.000000000 +0000 +++ plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/CompoundIterator.java 2010-08-09 23:16:39.201246659 +0000 @@ -25,7 +25,7 @@ private final Iterator<? extends Object> iteratorIterator; private Iterator<T> currentIterator; - private T nextObject = noElement(); + private Object nextObject = NO_ELEMENT; /** * Creates a compound iterator that will iterated over the elements @@ -47,8 +47,9 @@ if (!positionNext()) throw new NoSuchElementException(); - T nxt = nextObject; - nextObject = noElement(); + @SuppressWarnings("unchecked") + T nxt = (T) nextObject; + nextObject = NO_ELEMENT; return nxt; } @@ -76,9 +77,4 @@ nextObject = currentIterator.next(); return true; } - - @SuppressWarnings("unchecked") - private static <T> T noElement() { - return (T) NO_ELEMENT; - } -} \ No newline at end of file +} --- plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/MatchIteratorFilter.java~ 2010-02-19 12:12:48.000000000 +0000 +++ plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/MatchIteratorFilter.java 2010-08-09 23:20:33.572246380 +0000 @@ -21,7 +21,7 @@ private final Iterator<? extends T> innerIterator; - private T nextObject = noElement(); + private Object nextObject = NO_ELEMENT; public MatchIteratorFilter(Iterator<? extends T> iterator) { this.innerIterator = iterator; @@ -35,8 +35,9 @@ if (!positionNext()) throw new NoSuchElementException(); - T nxt = nextObject; - nextObject = noElement(); + @SuppressWarnings("unchecked") + T nxt = (T) nextObject; + nextObject = NO_ELEMENT; return nxt; } @@ -63,9 +64,4 @@ } return false; } - - @SuppressWarnings("unchecked") - private static <T> T noElement() { - return (T) NO_ELEMENT; - } -} \ No newline at end of file +}
_______________________________________________ linuxtools-dev mailing list linuxtools-dev@eclipse.org https://dev.eclipse.org/mailman/listinfo/linuxtools-dev