blob: 5092d2cb2a88e4666af4f5fe0eb95c2224746d5f (
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/* __ *\
** ________ ___ / / ___ __ ____ Scala.js IR **
** / __/ __// _ | / / / _ | __ / // __/ (c) 2014, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ |/_// /_\ \ http://scala-js.org/ **
** /____/\___/_/ |_/____/_/ | |__/ /____/ **
** |/____/ **
\* */
package scala.scalajs.ir
import scala.annotation.switch
sealed abstract class ClassKind {
import ClassKind._
def isClass = this match {
case Class | ModuleClass => true
case _ => false
}
def isType = this match {
case TraitImpl => false
case _ => true
}
}
object ClassKind {
case object Class extends ClassKind
case object ModuleClass extends ClassKind
case object Interface extends ClassKind
case object RawJSType extends ClassKind
case object HijackedClass extends ClassKind
case object TraitImpl extends ClassKind
private[ir] def toByte(kind: ClassKind): Byte = kind match {
case ClassKind.Class => 1
case ClassKind.ModuleClass => 2
case ClassKind.Interface => 3
case ClassKind.RawJSType => 4
case ClassKind.HijackedClass => 5
case ClassKind.TraitImpl => 6
}
private[ir] def fromByte(b: Byte): ClassKind = (b: @switch) match {
case 1 => ClassKind.Class
case 2 => ClassKind.ModuleClass
case 3 => ClassKind.Interface
case 4 => ClassKind.RawJSType
case 5 => ClassKind.HijackedClass
case 6 => ClassKind.TraitImpl
}
}
|