@@ -7,25 +7,28 @@ object TermNameInference {
77
88 /** Single character names for types. (`Int` => `i`, `i1`, `i2`, ...) */
99 def singleLetterNameStream (typeName : String ): LazyList [String ] = {
10- val typeName1 = sanitizeInput(typeName)
11- val firstCharStr = typeName1.headOption.getOrElse('x' ).toLower.toString
12- numberedStreamFromName(firstCharStr)
10+ sanitizeInput(typeName).fold(saneNamesStream) { typeName1 =>
11+ val firstCharStr = typeName1.headOption.getOrElse('x' ).toLower.toString
12+ numberedStreamFromName(firstCharStr)
13+ }
1314 }
1415
1516 /** Names only from upper case letters (`OnDemandSymbolIndex` => `odsi`, `odsi1`, `odsi2`, ...) */
1617 def shortNameStream (typeName : String ): LazyList [String ] = {
17- val typeName1 = sanitizeInput(typeName)
18- val upperCases = typeName1.filter(_.isUpper).map(_.toLower)
19- val name = if (upperCases.isEmpty) typeName1 else upperCases
20- numberedStreamFromName(name)
18+ sanitizeInput(typeName).fold(saneNamesStream) { typeName1 =>
19+ val upperCases = typeName1.filter(_.isUpper).map(_.toLower)
20+ val name = if (upperCases.isEmpty) typeName1 else upperCases
21+ numberedStreamFromName(name)
22+ }
2123 }
2224
2325 /** Names from lower case letters (`OnDemandSymbolIndex` => `onDemandSymbolIndex`, `onDemandSymbolIndex1`, ...) */
2426 def fullNameStream (typeName : String ): LazyList [String ] = {
25- val typeName1 = sanitizeInput(typeName)
26- val withFirstLower =
27- typeName1.headOption.map(_.toLower).getOrElse('x' ).toString + typeName1.drop(1 )
28- numberedStreamFromName(withFirstLower)
27+ sanitizeInput(typeName).fold(saneNamesStream) { typeName1 =>
28+ val withFirstLower =
29+ typeName1.headOption.map(_.toLower).getOrElse('x' ).toString + typeName1.drop(1 )
30+ numberedStreamFromName(withFirstLower)
31+ }
2932 }
3033
3134 /** A lazy list of names: a, b, ..., z, aa, ab, ..., az, ba, bb, ... */
@@ -42,8 +45,9 @@ object TermNameInference {
4245 loop(" a" )
4346 }
4447
45- private def sanitizeInput (typeName : String ): String =
46- typeName.filter(_.isLetterOrDigit)
48+ private def sanitizeInput (typeName : String ): Option [String ] =
49+ val typeName1 = typeName.filter(_.isLetterOrDigit)
50+ Option .when(typeName1.nonEmpty)(typeName1)
4751
4852 private def numberedStreamFromName (name : String ): LazyList [String ] = {
4953 val rest = LazyList .from(1 ).map(name + _)
0 commit comments