| // Copyright (c) 2018, 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 intrinsics | 
 |  | 
 | import java.lang.reflect.InvocationTargetException | 
 |  | 
 | fun main(args: Array<String>) { | 
 |     testParameterNullCheck() | 
 | } | 
 |  | 
 | fun expectsNonNullParameters(a: String, b: String): String = a + b | 
 |  | 
 | fun testParameterNullCheck() { | 
 |     println("> ${expectsNonNullParameters("pre", "post")} <") | 
 |  | 
 |     val intrinsics = Class.forName("intrinsics.IntrinsicsKt") | 
 |     val method = intrinsics.getMethod( | 
 |             "expectsNonNullParameters", String::class.java, String::class.java) | 
 |  | 
 |     println("> ${method.invoke(null, "pre", "post")} <") | 
 |  | 
 |     try { | 
 |         println("> ${method.invoke(null, "pre", null)} <") | 
 |     } catch (e: InvocationTargetException) { | 
 |         println("> exception: ${e.targetException::javaClass} <") | 
 |         return | 
 |     } | 
 |     throw AssertionError() | 
 | } | 
 |  |