| // 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() |
| } |
| |