/* * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ /* * @test * @bug 4869233 4872709 4868735 4921949 4921209 4965701 4934916 4975565 4974939 * @summary Boxing/unboxing positive unit and regression tests * @author gafter * * @compile -source 1.5 Boxing1.java * @run main Boxing1 */ public class Boxing1 { static Boolean _Boolean = true; static boolean _boolean = _Boolean; static Byte _Byte = (byte)3; static byte _byte = _Byte; static Character _Character = 'a'; static char _char = _Character; static Short _Short = (short)4; static short _short = _Short; static Integer _Integer = 5; static int _int = _Integer; static Long _Long = 12L; static long _long = _Long; static Float _Float = 1.2f; static float _float = _Float; static Double _Double = 1.34; static double _double = _Double; public static void main(String[] args) { _Double = _Integer + _Integer + 0.0d; if (_Double != 10) throw new Error(); _Integer = 2; _float = _Integer; if (_float != 2.0f) throw new Error(); _int = 12; _Float = _int + 0.0f; if (_Float != 12.0f) throw new Error(); _Integer = 8; _float = (float)_Integer; if (_float != 8.0f) throw new Error(); _int = 9; _Float = (Float)(_int + 0.0f); if (_Float != 9.0f) throw new Error(); if (_Boolean) ; else throw new Error(); if (!_Boolean) throw new Error(); if (_Integer >= _Long) throw new Error(); _Character = 'a'; String s1 = ("_" + _Character + "_").intern(); if (s1 != "_a_") throw new Error(s1); /* assignment operators don't work; see 4921209 */ if (_Integer++ != 8) throw new Error(); if (_Integer++ != 9) throw new Error(); if (++_Integer != 11) throw new Error(); if ((_Integer += 3) != 14) throw new Error(); if ((_Integer -= 3) != 11) throw new Error(); Integer i = 0; i = i + 2; i += 2; if (i != 4) throw new Error(); int j = 0; j += i; if (j != 4) throw new Error(); Integer a[] = new Integer[1]; a[0] = 3; a[0] += 3; if (a[0] != 6) throw new Error(); Froobie x = new Froobie(); Froobie y = new Froobie(); x.next = y; x.next.i = 4; x.next.i += 4; if (--x.next.i != 7) throw new Error(); if (x.next.i-- != 7) throw new Error(); if (x.next.i != 6) throw new Error(); boxIndex(); boxArray(); } static void boxIndex() { String[] a = { "hello", "world" }; Integer i = 0; System.out.println(a[i]); } static void boxArray() { Integer[] a2 = { 0, 1, 2, 3 }; for (int i : a2) System.out.println(i); } static class Froobie { Froobie next = null; Integer i = 1; } static class Scott { Integer i[]; Integer j[]; Integer k; int q = i[j[k]]++; } class T4974939 { void f() { Byte b = 12; Byte c = 'a'; Short s = 'b'; Short t = 12; Character d = 12; } } }