@@ -95,34 +95,123 @@ public void moduleInfo() {
9595 @ Test
9696 public void objectDoubleEqualsBooleanLiteral () {
9797 refactoringHelper
98- .allowBreakingChanges ()
9998 .addInputLines (
10099 "Test.java" ,
101100 """
102101 class Test {
103- boolean doubleEqualsBooleanTrue (Object o) {
102+ boolean objectDoubleEqualsBooleanTrue (Object o) {
104103 return o == Boolean.TRUE;
105104 }
106105
107- boolean doubleEqualsBooleanFalse (Object o) {
106+ boolean objectDoubleEqualsBooleanFalse (Object o) {
108107 return o == Boolean.FALSE;
109108 }
109+
110+ boolean booleanTrueDoubleEqualsObject(Object o) {
111+ return Boolean.TRUE == o;
112+ }
113+
114+ boolean booleanFalseDoubleEqualsObject(Object o) {
115+ return Boolean.FALSE == o;
116+ }
117+ }
118+ """ )
119+ .expectUnchanged ()
120+ .doTest ();
121+ }
122+
123+ @ Test
124+ public void primitiveBooleanDoubleEqualsBooleanLiteral () {
125+ refactoringHelper
126+ .addInputLines (
127+ "Test.java" ,
128+ """
129+ class Test {
130+ boolean booleanDoubleEqualsBooleanTrue(boolean b) {
131+ return b == Boolean.TRUE;
132+ }
133+
134+ boolean booleanDoubleEqualsBooleanFalse(boolean b) {
135+ return b == Boolean.FALSE;
136+ }
137+
138+ boolean booleanTrueDoubleEqualsBoolean(boolean b) {
139+ return Boolean.TRUE == b;
140+ }
141+
142+ boolean booleanFalseDoubleEqualsBoolean(boolean b) {
143+ return Boolean.FALSE == b;
144+ }
110145 }
111146 """ )
112- // TODO: b/428921980 - this shouldn't get re-written because it doesn't compile!
113147 .addOutputLines (
114148 "Test.java" ,
115149 """
116150 class Test {
117- boolean doubleEqualsBooleanTrue(Object o ) {
118- return o == true;
151+ boolean booleanDoubleEqualsBooleanTrue(boolean b ) {
152+ return b == true;
119153 }
120154
121- boolean doubleEqualsBooleanFalse(Object o) {
122- return o == false;
155+ boolean booleanDoubleEqualsBooleanFalse(boolean b) {
156+ return b == false;
157+ }
158+
159+ boolean booleanTrueDoubleEqualsBoolean(boolean b) {
160+ return true == b;
161+ }
162+
163+ boolean booleanFalseDoubleEqualsBoolean(boolean b) {
164+ return false == b;
123165 }
124166 }
125167 """ )
126168 .doTest ();
127169 }
170+
171+ @ Test
172+ public void boxedBooleanDoubleEqualsBooleanLiteral () {
173+ refactoringHelper
174+ .addInputLines (
175+ "Test.java" ,
176+ """
177+ class Test {
178+ boolean booleanDoubleEqualsBooleanTrue(Boolean b) {
179+ return b == Boolean.TRUE;
180+ }
181+
182+ boolean booleanDoubleEqualsBooleanFalse(Boolean b) {
183+ return b == Boolean.FALSE;
184+ }
185+
186+ boolean booleanTrueDoubleEqualsBoolean(Boolean b) {
187+ return Boolean.TRUE == b;
188+ }
189+
190+ boolean booleanFalseDoubleEqualsBoolean(Boolean b) {
191+ return Boolean.FALSE == b;
192+ }
193+ }
194+ """ )
195+ .expectUnchanged ()
196+ .doTest ();
197+ }
198+
199+ @ Test
200+ public void boxedResult () {
201+ refactoringHelper
202+ .allowBreakingChanges ()
203+ .addInputLines (
204+ "Test.java" ,
205+ """
206+ class Test {
207+ Boolean f() {
208+ Boolean foo = null;
209+ Boolean b = true ? foo : Boolean.TRUE;
210+ return b;
211+ }
212+ }
213+ """ )
214+ .expectUnchanged ()
215+ .doTest ();
216+ }
128217}
0 commit comments