title: Why isn't a Kotlin const val recognized as compile-time constant when indirectly referenced?
body: <p>Say I've got a class</p>
  
  <pre><code>@SomeAnnotation(someValue = A_CONST_VAL)
  class SomeClass {
      companion object {
          const val A_CONST_VAL = "a constant value"
      }
      ...
  }
  </code></pre>
  
  <p>The above compiles fine - no issues. However, if I want to use <code>A_CONST_VAL</code> in a constants file...</p>
  
  <pre><code>import some.package.SomeClass.A_CONST_VAL
  
  object SomeConstants {
      const val CONSTRUCTED_CONST_VAL = "some stuff ${A_CONST_VAL}"
  }
  </code></pre>
  
  <p>and use <code>CONSTRUCTED_CONST_VAL</code> as the compile-time annotation value, such that the previous class is now</p>
  
  <pre><code>@SomeAnnotation(someValue = SomeConstants.CONSTRUCTED_CONST_VAL)
  class SomeClass {
      companion object {
          const val A_CONST_VAL = "a constant value"
      }
      ...
  }
  </code></pre>
  
  <p>The compiler thinks that the supplied annotation value is not a compile-time constant.</p>
  
  <p>What gives?</p>
  
  <p>Note: I've also tried implementing the file holding constants as Java, just to see if it worked </p>
  
  <pre><code>class SomeConstants {
      public static final String CONSTRUCTED_CONST_VAL = "a constant value" + SomeClass.A_CONST_VAL;
  }
  </code></pre>
  
  <p>still a compilation failure</p>