|  | // 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 regress_37726195; | 
|  |  | 
|  | public class Regress { | 
|  |  | 
|  | // Regression test for issue where aput instructions for different primitive array types | 
|  | // were joined. The art verifier doesn't allow that. | 
|  | public static void set(Object array, int index, byte value) { | 
|  | if (array instanceof float[]) { | 
|  | float[] floats = (float[]) array; | 
|  | floats[index] = value; | 
|  | } else if (array instanceof int[]) { | 
|  | int[] ints = (int[]) array; | 
|  | ints[index] = value; | 
|  | } | 
|  | } | 
|  |  | 
|  | // Regression test for issue where aget instructions for different primitive array types | 
|  | // were joined. The art verifier doesn't allow that. | 
|  | public static void get(Object array, int index) { | 
|  | if (array instanceof float[]) { | 
|  | float[] floats = (float[]) array; | 
|  | float f = floats[index]; | 
|  | } else if (array instanceof int[]) { | 
|  | int[] ints = (int[]) array; | 
|  | int i = ints[index]; | 
|  | } | 
|  | } | 
|  |  | 
|  | public static void main(String[] args) { | 
|  | int[] ints = { 0 }; | 
|  | float[] floats = { 0.0f }; | 
|  | set(ints, 0, (byte) 4); | 
|  | System.out.println(ints[0]); | 
|  | set(floats, 0, (byte) 4); | 
|  | System.out.println(floats[0]); | 
|  | get(ints, 0); | 
|  | get(floats, 0); | 
|  | } | 
|  | } |