[K/N] Throw exception on abstract class instantiation in ObjC

This commit is contained in:
Pavel Kunyavskiy
2021-09-22 17:22:31 +03:00
committed by Space
parent 68445deae8
commit 5a4a78f2c6
7 changed files with 49 additions and 1 deletions
@@ -5450,6 +5450,14 @@ if (isAppleTarget(project)) {
swiftSources = ['framework/stacktraceByLibbacktrace/']
}
frameworkTest("testAbstractInstantiationFramework") {
framework('AbstractInstantiation') {
sources = ['framework/abstractInstantiation']
}
swiftSources = ['framework/abstractInstantiation/']
expectedExitStatus = 134
}
frameworkTest("testFrameworkBundleId") {
def currentTarget = project.target.name
enabled = currentTarget.startsWith("mac")
@@ -0,0 +1,8 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
public abstract class AbstractBase(val y: Int) {
abstract val x: Int
}
@@ -0,0 +1,18 @@
import Foundation
import AbstractInstantiation
func testInstantiate() throws {
// this is failure test, it shouldn't work
let base = AbstractBase(y: 5)
}
class AbstractInstantiationTests : TestProvider {
var tests: [TestCase] = []
init() {
providers.append(self)
tests = [
TestCase(name: "testInstantiate", method: withAutorelease(testInstantiate))
]
}
}
@@ -2,7 +2,6 @@ import Kt
private func test1() throws {
let user = Person.User(id: 1)
let worker = Person.Worker()
let employee = Person.WorkerEmployee(id: 2)
let contractor = Person.WorkerContractor(id: 3)
let userAsPerson: Person = user