提交 4d52092f 编写于 作者: J jjg

4741726: allow Object += String

Summary: remove code in line with restriction removed from JLS
Reviewed-by: mcimadamore
Contributed-by: michaelbailey0@gmail.com
上级 00273da5
...@@ -1609,17 +1609,10 @@ public class Attr extends JCTree.Visitor { ...@@ -1609,17 +1609,10 @@ public class Attr extends JCTree.Visitor {
tree.getTag() - JCTree.ASGOffset, tree.getTag() - JCTree.ASGOffset,
owntype, owntype,
operand); operand);
if (types.isSameType(operator.type.getReturnType(), syms.stringType)) { chk.checkDivZero(tree.rhs.pos(), operator, operand);
// String assignment; make sure the lhs is a string chk.checkCastable(tree.rhs.pos(),
chk.checkType(tree.lhs.pos(), operator.type.getReturnType(),
owntype, owntype);
syms.stringType);
} else {
chk.checkDivZero(tree.rhs.pos(), operator, operand);
chk.checkCastable(tree.rhs.pos(),
operator.type.getReturnType(),
owntype);
}
} }
result = check(tree, owntype, VAL, pkind, pt); result = check(tree, owntype, VAL, pkind, pt);
} }
......
/* /*
* Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -23,14 +23,17 @@ ...@@ -23,14 +23,17 @@
/* /*
* @test * @test
* @bug 4642850 * @bug 4741726
* @summary compiler allows Object += String * @summary allow Object += String
* @author gafter
*
* @compile/fail ObjectAppend.java
*/ */
class ObjectAppend {{ public class StringConversion2
Object o = null; {
o += "string"; public static void main(String[] args) {
}} Object o = "Hello ";
String s = "World!";
o += s;
if (!o.equals("Hello World!"))
throw new Error("test failed");
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册