[MacPorts] #55587: junit 4.6 on 10.13 JUnitMatchers.java:87: error: incompatible types

MacPorts noreply at macports.org
Tue Dec 26 01:12:31 UTC 2017


#55587: junit 4.6 on 10.13 JUnitMatchers.java:87: error: incompatible types
----------------------+-------------------
 Reporter:  sandiway  |      Owner:
     Type:  defect    |     Status:  new
 Priority:  High      |  Milestone:
Component:  ports     |    Version:  2.4.2
 Keywords:            |       Port:  junit
----------------------+-------------------
 I am compiling swi-prolog on 10.13 (yes I am running correct macports
 2.4.2),
 which depends on junit and in turn hamcrest-core.
 There are Java versioning issues here, which I'm unable to resolve.
 A brief summary below.
 Note that I tried all possible cases (doing a full uninstall installed
 each time).

 1. Apple's legacy javaforosx.dmg doesn't work of course since ANT requires
 Java8.
 (Cite: The Apache Ant team currently maintains two lines of development.
 The 1.9.x releases require Java5 at runtime and 1.10.x requires Java8 at
 runtime.)

 2. The latest Java9 doesn't work and results in the other error reported
 in Dec 2017 for junit 4.6 since 1.5  generates an error (not a mere
 warning, new for Java9)
 (Cite: In JDK 8, -source and -target values of 1.5/5 and earlier were
 deprecated and caused a warning to be generated. In JDK 9, those values
 cause an error.)

 3. Therefore the only possible option will be to install using Java8.
 Due to Apple's locking down of /usr, we set JAVA_HOME using:
 export JAVA_HOME="/Library/Internet Plug-
 Ins/JavaAppletPlugin.plugin/Contents/Home"
 so we can use javac with Java8/9.
 (Note; hamcrest-core passes fine using Java8.)

 unfortunately, junit 4.6 fails with

 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_java_junit/junit/work/junit4.6/src/main/java/org/junit/matchers/JUnitMatchers.java:87:
 error: incompatible types: no instance(s) of type variable(s) LHS exist so
 that CombinableBothMatcher<LHS> conforms to CombinableMatcher<T>
 :info:build     [javac]                 return CoreMatchers.both(matcher);
 :info:build     [javac]                                         ^
 :info:build     [javac]   where LHS,T are type-variables:
 :info:build     [javac]     LHS extends Object declared in method
 <LHS>both(Matcher<? super LHS>)
 :info:build     [javac]     T extends Object declared in method
 <T>both(Matcher<? super T>)
 :info:build     [javac]
 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_java_junit/junit/work/junit4.6/src/main/java/org/junit/matchers/JUnitMatchers.java:99:
 error: incompatible types: no instance(s) of type variable(s) LHS exist so
 that CombinableEitherMatcher<LHS> conforms to CombinableMatcher<T>
 :info:build     [javac]                 return
 CoreMatchers.either(matcher);
 :info:build     [javac]                                           ^
 :info:build     [javac]   where LHS,T are type-variables:
 :info:build     [javac]     LHS extends Object declared in method
 <LHS>either(Matcher<? super LHS>)
 :info:build     [javac]     T extends Object declared in method
 <T>either(Matcher<? super T>)
 :info:build     [javac] Note:

--
Ticket URL: <https://trac.macports.org/ticket/55587>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list