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