| // Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| package rewrite; |
| |
| import java.util.Objects; |
| |
| public class RequireNonNull { |
| |
| public static void main(String[] args) { |
| RequireNonNull o = new RequireNonNull(); |
| System.out.println(o.nonnullRemove().toString()); |
| System.out.println(o.nonnullRemove(o).toString()); |
| o.nonnullWithPhiInstruction(true, o); |
| o.nonnullWithPhiInstruction(false, o); |
| } |
| |
| private Object nonnullRemove() { |
| return Objects.requireNonNull(this); |
| } |
| |
| private Object nonnullRemove(Object o) { |
| Objects.requireNonNull(o); |
| return o; |
| } |
| |
| private void nonnullWithPhiInstruction(boolean b, Object input) { |
| Object o = null; |
| if (b) { |
| o = Objects.requireNonNull(input); |
| } |
| System.out.println(o); |
| } |
| |
| @Override |
| public String toString() { |
| return "toString"; |
| } |
| } |