/* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ class PurityModeled { double math_random_impure() { return Math.random(); } double math_random_infeasible_pure(int x) { if (x > 1 && x < 2) { return Math.random(); // this path will never be taken } return 0; } void arraycopy_pure_FP(int[] src) { int[] dst = {5, 10, 20, 30, 40, 50}; // copies an array from the specified source array System.arraycopy(src, 0, dst, 0, 1); } public void array_length_loop_pure(Integer[] array) { for (int i = 0; i < array.length; i++) {} } void write_impure() { byte[] temp = new byte[4]; System.out.write(temp, 0, 4); } void call_write_impure() { write_impure(); } int math_random_in_loop_impure(int x) { int p = 0; for (int i = 0; i < x; i++) { p += Math.random(); call_write_impure(); } return p; } }