error Type mismatch: cannot convert from java.lang.String to java.lang.String
InvocationSite site,
Scope scope)
{
- FieldBinding retField = sourceTypeBinding.getFieldBase(fieldName, false); // XXX may need to get the correct value for second parameter in the future
+ FieldBinding retField = sourceTypeBinding.getFieldBase(fieldName, true); // XXX may need to get the correct value for second parameter in the future (see #55341)
if (interTypeFields.isEmpty()) return retField;
int fieldLength = fieldName.length;
args.add("../tests/bugs/serialVersionUID/Util.java");
CommandTestCase.runCompiler(args, CommandTestCase.NO_ERRORS);
+
+ // For PR55341
+ args = new ArrayList();
+ args.add("-classpath");
+ args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar" +
+ File.pathSeparator + System.getProperty("aspectjrt.path"));
+ args.add("-outjar");
+ args.add("../tests/bugs/StringToString/helloworld.jar");
+ args.add("../tests/bugs/StringToString/HW.java");
+ CommandTestCase.runCompiler(args, CommandTestCase.NO_ERRORS);
}
public static void makeURLWeavingClassLoaderJars() throws IOException {
args.add("../weaver/testdata/ltw-itdaspects.jar");
args.add(AjdtAjcTests.TESTDATA_PATH + "/src1/LTWInterfaceITD.aj");
args.add(AjdtAjcTests.TESTDATA_PATH + "/src1/LTWFieldITD.aj");
- /* Uncomment when bug #55341 fixed */
-// args.add(AjdtAjcTests.TESTDATA_PATH + "/src1/LTWMethodITD.aj");
+ args.add(AjdtAjcTests.TESTDATA_PATH + "/src1/LTWMethodITD.aj");
CommandTestCase.runCompiler(args, CommandTestCase.NO_ERRORS);
/*
<compile files="Priority.aj" />
</ajc-test>
+ <ajc-test dir="bugs/StringToString" pr="55341"
+ title="error Type mismatch: cannot convert from java.lang.String to java.lang.String"
+ comment="make helloworld.jar with 'ajc -outjar helloworld.jar HW.java' or run BcweaverJarMaker"
+ keywords="">
+ <compile files="X.java" classpath="helloworld.jar">
+ <message kind="warning" line="3"/>
+ <message kind="warning" line="7"/>
+ </compile>
+ </ajc-test>
+
+
</suite>
--- /dev/null
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.Properties;
+
+public class HW extends ArrayList {
+
+ String message = "Hello World!";
+
+ private void check (String args) {
+ }
+
+ public void println () {
+ System.out.println(message);
+ }
+
+ public static void main(String[] args) {
+ HW hw = new HW();
+ hw.println();
+ for (int i = 0; i < args.length; i++) {
+ String jp = args[i];
+ if (!hw.contains(jp)) {
+ throw new RuntimeException(jp + " missing");
+ }
+ }
+ }
+
+}
--- /dev/null
+// PR55341
+aspect F {
+ private int HW.intField = 999;
+}
+
+aspect M {
+ public String HW.getMessage () {
+ return message;
+ }
+}
try {
Class clazz = loader.loadClass("LTWHelloWorld");
- /* Uncomment when bug #55341 fixed */
-// invokeMain(clazz,new String[] { "LTWInterfaceITD", "LTWFieldITD", "LTWMethodITD" });
- invokeMain(clazz,new String[] { "LTWInterfaceITD", "LTWFieldITD" });
+ invokeMain(clazz,new String[] { "LTWInterfaceITD", "LTWFieldITD", "LTWMethodITD" });
}
catch (Exception ex) {
fail(ex.toString());
try {
Class clazz = loader.loadClass("LTWHelloWorld");
- /* Uncomment when bug #55341 fixed */
-// invokeMain(clazz,new String[] { "LTWAspect", "LTWAroundClosure", "LTWPerthis", "LTWInterfaceITD", "LTWFieldITD", "LTWMethodITD", "LTWPerthis"});
- invokeMain(clazz,new String[] { "LTWAspect", "LTWAroundClosure", "LTWPerthis", "LTWInterfaceITD", "LTWFieldITD", "LTWPerthis"});
+ invokeMain(clazz,new String[] { "LTWAspect", "LTWAroundClosure", "LTWPerthis", "LTWInterfaceITD", "LTWFieldITD", "LTWMethodITD", "LTWPerthis"});
}
catch (Exception ex) {
fail(ex.toString());