Skip to content

Commit cf24b55

Browse files
authoredOct 17, 2021
Merge pull request #603 from scala-js/topic/opaque-subtyping
Make opaque string types subtype String
2 parents 44e3cba + 42d6218 commit cf24b55

39 files changed

+41
-41
lines changed
 

‎src/main/scala-3/org/scalajs/dom/AppendMode.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.scalajs.dom
22

3-
opaque type AppendMode = String
3+
opaque type AppendMode <: String = String
44

55
object AppendMode {
66
val segments: AppendMode = "segments"

‎src/main/scala-3/org/scalajs/dom/ClientType.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package org.scalajs.dom
22

33
import scala.scalajs.js
44

5-
opaque type ClientType = String
5+
opaque type ClientType <: String = String
66

77
object ClientType {
88
val window: ClientType = "window"

‎src/main/scala-3/org/scalajs/dom/EndOfStreamError.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.scalajs.dom
22

3-
opaque type EndOfStreamError = String
3+
opaque type EndOfStreamError <: String = String
44

55
object EndOfStreamError {
66
val decode: EndOfStreamError = "decode"

‎src/main/scala-3/org/scalajs/dom/FrameType.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package org.scalajs.dom
22

33
import scala.scalajs.js
44

5-
opaque type FrameType = String
5+
opaque type FrameType <: String = String
66

77
/** part of ServiceWorker
88
* [[https://slightlyoff.github.io/ServiceWorker/spec/service_worker_1/#client-frametype ¶4.2.2 frameType]] of

‎src/main/scala-3/org/scalajs/dom/IDBTransactionDurability.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ package org.scalajs.dom
88

99
import scala.scalajs.js
1010

11-
opaque type IDBTransactionDurability = String
11+
opaque type IDBTransactionDurability <: String = String
1212

1313
object IDBTransactionDurability {
1414
val default: IDBTransactionDurability = "default"

‎src/main/scala-3/org/scalajs/dom/IDBTransactionMode.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import scala.scalajs.js
1111
/** IndexedDB transaction mode Provides constants for IDB Transaction modes These constants have been removed from
1212
* browser support and replaced by String values
1313
*/
14-
opaque type IDBTransactionMode = String
14+
opaque type IDBTransactionMode <: String = String
1515

1616
object IDBTransactionMode {
1717

‎src/main/scala-3/org/scalajs/dom/KeyFormat.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.scalajs.dom
33
import scala.scalajs.js
44

55
/** see [[http://www.w3.org/TR/WebCryptoAPI/#dfn-KeyFormat ¶14.2 Data Types]] in W3C spec */
6-
opaque type KeyFormat = String
6+
opaque type KeyFormat <: String = String
77

88
object KeyFormat {
99

‎src/main/scala-3/org/scalajs/dom/KeyType.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.scalajs.dom
33
import scala.scalajs.js
44

55
/** see [[http://www.w3.org/TR/WebCryptoAPI/#cryptokey-interface ¶13 CryptoKey interface]] in W3C doc */
6-
opaque type KeyType = String
6+
opaque type KeyType <: String = String
77

88
object KeyType {
99
val public: KeyType = "public"

‎src/main/scala-3/org/scalajs/dom/KeyUsage.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.scalajs.dom
33
import scala.scalajs.js
44

55
/** See [[http://www.w3.org/TR/WebCryptoAPI/#cryptokey-interface ¶ 13. CryptoKey Interface]] of w3c spec */
6-
opaque type KeyUsage = String
6+
opaque type KeyUsage <: String = String
77

88
object KeyUsage {
99
val encrypt: KeyUsage = "encrypt"

‎src/main/scala-3/org/scalajs/dom/MIMEType.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package org.scalajs.dom
22

33
import scala.scalajs.js
44

5-
opaque type MIMEType = String
5+
opaque type MIMEType <: String = String
66

77
object MIMEType {
88
val `text/html`: MIMEType = "text/html"

‎src/main/scala-3/org/scalajs/dom/MediaDeviceKind.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package org.scalajs.dom
44
import scala.scalajs.js
55

66
/** see [[https://www.w3.org/TR/2016/CR-mediacapture-streams-20160519/#idl-def-MediaDeviceKind]] in W3C spec */
7-
opaque type MediaDeviceKind = String
7+
opaque type MediaDeviceKind <: String = String
88

99
object MediaDeviceKind {
1010

‎src/main/scala-3/org/scalajs/dom/MediaStreamTrackState.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package org.scalajs.dom
44
import scala.scalajs.js
55

66
/** see [[https://www.w3.org/TR/2013/WD-mediacapture-streams-20130903/#widl-MediaStream-onended]] in W3C spec */
7-
opaque type MediaStreamTrackState = String
7+
opaque type MediaStreamTrackState <: String = String
88

99
object MediaStreamTrackState {
1010

‎src/main/scala-3/org/scalajs/dom/PermissionName.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package org.scalajs.dom
22

33
import scala.scalajs.js
44

5-
opaque type PermissionName = String
5+
opaque type PermissionName <: String = String
66

77
object PermissionName {
88
val geolocation: PermissionName = "geolocation"

‎src/main/scala-3/org/scalajs/dom/PermissionState.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package org.scalajs.dom
22

33
import scala.scalajs.js
44

5-
opaque type PermissionState = String
5+
opaque type PermissionState <: String = String
66

77
object PermissionState {
88
val granted: PermissionState = "granted"

‎src/main/scala-3/org/scalajs/dom/PushEncryptionKeyName.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import scala.scalajs.js
55
/** This represents a JavaScript enumeration representing the various keys you an request from a [[PushSubscription]] as
66
* described here: [[http://www.w3.org/TR/push-api/#idl-def-PushEncryptionKeyName]]
77
*/
8-
opaque type PushEncryptionKeyName = String
8+
opaque type PushEncryptionKeyName <: String = String
99

1010
/** Static definitions for [[PushEncryptionKeyName]] */
1111
object PushEncryptionKeyName {

‎src/main/scala-3/org/scalajs/dom/PushPermissionState.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import scala.scalajs.js
55
/** This represents a JavaScript enumeration describing the state of permissions for pushing described here:
66
* [[http://www.w3.org/TR/push-api/#idl-def-PushPermissionState]]
77
*/
8-
opaque type PushPermissionState = String
8+
opaque type PushPermissionState <: String = String
99

1010
/** Static definitions for [[PushPermissionState]] */
1111
object PushPermissionState {

‎src/main/scala-3/org/scalajs/dom/RTCBundlePolicy.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package org.scalajs.dom
44
import scala.scalajs.js
55

66
/** see [[https://www.w3.org/TR/2015/WD-webrtc-20150210/#idl-def-RTCBundlePolicy]] in W3C spec */
7-
opaque type RTCBundlePolicy = String
7+
opaque type RTCBundlePolicy <: String = String
88

99
object RTCBundlePolicy {
1010

‎src/main/scala-3/org/scalajs/dom/RTCDataChannelState.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package org.scalajs.dom
44
import scala.scalajs.js
55

66
/** see [[https://www.w3.org/TR/2015/WD-webrtc-20150210/#idl-def-RTCDataChannelState]] in W3C spec */
7-
opaque type RTCDataChannelState = String
7+
opaque type RTCDataChannelState <: String = String
88

99
object RTCDataChannelState {
1010

‎src/main/scala-3/org/scalajs/dom/RTCIceConnectionState.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package org.scalajs.dom
44
import scala.scalajs.js
55

66
/** see [[https://www.w3.org/TR/2015/WD-webrtc-20150210/#rtciceconnectionstate-enum]] in W3C spec */
7-
opaque type RTCIceConnectionState = String
7+
opaque type RTCIceConnectionState <: String = String
88

99
object RTCIceConnectionState {
1010

‎src/main/scala-3/org/scalajs/dom/RTCIceGatheringState.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.scalajs.dom
33

44
import scala.scalajs.js
55

6-
opaque type RTCIceGatheringState = String
6+
opaque type RTCIceGatheringState <: String = String
77

88
object RTCIceGatheringState {
99

‎src/main/scala-3/org/scalajs/dom/RTCIceTransportPolicy.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package org.scalajs.dom
44
import scala.scalajs.js
55

66
/** see [[https://www.w3.org/TR/2015/WD-webrtc-20150210/#idl-def-RTCIceTransportPolicy]] in W3C spec */
7-
opaque type RTCIceTransportPolicy = String
7+
opaque type RTCIceTransportPolicy <: String = String
88

99
object RTCIceTransportPolicy {
1010

‎src/main/scala-3/org/scalajs/dom/RTCSdpType.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package org.scalajs.dom
44
import scala.scalajs.js
55

66
/** see [[https://www.w3.org/TR/2015/WD-webrtc-20150210/#idl-def-RTCSdpType]] in W3C spec */
7-
opaque type RTCSdpType = String
7+
opaque type RTCSdpType <: String = String
88

99
object RTCSdpType {
1010

‎src/main/scala-3/org/scalajs/dom/RTCSignalingState.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.scalajs.dom
33

44
import scala.scalajs.js
55

6-
opaque type RTCSignalingState = String
6+
opaque type RTCSignalingState <: String = String
77

88
object RTCSignalingState {
99

‎src/main/scala-3/org/scalajs/dom/RTCStatsType.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package org.scalajs.dom
44
import scala.scalajs.js
55

66
/** see [[https://www.w3.org/TR/2015/WD-webrtc-20150210/#idl-def-RTCStatsType]] in W3C spec */
7-
opaque type RTCStatsType = String
7+
opaque type RTCStatsType <: String = String
88

99
object RTCStatsType {
1010

‎src/main/scala-3/org/scalajs/dom/ReadyState.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.scalajs.dom
22

3-
opaque type ReadyState = String
3+
opaque type ReadyState <: String = String
44

55
object ReadyState {
66
val closed: ReadyState = "closed"

‎src/main/scala-3/org/scalajs/dom/ReferrerPolicy.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package org.scalajs.dom
22

33
import scala.scalajs.js
44

5-
opaque type ReferrerPolicy = String
5+
opaque type ReferrerPolicy <: String = String
66

77
object ReferrerPolicy {
88
val empty: ReferrerPolicy = ""

‎src/main/scala-3/org/scalajs/dom/RequestCache.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.scalajs.dom
33
import scala.scalajs.js
44

55
/** Fetch APIs [[https://fetch.spec.whatwg.org/#requestcache RequestCache enum]] */
6-
opaque type RequestCache = String
6+
opaque type RequestCache <: String = String
77

88
object RequestCache {
99
val default: RequestCache = "default"

‎src/main/scala-3/org/scalajs/dom/RequestCredentials.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.scalajs.dom
33
import scala.scalajs.js
44

55
/** Fetch APIs [[https://fetch.spec.whatwg.org/#requestcredentials RequestCredentials enum]] */
6-
opaque type RequestCredentials = String
6+
opaque type RequestCredentials <: String = String
77

88
object RequestCredentials {
99
val omit: RequestCredentials = "omit"

‎src/main/scala-3/org/scalajs/dom/RequestDestination.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.scalajs.dom
33
import scala.scalajs.js
44

55
/** Fetch APIs [[https://fetch.spec.whatwg.org/#requestdestination RequestDestination enum]] */
6-
opaque type RequestDestination = String
6+
opaque type RequestDestination <: String = String
77

88
object RequestDestination {
99
val empty: RequestDestination = ""

‎src/main/scala-3/org/scalajs/dom/RequestMode.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.scalajs.dom
33
import scala.scalajs.js
44

55
/** Fetch API's [[https://fetch.spec.whatwg.org/#requestmode RequestMode enum]] */
6-
opaque type RequestMode = String
6+
opaque type RequestMode <: String = String
77

88
object RequestMode {
99
val navigate: RequestMode = "navigate"

‎src/main/scala-3/org/scalajs/dom/RequestRedirect.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.scalajs.dom
33
import scala.scalajs.js
44

55
/** Fetch API's [[https://fetch.spec.whatwg.org/#requestredirect RequestRedirect enum]] */
6-
opaque type RequestRedirect = String
6+
opaque type RequestRedirect <: String = String
77

88
object RequestRedirect {
99
val follow: RequestRedirect = "follow"

‎src/main/scala-3/org/scalajs/dom/RequestType.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package org.scalajs.dom
33
import scala.scalajs.js
44

55
/** Fetch APIs [[https://fetch.spec.whatwg.org/#requesttype RequestType enum]] */
6-
opaque type RequestType = String
6+
opaque type RequestType <: String = String
77

88
object RequestType {
99
val empty: RequestType = ""

‎src/main/scala-3/org/scalajs/dom/ResponseType.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package org.scalajs.dom
22

33
import scala.scalajs.js
44

5-
opaque type ResponseType = String
5+
opaque type ResponseType <: String = String
66

77
/** see [[https://fetch.spec.whatwg.org/#responsetype]] of whatwg Fetch spec */
88
object ResponseType {

‎src/main/scala-3/org/scalajs/dom/ServiceWorkerState.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import scala.scalajs.js
55
/** See [[https://slightlyoff.github.io/ServiceWorker/spec/service_worker_1/#service-worker-obj ¶3.1 ServiceWorker]] of
66
* ServiceWorker whatwg spec.
77
*/
8-
opaque type ServiceWorkerState = String
8+
opaque type ServiceWorkerState <: String = String
99

1010
object ServiceWorkerState {
1111

‎src/main/scala-3/org/scalajs/dom/TextTrackMode.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.scalajs.dom
22

3-
opaque type TextTrackMode = String
3+
opaque type TextTrackMode <: String = String
44

55
object TextTrackMode {
66
val disabled: TextTrackMode = "disabled"

‎src/main/scala-3/org/scalajs/dom/VisibilityState.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ package org.scalajs.dom
88

99
import scala.scalajs.js
1010

11-
opaque type VisibilityState = String
11+
opaque type VisibilityState <: String = String
1212

1313
object VisibilityState {
1414

‎src/main/scala-3/org/scalajs/dom/WriteableState.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import scala.scalajs.js
55
// the stream API is defined in https://streams.spec.whatwg.org/
66

77
/** [[https://streams.spec.whatwg.org/#ws-state ¶4.2.4.3. get state]] of whatwg streams spec */
8-
opaque type WriteableState = String
8+
opaque type WriteableState <: String = String
99

1010
object WriteableState {
1111

‎src/main/scala/org/scalajs/dom/RTCConfiguration.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ object RTCConfiguration {
3131
peerIdentity: js.UndefOr[String] = js.undefined): RTCConfiguration = {
3232
val result = js.Dynamic.literal()
3333
iceServers.foreach(result.iceServers = _)
34-
iceTransportPolicy.foreach(x => result.iceTransportPolicy = x.asInstanceOf[js.Any])
35-
bundlePolicy.foreach(x => result.bundlePolicy = x.asInstanceOf[js.Any])
36-
peerIdentity.foreach(x => result.peerIdentity = x.asInstanceOf[js.Any])
34+
iceTransportPolicy.foreach(result.iceTransportPolicy = _)
35+
bundlePolicy.foreach(result.bundlePolicy = _)
36+
peerIdentity.foreach(result.peerIdentity = _)
3737
result.asInstanceOf[RTCConfiguration]
3838
}
3939
}

‎src/main/scala/org/scalajs/dom/RTCSessionDescriptionInit.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ object RTCSessionDescriptionInit {
1616
def apply(`type`: js.UndefOr[RTCSdpType] = js.undefined,
1717
sdp: js.UndefOr[String] = js.undefined): RTCSessionDescriptionInit = {
1818
val result = js.Dynamic.literal()
19-
`type`.foreach(x => result.`type` = x.asInstanceOf[js.Any])
19+
`type`.foreach(result.`type` = _)
2020
sdp.foreach(result.sdp = _)
2121
result.asInstanceOf[RTCSessionDescriptionInit]
2222
}

0 commit comments

Comments
 (0)
Failed to load comments.