summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/internal/settings/AbsSettings.scala
blob: 9bbba3f0796827468192ec734235f5d24b1907e4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* NSC -- new Scala compiler
 * Copyright 2005-2011 LAMP/EPFL
 * @author  Paul Phillips
 */

package scala.reflect.internal
package settings

/** A Settings abstraction boiled out of the original highly mutable Settings
 *  class with the intention of creating an ImmutableSettings which can be used
 *  interchangeably.   Except of course without the mutants.
 */

trait AbsSettings {
  type Setting <: AbsSettingValue      // Fix to the concrete Setting type

  trait AbsSettingValue {
    type T <: Any
    def value: T
    def isDefault: Boolean
  }
}