Skip to content

Symbols with non-printable characters produce invalid scoverage.coverage #15384

Closed
@armanbilge

Description

@armanbilge

Compiler version

3.2.0-RC1-bin-20220604-13ce496-NIGHTLY

Minimized code

//> using scala "3.2.0-RC1-bin-20220604-13ce496-NIGHTLY"
//> using option "-coverage-out:."

def `\r\n\f` = ()
@main def main = `\r\n\f`

Output

# Coverage data, format version: 3.0
# Statement data:
# - id
# - source path
# - package name
# - class name
# - class type (Class, Object or Trait)
# - full class name
# - method name
# - start offset
# - end offset
# - line number
# - symbol name
# - tree name
# - is branch
# - invocations count
# - is ignored
# - description (can be multi-line)
# '' sign
# ------------------------------------------
0
coverage.scala
<empty>
coverage$package$
Object
<empty>.coverage$package$


0
8
0


DefDef
false
0
false
def `\r\

1
coverage.scala
<empty>
coverage$package$
Object
<empty>.coverage$package$
main
18
32
1
main
DefDef
false
0
false
@main def main


Expectation

The non-printable characters should be escaped, otherwise they cannot be deserialized. See the related Scala 2 issue for more details:

/cc @ckipp01 @TheElectronWill

Metadata

Metadata

Labels

area:coverageCode coverage, see https://dotty.epfl.ch/docs/internals/coverage.htmlitype:bug

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions