diff --git a/compiler/src/dotty/tools/dotc/ast/MainProxies.scala b/compiler/src/dotty/tools/dotc/ast/MainProxies.scala index 81612b8276a0..486b27826c08 100644 --- a/compiler/src/dotty/tools/dotc/ast/MainProxies.scala +++ b/compiler/src/dotty/tools/dotc/ast/MainProxies.scala @@ -99,8 +99,8 @@ object MainProxies { val mainTempl = Template(emptyConstructor, Nil, Nil, EmptyValDef, mainMeth :: Nil) val mainCls = TypeDef(mainFun.name.toTypeName, mainTempl) .withFlags(Final) - if (!ctx.reporter.hasErrors) result = mainCls.withSpan(mainAnnotSpan.toSynthetic) :: Nil + if (!ctx.reporter.hasErrors) result = mainCls.withSpan(mainAnnotSpan) :: Nil } result } -} +} \ No newline at end of file diff --git a/compiler/src/dotty/tools/dotc/ast/Trees.scala b/compiler/src/dotty/tools/dotc/ast/Trees.scala index 7e98f4d52752..ec85fbdb766b 100644 --- a/compiler/src/dotty/tools/dotc/ast/Trees.scala +++ b/compiler/src/dotty/tools/dotc/ast/Trees.scala @@ -337,16 +337,13 @@ object Trees { * a calling chain from `viewExists`), in that case the return position is NoSpan. * Overridden in Bind */ - def nameSpan(using Context): Span = + def nameSpan: Span = if (span.exists) { val point = span.point - if (rawMods.is(Synthetic) || span.isSynthetic || name.toTermName == nme.ERROR) Span(point) + if (rawMods.is(Synthetic) || name.toTermName == nme.ERROR) Span(point) else { val realName = name.stripModuleClassSuffix.lastPart - var length = realName.length - if (mods.is(ExtensionMethod) || symbol.is(ExtensionMethod)) && name.isExtensionName then - length -= "extension_".length - Span(point, point + length, point) + Span(point, point + realName.length, point) } } else span @@ -355,7 +352,7 @@ object Trees { * This is a point position if the definition is synthetic, or a range position * if the definition comes from source. */ - def namePos(using Context): SourcePosition = source.atSpan(nameSpan) + def namePos: SourcePosition = source.atSpan(nameSpan) } /** Tree defines a new symbol and carries modifiers. @@ -714,7 +711,7 @@ object Trees { override def isType: Boolean = name.isTypeName override def isTerm: Boolean = name.isTermName - override def nameSpan(using Context): Span = + override def nameSpan: Span = if span.exists then Span(span.start, span.start + name.toString.length) else span } diff --git a/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala b/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala index 976b26379198..29a5c6b67d2c 100644 --- a/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala +++ b/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala @@ -143,7 +143,7 @@ class ExtractSemanticDB extends Phase: return if !excludeDef(tree.symbol) && tree.span.hasLength then - registerDefinition(tree.symbol, tree.nameSpan, symbolKinds(tree), tree.source) + registerDefinition(tree.symbol, tree.adjustedNameSpan, symbolKinds(tree), tree.source) val privateWithin = tree.symbol.privateWithin if privateWithin.exists then registerUseGuarded(None, privateWithin, spanOfSymbol(privateWithin, tree.span, tree.source), tree.source) @@ -184,7 +184,7 @@ class ExtractSemanticDB extends Phase: val ctorSym = tree.constr.symbol if !excludeDef(ctorSym) then traverseAnnotsOfDefinition(ctorSym) - registerDefinition(ctorSym, tree.constr.nameSpan.startPos, Set.empty, tree.source) + registerDefinition(ctorSym, tree.constr.span, Set.empty, tree.source) ctorParams(tree.constr.vparamss, tree.body) for parent <- tree.parentsOrDerived if parent.span.hasLength do traverse(parent) @@ -283,6 +283,13 @@ class ExtractSemanticDB extends Phase: end PatternValDef + extension (tree: NamedDefTree): + private def adjustedNameSpan(using Context): Span = + if tree.span.exists && tree.name.isAnonymousFunctionName || tree.name.isAnonymousClassName then + Span(tree.span.point) + else + tree.nameSpan + /** Add semanticdb name of the given symbol to string builder */ private def addSymName(b: StringBuilder, sym: Symbol)(using Context): Unit = @@ -523,7 +530,8 @@ class ExtractSemanticDB extends Phase: Span(start max limit, end) extension (span: Span): - private def hasLength: Boolean = span.exists && !span.isZeroExtent + private def hasLength: Boolean = span.start != span.end + private def zeroLength: Boolean = span.start == span.end /**Consume head while not an import statement. * Returns the rest of the list after the first import, or else the empty list diff --git a/tests/semanticdb/expect/Enums.expect.scala b/tests/semanticdb/expect/Enums.expect.scala index d75883742758..0539adc8866e 100644 --- a/tests/semanticdb/expect/Enums.expect.scala +++ b/tests/semanticdb/expect/Enums.expect.scala @@ -12,10 +12,10 @@ object Enums/*<-_empty_::Enums.*/: case Hearts/*<-_empty_::Enums.Suits.Hearts.*/, Spades/*<-_empty_::Enums.Suits.Spades.*/, Clubs/*<-_empty_::Enums.Suits.Clubs.*/, Diamonds/*<-_empty_::Enums.Suits.Diamonds.*/ object Suits/*<-_empty_::Enums.Suits.*/: - extension (suit/*<-_empty_::Enums.Suits.extension_isRed().(suit)*/: Suits/*->_empty_::Enums.Suits#*/) def isRed/*<-_empty_::Enums.Suits.extension_isRed().*/: Boolean/*->scala::Boolean#*/ = + extension (suit/*<-_empty_::Enums.Suits.extension_isRed().(suit)*/: Suits/*->_empty_::Enums.Suits#*/) def isRed: Boolean /*<-_empty_::Enums.Suits.extension_isRed().*//*->scala::Boolean#*/= suit/*->_empty_::Enums.Suits.extension_isRed().(suit)*/ ==/*->scala::Any#`==`().*/ Hearts/*->_empty_::Enums.Suits.Hearts.*/ ||/*->scala::Boolean#`||`().*/ suit/*->_empty_::Enums.Suits.extension_isRed().(suit)*/ ==/*->scala::Any#`==`().*/ Diamonds/*->_empty_::Enums.Suits.Diamonds.*/ - extension (suit/*<-_empty_::Enums.Suits.extension_isBlack().(suit)*/: Suits/*->_empty_::Enums.Suits#*/) def isBlack/*<-_empty_::Enums.Suits.extension_isBlack().*/: Boolean/*->scala::Boolean#*/ = suit/*->_empty_::Enums.Suits.extension_isBlack().(suit)*/ match + extension (suit/*<-_empty_::Enums.Suits.extension_isBlack().(suit)*/: Suits/*->_empty_::Enums.Suits#*/) def isBlack: Boolean /*<-_empty_::Enums.Suits.extension_isBlack().*//*->scala::Boolean#*/= suit/*->_empty_::Enums.Suits.extension_isBlack().(suit)*/ match case Spades/*->_empty_::Enums.Suits.Spades.*/ | Clubs/*->_empty_::Enums.Suits.Clubs.*/ => true case _ => false @@ -49,7 +49,7 @@ object Enums/*<-_empty_::Enums.*/: object <:_empty_::Enums.`<:<`.given_T().[T]*/ <:_empty_::Enums.`<:<`#*/ T/*->_empty_::Enums.`<:<`.given_T().[T]*/) = Refl/*->_empty_::Enums.`<:<`.Refl.*//*->_empty_::Enums.`<:<`.Refl.apply().*/() - extension [A/*<-_empty_::Enums.extension_unwrap().[A]*/, B/*<-_empty_::Enums.extension_unwrap().[B]*/](opt/*<-_empty_::Enums.extension_unwrap().(opt)*/: Option/*->scala::Option#*/[A/*->_empty_::Enums.extension_unwrap().[A]*/]) def unwrap/*<-_empty_::Enums.extension_unwrap().*/(using ev/*<-_empty_::Enums.extension_unwrap().(ev)*/: A/*->_empty_::Enums.extension_unwrap().[A]*/ <:_empty_::Enums.`<:<`#*/ Option/*->scala::Option#*/[B/*->_empty_::Enums.extension_unwrap().[B]*/]): Option/*->scala::Option#*/[B/*->_empty_::Enums.extension_unwrap().[B]*/] = ev/*->_empty_::Enums.extension_unwrap().(ev)*/ match + extension [A/*<-_empty_::Enums.extension_unwrap().[A]*/, B/*<-_empty_::Enums.extension_unwrap().[B]*/](opt/*<-_empty_::Enums.extension_unwrap().(opt)*/: Option/*->scala::Option#*/[A/*->_empty_::Enums.extension_unwrap().[A]*/]) def unwrap(using ev:/*<-_empty_::Enums.extension_unwrap().*//*<-_empty_::Enums.extension_unwrap().(ev)*/ A/*->_empty_::Enums.extension_unwrap().[A]*/ <:_empty_::Enums.`<:<`#*/ Option/*->scala::Option#*/[B/*->_empty_::Enums.extension_unwrap().[B]*/]): Option/*->scala::Option#*/[B/*->_empty_::Enums.extension_unwrap().[B]*/] = ev/*->_empty_::Enums.extension_unwrap().(ev)*/ match case Refl/*->_empty_::Enums.`<:<`.Refl.*//*->_empty_::Enums.`<:<`.Refl.unapply().*/() => opt/*->_empty_::Enums.extension_unwrap().(opt)*/.flatMap/*->scala::Option#flatMap().*/(identity/*->scala::Predef.identity().*//*->local0*/[Option/*->scala::Option#*/[B/*->_empty_::Enums.extension_unwrap().[B]*/]]) val some1/*<-_empty_::Enums.some1.*/ = /*->_empty_::Enums.extension_unwrap().*/Some/*->scala::Some.*//*->scala::Some.apply().*/(Some/*->scala::Some.*//*->scala::Some.apply().*/(1))/*->_empty_::Enums.`<:<`.given_T().*/.unwrap diff --git a/tests/semanticdb/expect/Givens.expect.scala b/tests/semanticdb/expect/Givens.expect.scala index 9d43f162f2d3..ecc6addedeba 100644 --- a/tests/semanticdb/expect/Givens.expect.scala +++ b/tests/semanticdb/expect/Givens.expect.scala @@ -4,11 +4,11 @@ package b object Givens/*<-a::b::Givens.*/: extension [A/*<-a::b::Givens.extension_sayHello().[A]*/](any/*<-a::b::Givens.extension_sayHello().(any)*/: A/*->a::b::Givens.extension_sayHello().[A]*/) - def sayHello/*<-a::b::Givens.extension_sayHello().*/ = s"/*->scala::StringContext.apply().*/Hello, I am $any/*->a::b::Givens.extension_sayHello().(any)*/"/*->scala::StringContext#s().*/ + def sayHello = s"Hello/*<-a::b::Givens.extension_sayHello().*//*->scala::StringContext.apply().*/, I am $any/*->a::b::Givens.extension_sayHello().(any)*/"/*->scala::StringContext#s().*/ extension [B/*<-a::b::Givens.extension_sayGoodbye().[B]*//*<-a::b::Givens.extension_saySoLong().[B]*/](any/*<-a::b::Givens.extension_sayGoodbye().(any)*//*<-a::b::Givens.extension_saySoLong().(any)*/: B/*->a::b::Givens.extension_sayGoodbye().[B]*//*->a::b::Givens.extension_saySoLong().[B]*/) - def sayGoodbye/*<-a::b::Givens.extension_sayGoodbye().*/ = s"/*->scala::StringContext.apply().*/Goodbye, from $any/*->a::b::Givens.extension_sayGoodbye().(any)*/"/*->scala::StringContext#s().*/ - def saySoLong/*<-a::b::Givens.extension_saySoLong().*/ = s"/*->scala::StringContext.apply().*/So Long, from $any/*->a::b::Givens.extension_saySoLong().(any)*/"/*->scala::StringContext#s().*/ + def sayGoodbye = s"Goodb/*<-a::b::Givens.extension_sayGoodbye().*//*->scala::StringContext.apply().*/ye, from $any/*->a::b::Givens.extension_sayGoodbye().(any)*/"/*->scala::StringContext#s().*/ + def saySoLong = s"So Lo/*<-a::b::Givens.extension_saySoLong().*//*->scala::StringContext.apply().*/ng, from $any/*->a::b::Givens.extension_saySoLong().(any)*/"/*->scala::StringContext#s().*/ val hello1/*<-a::b::Givens.hello1.*/ = /*->a::b::Givens.extension_sayHello().*/1.sayHello val goodbye1/*<-a::b::Givens.goodbye1.*/ = /*->a::b::Givens.extension_sayGoodbye().*/1.sayGoodbye @@ -16,11 +16,11 @@ object Givens/*<-a::b::Givens.*/: trait Monoid/*<-a::b::Givens.Monoid#*/[A/*<-a::b::Givens.Monoid#[A]*/]: def empty/*<-a::b::Givens.Monoid#empty().*/: A/*->a::b::Givens.Monoid#[A]*/ - extension (x/*<-a::b::Givens.Monoid#extension_combine().(x)*/: A/*->a::b::Givens.Monoid#[A]*/) def combine/*<-a::b::Givens.Monoid#extension_combine().*/(y/*<-a::b::Givens.Monoid#extension_combine().(y)*/: A/*->a::b::Givens.Monoid#[A]*/): A/*->a::b::Givens.Monoid#[A]*/ - + extension (x/*<-a::b::Givens.Monoid#extension_combine().(x)*/: A/*->a::b::Givens.Monoid#[A]*/) def combine(y: A): A +/*<-a::b::Givens.Monoid#extension_combine().*//*<-a::b::Givens.Monoid#extension_combine().(y)*//*->a::b::Givens.Monoid#[A]*//*->a::b::Givens.Monoid#[A]*/ given Monoid[String]: /*<-a::b::Givens.given_Monoid_String.*//*->a::b::Givens.Monoid#*//*->scala::Predef.String#*/ def empty/*<-a::b::Givens.given_Monoid_String.empty().*/ = "" - extension (x/*<-a::b::Givens.given_Monoid_String.extension_combine().(x)*/: String/*->scala::Predef.String#*/) def combine/*<-a::b::Givens.given_Monoid_String.extension_combine().*/(y/*<-a::b::Givens.given_Monoid_String.extension_combine().(y)*/: String/*->scala::Predef.String#*/) = x/*->a::b::Givens.given_Monoid_String.extension_combine().(x)*/ +/*->java::lang::String#`+`().*/ y/*->a::b::Givens.given_Monoid_String.extension_combine().(y)*/ + extension (x/*<-a::b::Givens.given_Monoid_String.extension_combine().(x)*/: String/*->scala::Predef.String#*/) def combine(y: String/*<-a::b::Givens.given_Monoid_String.extension_combine().*//*<-a::b::Givens.given_Monoid_String.extension_combine().(y)*//*->scala::Predef.String#*/) = x/*->a::b::Givens.given_Monoid_String.extension_combine().(x)*/ +/*->java::lang::String#`+`().*/ y/*->a::b::Givens.given_Monoid_String.extension_combine().(y)*/ inline given int2String/*<-a::b::Givens.int2String().*/ as Conversion/*->scala::Conversion#*/[Int/*->scala::Int#*/, String/*->scala::Predef.String#*/] = _.toString/*->scala::Any#toString().*/ diff --git a/tests/semanticdb/expect/i9727.expect.scala b/tests/semanticdb/expect/i9727.expect.scala deleted file mode 100644 index 017da086d4b5..000000000000 --- a/tests/semanticdb/expect/i9727.expect.scala +++ /dev/null @@ -1,5 +0,0 @@ -package i9727 - -class Test/*<-i9727::Test#*/(a/*<-i9727::Test#a.*/: Int/*->scala::Int#*/) -/*<-i9727::i9727$package.*/val a/*<-i9727::i9727$package.a.*/ = new Test/*->i9727::Test#*/(1) -val b/*<-i9727::i9727$package.b.*/ = new Test/*->i9727::Test#*/(2) diff --git a/tests/semanticdb/expect/i9727.scala b/tests/semanticdb/expect/i9727.scala deleted file mode 100644 index f76a10acbf03..000000000000 --- a/tests/semanticdb/expect/i9727.scala +++ /dev/null @@ -1,5 +0,0 @@ -package i9727 - -class Test(a: Int) -val a = new Test(1) -val b = new Test(2) diff --git a/tests/semanticdb/expect/toplevel.expect.scala b/tests/semanticdb/expect/toplevel.expect.scala index ad685d8a6269..612bff8b0054 100644 --- a/tests/semanticdb/expect/toplevel.expect.scala +++ b/tests/semanticdb/expect/toplevel.expect.scala @@ -1,6 +1,5 @@ -/*<-_empty_::toplevel$package.*/inline val a/*<-_empty_::toplevel$package.a.*/ = "" -extension (x/*<-_empty_::toplevel$package.extension_combine().(x)*/: Int/*->scala::Int#*/) def combine/*<-_empty_::toplevel$package.extension_combine().*/ (y/*<-_empty_::toplevel$package.extension_combine().(y)*/: Int/*->scala::Int#*/) = x/*->_empty_::toplevel$package.extension_combine().(x)*/ +/*->scala::Int#`+`(+4).*/ y/*->_empty_::toplevel$package.extension_combine().(y)*/ +inline val a = "/*<-_empty_::toplevel$package.*//*<-_empty_::toplevel$package.a.*/" +extension (x/*<-_empty_::toplevel$package.extension_combine().(x)*/: Int/*->scala::Int#*/) def combine (y: Int) /*<-_empty_::toplevel$package.extension_combine().*//*<-_empty_::toplevel$package.extension_combine().(y)*//*->scala::Int#*/= x/*->_empty_::toplevel$package.extension_combine().(x)*/ +/*->scala::Int#`+`(+4).*/ y/*->_empty_::toplevel$package.extension_combine().(y)*/ def combine/*<-_empty_::toplevel$package.combine().*/(x/*<-_empty_::toplevel$package.combine().(x)*/: Int/*->scala::Int#*/, y/*<-_empty_::toplevel$package.combine().(y)*/: Int/*->scala::Int#*/, z/*<-_empty_::toplevel$package.combine().(z)*/: Int/*->scala::Int#*/) = x/*->_empty_::toplevel$package.combine().(x)*/ +/*->scala::Int#`+`(+4).*/ y/*->_empty_::toplevel$package.combine().(y)*/ +/*->scala::Int#`+`(+4).*/ z/*->_empty_::toplevel$package.combine().(z)*/ def combine/*<-_empty_::toplevel$package.combine(+1).*/ = 0 def foo/*<-_empty_::toplevel$package.foo().*/ = "foo" -/*<-_empty_::MyProgram#*//*->_empty_::toplevel$package.MyProgram().*//*->scala::util::CommandLineParser.parseArgument().*//*->_empty_::MyProgram#main().(args)*//*->scala::util::FromString.given_FromString_Int.*//*->scala::util::CommandLineParser.showError().*//*->local0*/@main/*->scala::main#*/ def MyProgram/*<-_empty_::toplevel$package.MyProgram().*/(times/*<-_empty_::toplevel$package.MyProgram().(times)*/: Int/*->scala::Int#*/): Unit/*->scala::Unit#*/ = (/*->scala::LowPriorityImplicits#intWrapper().*/1 to/*->scala::runtime::RichInt#to().*/ times/*->_empty_::toplevel$package.MyProgram().(times)*/) foreach/*->scala::collection::immutable::Range#foreach().*/ (_ => println/*->scala::Predef.println(+1).*/("hello")) diff --git a/tests/semanticdb/expect/toplevel.scala b/tests/semanticdb/expect/toplevel.scala index 5dae4ccadd5e..a99265bc630e 100644 --- a/tests/semanticdb/expect/toplevel.scala +++ b/tests/semanticdb/expect/toplevel.scala @@ -3,4 +3,3 @@ extension (x: Int) def combine (y: Int) = x + y def combine(x: Int, y: Int, z: Int) = x + y + z def combine = 0 def foo = "foo" -@main def MyProgram(times: Int): Unit = (1 to times) foreach (_ => println("hello")) diff --git a/tests/semanticdb/metac.expect b/tests/semanticdb/metac.expect index 0cc17335b10a..41a2ac13737b 100644 --- a/tests/semanticdb/metac.expect +++ b/tests/semanticdb/metac.expect @@ -101,7 +101,7 @@ Occurrences: [5:21..5:31): Selectable -> scala/reflect/Selectable. [5:32..5:52): reflectiveSelectable -> scala/reflect/Selectable.reflectiveSelectable(). [7:6..7:7): C <- advanced/C# -[7:7..7:7): <- advanced/C#``(). +[7:7..7:10): <- advanced/C#``(). [7:8..7:9): T <- advanced/C#[T] [8:6..8:7): t <- advanced/C#t(). [8:9..8:10): T -> advanced/C#[T] @@ -230,7 +230,7 @@ Occurrences: [4:35..4:41): macros -> scalaShadowing/language.experimental.macros. [6:1..6:16): ClassAnnotation -> com/javacp/annot/ClassAnnotation# [7:6..7:17): Annotations <- annot/Annotations# -[7:17..7:17): <- annot/Annotations#``(). +[7:17..7:72): <- annot/Annotations#``(). [7:19..7:42): TypeParameterAnnotation -> com/javacp/annot/TypeParameterAnnotation# [7:43..7:44): T <- annot/Annotations#[T] [7:47..7:66): ParameterAnnotation -> com/javacp/annot/ParameterAnnotation# @@ -248,7 +248,7 @@ Occurrences: [17:3..17:17): TypeAnnotation -> com/javacp/annot/TypeAnnotation# [18:7..18:8): S <- annot/Annotations#S# [21:6..21:7): B <- annot/B# -[21:7..21:7): <- annot/B#``(). +[21:7..21:40): <- annot/B#``(). [21:9..21:30): ConstructorAnnotation -> com/javacp/annot/ConstructorAnnotation# [21:33..21:34): x <- annot/B#x. [21:36..21:39): Int -> scala/Int# @@ -459,50 +459,50 @@ Occurrences: [1:22..1:34): experimental -> scalaShadowing/language.experimental. [1:35..1:41): macros -> scalaShadowing/language.experimental.macros. [2:6..2:8): C1 <- classes/C1# -[2:8..2:8): <- classes/C1#``(). +[2:8..2:21): <- classes/C1#``(). [2:13..2:15): x1 <- classes/C1#x1. [2:17..2:20): Int -> scala/Int# [2:30..2:36): AnyVal -> scala/AnyVal# [2:36..2:36): -> scala/AnyVal#``(). [4:6..4:8): C2 <- classes/C2# -[4:8..4:8): <- classes/C2#``(). +[4:8..4:21): <- classes/C2#``(). [4:13..4:15): x2 <- classes/C2#x2. [4:17..4:20): Int -> scala/Int# [4:30..4:36): AnyVal -> scala/AnyVal# [4:36..4:36): -> scala/AnyVal#``(). [5:7..5:9): C2 <- classes/C2. [7:11..7:13): C3 <- classes/C3# -[7:13..7:13): <- classes/C3#``(). +[7:13..7:21): <- classes/C3#``(). [7:14..7:15): x <- classes/C3#x. [7:17..7:20): Int -> scala/Int# [9:11..9:13): C4 <- classes/C4# -[9:13..9:13): <- classes/C4#``(). +[9:13..9:21): <- classes/C4#``(). [9:14..9:15): x <- classes/C4#x. [9:17..9:20): Int -> scala/Int# [10:7..10:9): C4 <- classes/C4. [12:7..12:8): M <- classes/M. [13:17..13:19): C5 <- classes/M.C5# -[13:19..13:19): <- classes/M.C5#``(). +[13:19..13:27): <- classes/M.C5#``(). [13:20..13:21): x <- classes/M.C5#x. [13:23..13:26): Int -> scala/Int# [16:11..16:13): C6 <- classes/C6# -[16:13..16:13): <- classes/C6#``(). +[16:13..16:33): <- classes/C6#``(). [16:26..16:27): x <- classes/C6#x. [16:29..16:32): Int -> scala/Int# [18:6..18:8): C7 <- classes/C7# -[18:8..18:8): <- classes/C7#``(). +[18:8..18:16): <- classes/C7#``(). [18:9..18:10): x <- classes/C7#x. [18:12..18:15): Int -> scala/Int# [20:6..20:8): C8 <- classes/C8# -[20:8..20:8): <- classes/C8#``(). +[20:8..20:34): <- classes/C8#``(). [20:27..20:28): x <- classes/C8#x. [20:30..20:33): Int -> scala/Int# [22:6..22:8): C9 <- classes/C9# -[22:8..22:8): <- classes/C9#``(). +[22:8..22:34): <- classes/C9#``(). [22:27..22:28): x <- classes/C9#x(). [22:30..22:33): Int -> scala/Int# [24:6..24:9): C10 <- classes/C10# -[24:9..24:9): <- classes/C10#``(). +[24:9..24:23): <- classes/C10#``(). [24:10..24:11): s <- classes/C10#s. [24:16..24:22): String -> scala/Predef.String# [26:6..26:9): C11 <- classes/C11# @@ -855,7 +855,7 @@ Occurrences: [13:9..13:14): Suits <- _empty_/Enums.Suits. [14:15..14:19): suit <- _empty_/Enums.Suits.extension_isRed().(suit) [14:21..14:26): Suits -> _empty_/Enums.Suits# -[14:32..14:37): isRed <- _empty_/Enums.Suits.extension_isRed(). +[14:32..14:47): isRed: Boolean <- _empty_/Enums.Suits.extension_isRed(). [14:39..14:46): Boolean -> scala/Boolean# [15:6..15:10): suit -> _empty_/Enums.Suits.extension_isRed().(suit) [15:11..15:13): == -> scala/Any#`==`(). @@ -866,7 +866,7 @@ Occurrences: [15:32..15:40): Diamonds -> _empty_/Enums.Suits.Diamonds. [17:15..17:19): suit <- _empty_/Enums.Suits.extension_isBlack().(suit) [17:21..17:26): Suits -> _empty_/Enums.Suits# -[17:32..17:39): isBlack <- _empty_/Enums.Suits.extension_isBlack(). +[17:32..17:49): isBlack: Boolean <- _empty_/Enums.Suits.extension_isBlack(). [17:41..17:48): Boolean -> scala/Boolean# [17:51..17:55): suit -> _empty_/Enums.Suits.extension_isBlack().(suit) [18:11..18:17): Spades -> _empty_/Enums.Suits.Spades. @@ -881,7 +881,7 @@ Occurrences: [27:9..27:17): Saturday <- _empty_/Enums.WeekDays.Saturday. [28:9..28:15): Sunday <- _empty_/Enums.WeekDays.Sunday. [30:7..30:11): Coin <- _empty_/Enums.Coin# -[30:11..30:11): <- _empty_/Enums.Coin#``(). +[30:11..30:23): <- _empty_/Enums.Coin#``(). [30:12..30:17): value <- _empty_/Enums.Coin#value. [30:19..30:22): Int -> scala/Int# [31:9..31:14): Penny <- _empty_/Enums.Coin.Penny. @@ -905,17 +905,17 @@ Occurrences: [35:30..35:30): -> _empty_/Enums.Coin#``(). [35:35..35:35): -> scala/runtime/EnumValue# [37:7..37:12): Maybe <- _empty_/Enums.Maybe# -[37:12..37:12): <- _empty_/Enums.Maybe#``(). +[37:12..37:16): <- _empty_/Enums.Maybe#``(). [37:14..37:15): A <- _empty_/Enums.Maybe#[A] [38:9..38:13): Just <- _empty_/Enums.Maybe.Just# -[38:13..38:13): <- _empty_/Enums.Maybe.Just#``(). +[38:13..38:23): <- _empty_/Enums.Maybe.Just#``(). [38:14..38:19): value <- _empty_/Enums.Maybe.Just#value. [38:21..38:22): A -> _empty_/Enums.Maybe.Just#[A] [39:4..39:4): -> _empty_/Enums.Maybe#``(). [39:9..39:13): None <- _empty_/Enums.Maybe.None. [39:13..39:13): -> scala/runtime/EnumValue# [41:7..41:10): Tag <- _empty_/Enums.Tag# -[41:10..41:10): <- _empty_/Enums.Tag#``(). +[41:10..41:13): <- _empty_/Enums.Tag#``(). [41:11..41:12): A <- _empty_/Enums.Tag#[A] [42:9..42:15): IntTag <- _empty_/Enums.Tag.IntTag. [42:24..42:27): Tag -> _empty_/Enums.Tag# @@ -928,11 +928,11 @@ Occurrences: [43:40..43:40): -> _empty_/Enums.Tag#``(). [43:40..43:40): -> scala/runtime/EnumValue# [45:7..45:10): <:< <- _empty_/Enums.`<:<`# -[45:10..45:10): <- _empty_/Enums.`<:<`#``(). +[45:10..45:17): <- _empty_/Enums.`<:<`#``(). [45:12..45:13): A <- _empty_/Enums.`<:<`#[A] [45:15..45:16): B <- _empty_/Enums.`<:<`#[B] [46:9..46:13): Refl <- _empty_/Enums.`<:<`.Refl# -[46:13..46:13): <- _empty_/Enums.`<:<`.Refl#``(). +[46:13..46:18): <- _empty_/Enums.`<:<`.Refl#``(). [46:14..46:15): C <- _empty_/Enums.`<:<`.Refl#[C] [46:28..46:29): C -> _empty_/Enums.`<:<`.Refl#[C] [46:30..46:33): <:< -> _empty_/Enums.`<:<`# @@ -951,7 +951,7 @@ Occurrences: [51:19..51:22): opt <- _empty_/Enums.extension_unwrap().(opt) [51:24..51:30): Option -> scala/Option# [51:31..51:32): A -> _empty_/Enums.extension_unwrap().[A] -[51:39..51:45): unwrap <- _empty_/Enums.extension_unwrap(). +[51:39..51:55): unwrap(using ev: <- _empty_/Enums.extension_unwrap(). [51:52..51:54): ev <- _empty_/Enums.extension_unwrap().(ev) [51:56..51:57): A -> _empty_/Enums.extension_unwrap().[A] [51:58..51:61): <:< -> _empty_/Enums.`<:<`# @@ -976,7 +976,7 @@ Occurrences: [54:23..54:23): -> scala/Some.apply(). [54:27..54:27): -> _empty_/Enums.`<:<`.given_T(). [56:7..56:13): Planet <- _empty_/Enums.Planet# -[56:13..56:13): <- _empty_/Enums.Planet#``(). +[56:13..56:43): <- _empty_/Enums.Planet#``(). [56:14..56:18): mass <- _empty_/Enums.Planet#mass. [56:20..56:26): Double -> scala/Double# [56:28..56:34): radius <- _empty_/Enums.Planet#radius. @@ -1274,7 +1274,7 @@ Occurrences: [5:13..5:14): A <- a/b/Givens.extension_sayHello().[A] [5:16..5:19): any <- a/b/Givens.extension_sayHello().(any) [5:21..5:22): A -> a/b/Givens.extension_sayHello().[A] -[6:8..6:16): sayHello <- a/b/Givens.extension_sayHello(). +[6:8..6:26): sayHello = s"Hello <- a/b/Givens.extension_sayHello(). [6:21..6:21): -> scala/StringContext.apply(). [6:34..6:37): any -> a/b/Givens.extension_sayHello().(any) [6:37..6:38): " -> scala/StringContext#s(). @@ -1284,11 +1284,11 @@ Occurrences: [8:16..8:19): any <- a/b/Givens.extension_saySoLong().(any) [8:21..8:22): B -> a/b/Givens.extension_sayGoodbye().[B] [8:21..8:22): B -> a/b/Givens.extension_saySoLong().[B] -[9:8..9:18): sayGoodbye <- a/b/Givens.extension_sayGoodbye(). +[9:8..9:28): sayGoodbye = s"Goodb <- a/b/Givens.extension_sayGoodbye(). [9:23..9:23): -> scala/StringContext.apply(). [9:38..9:41): any -> a/b/Givens.extension_sayGoodbye().(any) [9:41..9:42): " -> scala/StringContext#s(). -[10:8..10:17): saySoLong <- a/b/Givens.extension_saySoLong(). +[10:8..10:27): saySoLong = s"So Lo <- a/b/Givens.extension_saySoLong(). [10:22..10:22): -> scala/StringContext.apply(). [10:37..10:40): any -> a/b/Givens.extension_saySoLong().(any) [10:40..10:41): " -> scala/StringContext#s(). @@ -1299,13 +1299,13 @@ Occurrences: [14:6..14:13): soLong1 <- a/b/Givens.soLong1. [14:16..14:16): -> a/b/Givens.extension_saySoLong(). [16:8..16:14): Monoid <- a/b/Givens.Monoid# -[16:14..16:14): <- a/b/Givens.Monoid#``(). +[16:14..16:17): <- a/b/Givens.Monoid#``(). [16:15..16:16): A <- a/b/Givens.Monoid#[A] [17:8..17:13): empty <- a/b/Givens.Monoid#empty(). [17:15..17:16): A -> a/b/Givens.Monoid#[A] [18:15..18:16): x <- a/b/Givens.Monoid#extension_combine().(x) [18:18..18:19): A -> a/b/Givens.Monoid#[A] -[18:25..18:32): combine <- a/b/Givens.Monoid#extension_combine(). +[18:25..19:0): <- a/b/Givens.Monoid#extension_combine(). [18:33..18:34): y <- a/b/Givens.Monoid#extension_combine().(y) [18:36..18:37): A -> a/b/Givens.Monoid#[A] [18:40..18:41): A -> a/b/Givens.Monoid#[A] @@ -1315,7 +1315,7 @@ Occurrences: [21:8..21:13): empty <- a/b/Givens.given_Monoid_String.empty(). [22:15..22:16): x <- a/b/Givens.given_Monoid_String.extension_combine().(x) [22:18..22:24): String -> scala/Predef.String# -[22:30..22:37): combine <- a/b/Givens.given_Monoid_String.extension_combine(). +[22:30..22:47): combine(y: String <- a/b/Givens.given_Monoid_String.extension_combine(). [22:38..22:39): y <- a/b/Givens.given_Monoid_String.extension_combine().(y) [22:41..22:47): String -> scala/Predef.String# [22:51..22:52): x -> a/b/Givens.given_Monoid_String.extension_combine().(x) @@ -1423,7 +1423,7 @@ Occurrences: [29:16..29:20): char -> example/ImplicitConversion#char. [32:7..32:25): ImplicitConversion <- example/ImplicitConversion. [33:23..33:39): newAny2stringadd <- example/ImplicitConversion.newAny2stringadd# -[33:39..33:39): <- example/ImplicitConversion.newAny2stringadd#``(). +[33:39..33:63): <- example/ImplicitConversion.newAny2stringadd#``(). [33:40..33:41): A <- example/ImplicitConversion.newAny2stringadd#[A] [33:55..33:59): self <- example/ImplicitConversion.newAny2stringadd#self. [33:61..33:62): A -> example/ImplicitConversion.newAny2stringadd#[A] @@ -1945,10 +1945,10 @@ Occurrences: [3:13..3:21): language -> scalaShadowing/language. [3:22..3:34): existentials -> scalaShadowing/language.existentials. [5:6..5:13): Methods <- example/Methods# -[5:13..5:13): <- example/Methods#``(). +[5:13..5:16): <- example/Methods#``(). [5:14..5:15): T <- example/Methods#[T] [6:8..6:12): List <- example/Methods#List# -[6:12..6:12): <- example/Methods#List#``(). +[6:12..6:15): <- example/Methods#List#``(). [6:13..6:14): T <- example/Methods#List#[T] [7:7..7:12): AList <- example/Methods#AList# [7:13..7:14): T <- example/Methods#AList#[T] @@ -2178,7 +2178,7 @@ Occurrences: [6:44..6:45): c -> example/NamedApplyBlockMethods.foo().(c) [9:7..9:43): NamedApplyBlockCaseClassConstruction <- example/NamedApplyBlockCaseClassConstruction. [10:13..10:16): Msg <- example/NamedApplyBlockCaseClassConstruction.Msg# -[10:16..10:16): <- example/NamedApplyBlockCaseClassConstruction.Msg#``(). +[10:16..10:70): <- example/NamedApplyBlockCaseClassConstruction.Msg#``(). [10:17..10:21): body <- example/NamedApplyBlockCaseClassConstruction.Msg#body. [10:23..10:29): String -> scala/Predef.String# [10:31..10:35): head <- example/NamedApplyBlockCaseClassConstruction.Msg#head. @@ -2227,7 +2227,7 @@ Occurrences: [2:6..2:20): NamedArguments <- example/NamedArguments# [3:2..3:2): <- example/NamedArguments#``(). [3:13..3:17): User <- example/NamedArguments#User# -[3:17..3:17): <- example/NamedArguments#User#``(). +[3:17..3:31): <- example/NamedArguments#User#``(). [3:18..3:22): name <- example/NamedArguments#User#name. [3:24..3:30): String -> scala/Predef.String# [4:2..4:6): User -> example/NamedArguments#User. @@ -2305,7 +2305,7 @@ Occurrences: [2:14..2:17): foo <- example/A#foo(). [2:19..2:22): Int -> scala/Int# [3:6..3:7): B <- example/B# -[3:7..3:7): <- example/B#``(). +[3:7..3:9): <- example/B#``(). [3:18..3:19): A -> example/A# [3:26..3:29): foo <- example/B#foo(). [3:31..3:34): Int -> scala/Int# @@ -2593,7 +2593,7 @@ Occurrences: [25:5..25:5): -> example/Synthetic#s.apply(). [26:6..26:11): apply -> example/Synthetic#s.apply(). [27:15..27:18): Bar <- example/Synthetic#s.Bar# -[27:18..27:18): <- example/Synthetic#s.Bar#``(). +[27:18..27:20): <- example/Synthetic#s.Bar#``(). [28:4..28:7): Bar -> example/Synthetic#s.Bar. [28:7..28:7): -> example/Synthetic#s.Bar.apply(). [29:9..29:21): asInstanceOf -> scala/Any#asInstanceOf(). @@ -2601,7 +2601,7 @@ Occurrences: [29:29..29:32): Int -> scala/Int# [29:33..29:33): -> scala/Function1#apply(). [32:8..32:9): J <- example/Synthetic#J# -[32:9..32:9): <- example/Synthetic#J#``(). +[32:9..32:22): <- example/Synthetic#J#``(). [32:10..32:11): T <- example/Synthetic#J#[T] [32:13..32:21): Manifest -> scala/Predef.Manifest# [32:21..32:21): -> example/Synthetic#J#[T] @@ -2864,7 +2864,7 @@ local4 => implicit var local yil Occurrences: [0:8..0:15): example <- example/ [2:15..2:19): Vals <- example/Vals# -[2:19..2:19): <- example/Vals#``(). +[2:19..2:53): <- example/Vals#``(). [2:20..2:21): p <- example/Vals#p. [2:23..2:26): Int -> scala/Int# [2:32..2:34): xp <- example/Vals#xp. @@ -3044,40 +3044,6 @@ Occurrences: [2:0..2:0): <- example/FilenameWithSpaces#``(). [2:6..2:24): FilenameWithSpaces <- example/FilenameWithSpaces# -expect/i9727.scala ------------------- - -Summary: -Schema => SemanticDB v4 -Uri => i9727.scala -Text => empty -Language => Scala -Symbols => 7 entries -Occurrences => 12 entries - -Symbols: -i9727/Test# => class Test -i9727/Test#``(). => primary ctor -i9727/Test#``().(a) => param a -i9727/Test#a. => val method a -i9727/i9727$package. => final package object i9727 -i9727/i9727$package.a. => val method a -i9727/i9727$package.b. => val method b - -Occurrences: -[0:8..0:13): i9727 <- i9727/ -[2:6..2:10): Test <- i9727/Test# -[2:10..2:10): <- i9727/Test#``(). -[2:11..2:12): a <- i9727/Test#a. -[2:14..2:17): Int -> scala/Int# -[3:0..3:0): <- i9727/i9727$package. -[3:4..3:5): a <- i9727/i9727$package.a. -[3:12..3:16): Test -> i9727/Test# -[3:16..3:16): -> i9727/Test#``(). -[4:4..4:5): b <- i9727/i9727$package.b. -[4:12..4:16): Test -> i9727/Test# -[4:16..4:16): -> i9727/Test#``(). - expect/inlineconsume.scala -------------------------- @@ -3239,7 +3205,7 @@ Occurrences: [14:14..14:18): Zero <- recursion/Nats.Zero. [14:27..14:30): Nat -> recursion/Nats.Nat# [15:13..15:17): Succ <- recursion/Nats.Succ# -[15:17..15:17): <- recursion/Nats.Succ#``(). +[15:17..15:33): <- recursion/Nats.Succ#``(). [15:18..15:19): N <- recursion/Nats.Succ#[N] [15:28..15:29): p <- recursion/Nats.Succ#p. [15:31..15:32): N -> recursion/Nats.Succ#[N] @@ -3387,7 +3353,7 @@ Occurrences: [8:13..8:16): Int -> scala/Int# [8:25..8:28): ??? -> scala/Predef.`???`(). [9:17..9:18): C <- flags/p/package.C# -[9:18..9:18): <- flags/p/package.C#``(). +[9:18..9:47): <- flags/p/package.C#``(). [9:20..9:21): T <- flags/p/package.C#[T] [9:24..9:25): U <- flags/p/package.C#[U] [9:27..9:28): V <- flags/p/package.C#[V] @@ -3427,7 +3393,7 @@ Occurrences: [20:2..20:2): <- flags/p/package.Z#``(). [20:15..20:16): Z <- flags/p/package.Z# [21:8..21:10): AA <- flags/p/package.AA# -[21:10..21:10): <- flags/p/package.AA#``(). +[21:10..21:42): <- flags/p/package.AA#``(). [21:11..21:12): x <- flags/p/package.AA#x. [21:14..21:17): Int -> scala/Int# [21:23..21:24): y <- flags/p/package.AA#y. @@ -3435,7 +3401,7 @@ Occurrences: [21:35..21:36): z <- flags/p/package.AA#z(). [21:38..21:41): Int -> scala/Int# [22:8..22:9): S <- flags/p/package.S# -[22:9..22:9): <- flags/p/package.S#``(). +[22:9..22:25): <- flags/p/package.S#``(). [22:11..22:22): specialized -> scala/specialized# [22:23..22:24): T <- flags/p/package.S#[T] [23:6..23:10): List -> scala/package.List. @@ -3616,7 +3582,7 @@ Occurrences: [3:13..3:21): language -> scalaShadowing/language. [3:22..3:33): higherKinds -> scalaShadowing/language.higherKinds. [5:6..5:9): ann <- types/ann# -[5:9..5:9): <- types/ann#``(). +[5:9..5:18): <- types/ann#``(). [5:10..5:11): T <- types/ann#[T] [5:13..5:14): x <- types/ann#x. [5:16..5:17): T -> types/ann#[T] @@ -3656,7 +3622,7 @@ Occurrences: [22:14..22:15): X -> types/T#X# [22:15..22:15): -> types/T#X#``(). [25:11..25:14): Foo <- types/Foo# -[25:14..25:14): <- types/Foo#``(). +[25:14..25:24): <- types/Foo#``(). [25:15..25:16): s <- types/Foo#s. [27:7..27:10): Foo <- types/Foo. [28:6..28:7): x <- types/Foo.x. @@ -3781,7 +3747,7 @@ Occurrences: [79:34..79:34): -> types/B#``(). [79:41..79:42): x <- types/Test.C#ClassInfoType2#x(). [80:10..80:24): ClassInfoType3 <- types/Test.C#ClassInfoType3# -[80:24..80:24): <- types/Test.C#ClassInfoType3#``(). +[80:24..80:27): <- types/Test.C#ClassInfoType3#``(). [80:25..80:26): T <- types/Test.C#ClassInfoType3#[T] [82:11..82:21): MethodType <- types/Test.C#MethodType. [83:10..83:12): x1 <- types/Test.C#MethodType.x1(). @@ -3814,7 +3780,7 @@ Occurrences: [92:25..92:28): Int -> scala/Int# [92:31..92:34): ??? -> scala/Predef.`???`(). [95:15..95:27): RepeatedType <- types/Test.C#RepeatedType# -[95:27..95:27): <- types/Test.C#RepeatedType#``(). +[95:27..95:39): <- types/Test.C#RepeatedType#``(). [95:28..95:29): s <- types/Test.C#RepeatedType#s. [95:31..95:37): String -> scala/Predef.String# [96:10..96:12): m1 <- types/Test.C#RepeatedType#m1(). @@ -3910,7 +3876,7 @@ Occurrences: [14:2..14:9): println -> scala/Predef.println(+1). [14:12..14:13): + -> scala/Int#`+`(+4). [16:13..16:16): Foo <- _empty_/AnObject.Foo# -[16:16..16:16): <- _empty_/AnObject.Foo#``(). +[16:16..16:24): <- _empty_/AnObject.Foo#``(). [16:17..16:18): x <- _empty_/AnObject.Foo#x. [16:20..16:23): Int -> scala/Int# @@ -3922,17 +3888,11 @@ Schema => SemanticDB v4 Uri => toplevel.scala Text => empty Language => Scala -Symbols => 18 entries -Occurrences => 42 entries +Symbols => 11 entries +Occurrences => 24 entries Symbols: -_empty_/MyProgram# => final class MyProgram -_empty_/MyProgram#``(). => primary ctor -_empty_/MyProgram#main(). => static method main -_empty_/MyProgram#main().(args) => param args _empty_/toplevel$package. => final package object _empty_ -_empty_/toplevel$package.MyProgram(). => method MyProgram -_empty_/toplevel$package.MyProgram().(times) => param times _empty_/toplevel$package.a. => val method a _empty_/toplevel$package.combine(). => method combine _empty_/toplevel$package.combine().(x) => param x @@ -3943,14 +3903,13 @@ _empty_/toplevel$package.extension_combine(). => method extension_combine _empty_/toplevel$package.extension_combine().(x) => param x _empty_/toplevel$package.extension_combine().(y) => param y _empty_/toplevel$package.foo(). => method foo -local0 => val local error Occurrences: -[0:0..0:0): <- _empty_/toplevel$package. +[0:0..0:16): inline val a = " <- _empty_/toplevel$package. [0:11..0:12): a <- _empty_/toplevel$package.a. [1:11..1:12): x <- _empty_/toplevel$package.extension_combine().(x) [1:14..1:17): Int -> scala/Int# -[1:23..1:30): combine <- _empty_/toplevel$package.extension_combine(). +[1:23..1:40): combine (y: Int) <- _empty_/toplevel$package.extension_combine(). [1:32..1:33): y <- _empty_/toplevel$package.extension_combine().(y) [1:35..1:38): Int -> scala/Int# [1:42..1:43): x -> _empty_/toplevel$package.extension_combine().(x) @@ -3970,22 +3929,4 @@ Occurrences: [2:46..2:47): z -> _empty_/toplevel$package.combine().(z) [3:4..3:11): combine <- _empty_/toplevel$package.combine(+1). [4:4..4:7): foo <- _empty_/toplevel$package.foo(). -[5:0..5:0): <- _empty_/MyProgram# -[5:0..5:0): <- _empty_/MyProgram#``(). -[5:0..5:0): -> _empty_/toplevel$package.MyProgram(). -[5:0..5:0): -> scala/util/CommandLineParser.parseArgument(). -[5:0..5:0): -> _empty_/MyProgram#main().(args) -[5:0..5:0): -> scala/util/FromString.given_FromString_Int. -[5:0..5:0): -> scala/util/CommandLineParser.showError(). -[5:0..5:0): -> local0 -[5:1..5:5): main -> scala/main# -[5:10..5:19): MyProgram <- _empty_/toplevel$package.MyProgram(). -[5:20..5:25): times <- _empty_/toplevel$package.MyProgram().(times) -[5:27..5:30): Int -> scala/Int# -[5:33..5:37): Unit -> scala/Unit# -[5:41..5:41): -> scala/LowPriorityImplicits#intWrapper(). -[5:43..5:45): to -> scala/runtime/RichInt#to(). -[5:46..5:51): times -> _empty_/toplevel$package.MyProgram().(times) -[5:53..5:60): foreach -> scala/collection/immutable/Range#foreach(). -[5:67..5:74): println -> scala/Predef.println(+1).