| // 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 class_staticizer |
| |
| private var COUNT = 0 |
| |
| fun next() = "${COUNT++}".padStart(3, '0') |
| |
| fun main(args: Array<String>) { |
| println(Regular.foo) |
| println(Regular.bar) |
| println(Regular.blah(next())) |
| println(Derived.foo) |
| println(Derived.bar) |
| println(Derived.blah(next())) |
| println(Util.foo) |
| println(Util.bar) |
| println(Util.blah(next())) |
| } |
| |
| open class Regular { |
| companion object { |
| var foo: String = "Regular::CC::foo[${next()}]" |
| var bar: String = blah(next()) |
| fun blah(p: String) = "Regular::CC::blah($p)[${next()}]" |
| } |
| } |
| |
| open class Derived : Regular() { |
| companion object { |
| var foo: String = "Derived::CC::foo[${next()}]" |
| var bar: String = blah(next()) |
| fun blah(p: String) = "Derived::CC::blah($p)[${next()}]" |
| } |
| } |
| |
| object Util { |
| var foo: String = "Util::foo[${next()}]" |
| var bar: String = Regular.blah(next()) + Derived.blah(next()) |
| fun blah(p: String) = "Util::blah($p)[${next()}]" |
| } |