Created
November 12, 2019 22:02
-
-
Save abeln/17f622591da2bdb39575a1081e85f798 to your computer and use it in GitHub Desktop.
Port scopts to explicit nulls
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/jvm/src/main/scala/PlatformReadInstances.scala b/jvm/src/main/scala/PlatformReadInstances.scala | |
index da707c4..73227a7 100644 | |
--- a/jvm/src/main/scala/PlatformReadInstances.scala | |
+++ b/jvm/src/main/scala/PlatformReadInstances.scala | |
@@ -12,7 +12,7 @@ private[scopt] object platform { | |
import java.net.{ InetAddress, URI } | |
type ParseException = java.text.ParseException | |
- def mkParseEx(s: String, p: Int) = new java.text.ParseException(s, p) | |
+ def mkParseEx(s: String | Null, p: Int) = new java.text.ParseException(s, p) | |
trait PlatformReadInstances { | |
def calendarRead(pattern: String): Read[Calendar] = calendarRead(pattern, Locale.getDefault) | |
diff --git a/shared/src/main/scala/scopt/Read.scala b/shared/src/main/scala/scopt/Read.scala | |
index 186580d..94725d7 100644 | |
--- a/shared/src/main/scala/scopt/Read.scala | |
+++ b/shared/src/main/scala/scopt/Read.scala | |
@@ -97,25 +97,25 @@ object Read extends platform.PlatformReadInstances { | |
// reads("1,2,3,4,5") == Seq(1,2,3,4,5) | |
implicit def seqRead[A: Read]: Read[CSeq[A]] = reads { (s: String) => | |
- s.split(sep).toList.map(implicitly[Read[A]].reads) | |
+ s.split(sep).toList.map(x => implicitly[Read[A]].reads(x.nn)) | |
} | |
// reads("1,2,3,4,5") == List(1,2,3,4,5) | |
implicit def immutableSeqRead[A: Read]: Read[ISeq[A]] = reads { (s: String) => | |
- s.split(sep).toList.map(implicitly[Read[A]].reads) | |
+ s.split(sep).toList.map(x => implicitly[Read[A]].reads(x.nn)) | |
} | |
// reads("1=false,2=true") == Map(1 -> false, 2 -> true) | |
implicit def mapRead[K: Read, V: Read]: Read[Map[K, V]] = reads { (s: String) => | |
- s.split(sep).map(implicitly[Read[(K, V)]].reads).toMap | |
+ s.split(sep).map(x => implicitly[Read[(K, V)]].reads(x.nn)).toMap | |
} | |
// reads("1=false,1=true") == List((1 -> false), (1 -> true)) | |
implicit def seqTupleRead[K: Read, V: Read]: Read[CSeq[(K, V)]] = reads { (s: String) => | |
- s.split(sep).map(implicitly[Read[(K, V)]].reads).toList | |
+ s.split(sep).map(x => implicitly[Read[(K, V)]].reads(x.nn)).toList | |
} | |
// reads("1=false,1=true") == List((1 -> false), (1 -> true)) | |
implicit def immutableSeqTupleRead[K: Read, V: Read]: Read[ISeq[(K, V)]] = reads { (s: String) => | |
- s.split(sep).map(implicitly[Read[(K, V)]].reads).toList | |
+ s.split(sep).map(x => implicitly[Read[(K, V)]].reads(x.nn)).toList | |
} | |
implicit def optionRead[A: Read]: Read[Option[A]] = reads { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment