From 74dce725cc1b8dedc36469a804c5966692dc1f87 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Mon, 31 Aug 2020 13:34:22 +0700 Subject: [PATCH] [Commonizer] Tests for missed supertypes in commonized type aliases ^KT-41247 --- .../commonized/common/package_kotlinx_cinterop.kt | 5 +++++ .../typeAliases/commonized/common/package_root.kt | 3 +++ .../typeAliases/commonized/linux/package_kotlinx_cinterop.kt | 5 +++++ .../typeAliases/commonized/{js => linux}/package_root.kt | 4 ++++ .../typeAliases/commonized/macos/package_kotlinx_cinterop.kt | 5 +++++ .../typeAliases/commonized/{jvm => macos}/package_root.kt | 4 ++++ .../typeAliases/original/linux/package_kotlinx_cinterop.kt | 5 +++++ .../typeAliases/original/{js => linux}/package_root.kt | 4 ++++ .../typeAliases/original/macos/package_kotlinx_cinterop.kt | 5 +++++ .../typeAliases/original/{jvm => macos}/package_root.kt | 4 ++++ 10 files changed, 44 insertions(+) create mode 100644 native/commonizer/testData/classifierCommonization/typeAliases/commonized/common/package_kotlinx_cinterop.kt create mode 100644 native/commonizer/testData/classifierCommonization/typeAliases/commonized/linux/package_kotlinx_cinterop.kt rename native/commonizer/testData/classifierCommonization/typeAliases/commonized/{js => linux}/package_root.kt (86%) create mode 100644 native/commonizer/testData/classifierCommonization/typeAliases/commonized/macos/package_kotlinx_cinterop.kt rename native/commonizer/testData/classifierCommonization/typeAliases/commonized/{jvm => macos}/package_root.kt (87%) create mode 100644 native/commonizer/testData/classifierCommonization/typeAliases/original/linux/package_kotlinx_cinterop.kt rename native/commonizer/testData/classifierCommonization/typeAliases/original/{js => linux}/package_root.kt (94%) create mode 100644 native/commonizer/testData/classifierCommonization/typeAliases/original/macos/package_kotlinx_cinterop.kt rename native/commonizer/testData/classifierCommonization/typeAliases/original/{jvm => macos}/package_root.kt (94%) diff --git a/native/commonizer/testData/classifierCommonization/typeAliases/commonized/common/package_kotlinx_cinterop.kt b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/common/package_kotlinx_cinterop.kt new file mode 100644 index 00000000000..97a70aad3af --- /dev/null +++ b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/common/package_kotlinx_cinterop.kt @@ -0,0 +1,5 @@ +// this is to avoid missing Kotlin/Native stdlib +package kotlinx.cinterop + +// fake class with the default constructor and no member scope +public abstract class CStructVar() diff --git a/native/commonizer/testData/classifierCommonization/typeAliases/commonized/common/package_root.kt b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/common/package_root.kt index 3b19acb9b33..e2b24c5e726 100644 --- a/native/commonizer/testData/classifierCommonization/typeAliases/commonized/common/package_root.kt +++ b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/common/package_root.kt @@ -28,3 +28,6 @@ typealias U = A // same nullability of the RHS class expect class V // different nullability of the RHS class typealias W = A // same nullability of the RHS TA typealias Y = V // TA at the RHS with the different nullability of own RHS + +// Supertypes: +expect class FILE : kotlinx.cinterop.CStructVar diff --git a/native/commonizer/testData/classifierCommonization/typeAliases/commonized/linux/package_kotlinx_cinterop.kt b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/linux/package_kotlinx_cinterop.kt new file mode 100644 index 00000000000..97a70aad3af --- /dev/null +++ b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/linux/package_kotlinx_cinterop.kt @@ -0,0 +1,5 @@ +// this is to avoid missing Kotlin/Native stdlib +package kotlinx.cinterop + +// fake class with the default constructor and no member scope +public abstract class CStructVar() diff --git a/native/commonizer/testData/classifierCommonization/typeAliases/commonized/js/package_root.kt b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/linux/package_root.kt similarity index 86% rename from native/commonizer/testData/classifierCommonization/typeAliases/commonized/js/package_root.kt rename to native/commonizer/testData/classifierCommonization/typeAliases/commonized/linux/package_root.kt index fb2f7ed4e66..f4fafe51685 100644 --- a/native/commonizer/testData/classifierCommonization/typeAliases/commonized/js/package_root.kt +++ b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/linux/package_root.kt @@ -16,3 +16,7 @@ actual typealias T = Int // Nullability: actual typealias V = A? // different nullability of the RHS class typealias X = U? // different nullability of the RHS TA + +// Supertypes: +actual typealias FILE = _IO_FILE +final class _IO_FILE : kotlinx.cinterop.CStructVar {} diff --git a/native/commonizer/testData/classifierCommonization/typeAliases/commonized/macos/package_kotlinx_cinterop.kt b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/macos/package_kotlinx_cinterop.kt new file mode 100644 index 00000000000..97a70aad3af --- /dev/null +++ b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/macos/package_kotlinx_cinterop.kt @@ -0,0 +1,5 @@ +// this is to avoid missing Kotlin/Native stdlib +package kotlinx.cinterop + +// fake class with the default constructor and no member scope +public abstract class CStructVar() diff --git a/native/commonizer/testData/classifierCommonization/typeAliases/commonized/jvm/package_root.kt b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/macos/package_root.kt similarity index 87% rename from native/commonizer/testData/classifierCommonization/typeAliases/commonized/jvm/package_root.kt rename to native/commonizer/testData/classifierCommonization/typeAliases/commonized/macos/package_root.kt index 907f7893e33..0acee50ce05 100644 --- a/native/commonizer/testData/classifierCommonization/typeAliases/commonized/jvm/package_root.kt +++ b/native/commonizer/testData/classifierCommonization/typeAliases/commonized/macos/package_root.kt @@ -16,3 +16,7 @@ actual typealias T = String // Nullability: actual typealias V = A // different nullability of the RHS class typealias X = U // different nullability of the RHS TA + +// Supertypes: +actual typealias FILE = __sFILE +final class __sFILE : kotlinx.cinterop.CStructVar {} diff --git a/native/commonizer/testData/classifierCommonization/typeAliases/original/linux/package_kotlinx_cinterop.kt b/native/commonizer/testData/classifierCommonization/typeAliases/original/linux/package_kotlinx_cinterop.kt new file mode 100644 index 00000000000..97a70aad3af --- /dev/null +++ b/native/commonizer/testData/classifierCommonization/typeAliases/original/linux/package_kotlinx_cinterop.kt @@ -0,0 +1,5 @@ +// this is to avoid missing Kotlin/Native stdlib +package kotlinx.cinterop + +// fake class with the default constructor and no member scope +public abstract class CStructVar() diff --git a/native/commonizer/testData/classifierCommonization/typeAliases/original/js/package_root.kt b/native/commonizer/testData/classifierCommonization/typeAliases/original/linux/package_root.kt similarity index 94% rename from native/commonizer/testData/classifierCommonization/typeAliases/original/js/package_root.kt rename to native/commonizer/testData/classifierCommonization/typeAliases/original/linux/package_root.kt index ea81e6175a0..0c59bf287db 100644 --- a/native/commonizer/testData/classifierCommonization/typeAliases/original/js/package_root.kt +++ b/native/commonizer/testData/classifierCommonization/typeAliases/original/linux/package_root.kt @@ -36,3 +36,7 @@ typealias V = A? // different nullability of the RHS class typealias W = U // same nullability of the RHS TA typealias X = U? // different nullability of the RHS TA typealias Y = V // TA at the RHS with the different nullability of own RHS + +// Supertypes: +typealias FILE = _IO_FILE +final class _IO_FILE : kotlinx.cinterop.CStructVar {} diff --git a/native/commonizer/testData/classifierCommonization/typeAliases/original/macos/package_kotlinx_cinterop.kt b/native/commonizer/testData/classifierCommonization/typeAliases/original/macos/package_kotlinx_cinterop.kt new file mode 100644 index 00000000000..97a70aad3af --- /dev/null +++ b/native/commonizer/testData/classifierCommonization/typeAliases/original/macos/package_kotlinx_cinterop.kt @@ -0,0 +1,5 @@ +// this is to avoid missing Kotlin/Native stdlib +package kotlinx.cinterop + +// fake class with the default constructor and no member scope +public abstract class CStructVar() diff --git a/native/commonizer/testData/classifierCommonization/typeAliases/original/jvm/package_root.kt b/native/commonizer/testData/classifierCommonization/typeAliases/original/macos/package_root.kt similarity index 94% rename from native/commonizer/testData/classifierCommonization/typeAliases/original/jvm/package_root.kt rename to native/commonizer/testData/classifierCommonization/typeAliases/original/macos/package_root.kt index d15760dc16a..d30790598a0 100644 --- a/native/commonizer/testData/classifierCommonization/typeAliases/original/jvm/package_root.kt +++ b/native/commonizer/testData/classifierCommonization/typeAliases/original/macos/package_root.kt @@ -36,3 +36,7 @@ typealias V = A // different nullability of the RHS class typealias W = U // same nullability of the RHS TA typealias X = U // different nullability of the RHS TA typealias Y = V // TA at the RHS with the different nullability of own RHS + +// Supertypes: +typealias FILE = __sFILE +final class __sFILE : kotlinx.cinterop.CStructVar {}