From 62ffacab09fb873b90a37e8543a92b19293f956c Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 6 Sep 2018 20:57:14 +0300 Subject: [PATCH] Raise deprecation level for jsClass functions Suppress error in tests #KT-21703 --- js/js.translator/testData/box/reflection/jsClass.kt | 1 + js/js.translator/testData/box/reflection/jsClassName.kt | 2 ++ .../testData/box/reflection/jsClassOnReifiedType.kt | 2 ++ .../testData/box/reflection/jsClassOnReifiedTypeInLambda.kt | 2 ++ js/js.translator/testData/box/reflection/jsClassSimpleName.kt | 2 ++ libraries/stdlib/js/src/kotlin/reflect/JsClass.kt | 4 ++-- 6 files changed, 11 insertions(+), 2 deletions(-) diff --git a/js/js.translator/testData/box/reflection/jsClass.kt b/js/js.translator/testData/box/reflection/jsClass.kt index f4d1ebf6213..1368850954d 100644 --- a/js/js.translator/testData/box/reflection/jsClass.kt +++ b/js/js.translator/testData/box/reflection/jsClass.kt @@ -1,6 +1,7 @@ // EXPECTED_REACHABLE_NODES: 1169 package foo +@Suppress("DEPRECATION_ERROR") fun box(): String { check(jsClass(), A().jsClass) check(jsClass(), B().jsClass) diff --git a/js/js.translator/testData/box/reflection/jsClassName.kt b/js/js.translator/testData/box/reflection/jsClassName.kt index 88ca76e9876..c8521516c45 100644 --- a/js/js.translator/testData/box/reflection/jsClassName.kt +++ b/js/js.translator/testData/box/reflection/jsClassName.kt @@ -2,6 +2,7 @@ // EXPECTED_REACHABLE_NODES: 1174 package foo +@Suppress("DEPRECATION_ERROR") fun testWithInstance() { assertEquals("A", A().jsClass.name) assertEquals("B", B().jsClass.name) @@ -13,6 +14,7 @@ fun testWithInstance() { assertEquals("R", R().jsClass.name) } +@Suppress("DEPRECATION_ERROR") fun testWithClassReference() { assertEquals("A", jsClass().name) assertEquals("B", jsClass().name) diff --git a/js/js.translator/testData/box/reflection/jsClassOnReifiedType.kt b/js/js.translator/testData/box/reflection/jsClassOnReifiedType.kt index 8488e739897..94a44586aff 100644 --- a/js/js.translator/testData/box/reflection/jsClassOnReifiedType.kt +++ b/js/js.translator/testData/box/reflection/jsClassOnReifiedType.kt @@ -1,11 +1,13 @@ // EXPECTED_REACHABLE_NODES: 1165 package foo +@Suppress("DEPRECATION_ERROR") inline fun foo(): JsClass { val T = 1 return jsClass() } +@Suppress("DEPRECATION_ERROR") fun box(): String { check(jsClass(), foo()) check(jsClass(), foo()) diff --git a/js/js.translator/testData/box/reflection/jsClassOnReifiedTypeInLambda.kt b/js/js.translator/testData/box/reflection/jsClassOnReifiedTypeInLambda.kt index f32eed95c85..5c2308f953d 100644 --- a/js/js.translator/testData/box/reflection/jsClassOnReifiedTypeInLambda.kt +++ b/js/js.translator/testData/box/reflection/jsClassOnReifiedTypeInLambda.kt @@ -2,11 +2,13 @@ // EXPECTED_REACHABLE_NODES: 1167 package foo +@Suppress("DEPRECATION_ERROR") inline fun foo(): () -> JsClass { val T = 1 return { jsClass() } } +@Suppress("DEPRECATION_ERROR") fun box(): String { check(jsClass(), foo()()) check(jsClass(), foo()()) diff --git a/js/js.translator/testData/box/reflection/jsClassSimpleName.kt b/js/js.translator/testData/box/reflection/jsClassSimpleName.kt index a96013539d3..528f6ac8972 100644 --- a/js/js.translator/testData/box/reflection/jsClassSimpleName.kt +++ b/js/js.translator/testData/box/reflection/jsClassSimpleName.kt @@ -9,6 +9,7 @@ class Outer { inner class Inner } +@Suppress("DEPRECATION_ERROR") fun testWithInstance() { assertEquals("A", A().jsClass.simpleName) assertEquals("B", B().jsClass.simpleName) @@ -22,6 +23,7 @@ fun testWithInstance() { assertEquals("Inner", Outer().Inner().jsClass.simpleName) } +@Suppress("DEPRECATION_ERROR") fun testWithClassReference() { assertEquals("A", jsClass().simpleName) assertEquals("B", jsClass().simpleName) diff --git a/libraries/stdlib/js/src/kotlin/reflect/JsClass.kt b/libraries/stdlib/js/src/kotlin/reflect/JsClass.kt index 72ad6e690da..4e887123e22 100644 --- a/libraries/stdlib/js/src/kotlin/reflect/JsClass.kt +++ b/libraries/stdlib/js/src/kotlin/reflect/JsClass.kt @@ -19,10 +19,10 @@ external interface JsClass { val name: String } -@Deprecated("Use class literal and extension property `js` instead.", replaceWith = ReplaceWith("T::class.js"), level = DeprecationLevel.WARNING) +@Deprecated("Use class literal and extension property `js` instead.", replaceWith = ReplaceWith("T::class.js"), level = DeprecationLevel.ERROR) external fun jsClass(): JsClass -@Deprecated("Use class literal and extension property `js` instead.", replaceWith = ReplaceWith("this::class.js"), level = DeprecationLevel.WARNING) +@Deprecated("Use class literal and extension property `js` instead.", replaceWith = ReplaceWith("this::class.js"), level = DeprecationLevel.ERROR) val T.jsClass: JsClass get() = when (jsTypeOf(this)) { "string" -> js("String")