Skip to content

Commit 16ebbea

Browse files
committed
Only allow opaque type def at outermost
1 parent a0db7c1 commit 16ebbea

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

compiler/src/dotty/tools/dotc/parsing/Parsers.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4684,7 +4684,7 @@ object Parsers {
46844684
* | Expr1
46854685
* |
46864686
*/
4687-
def blockStatSeq(): List[Tree] = checkNoEscapingPlaceholders {
4687+
def blockStatSeq(outermost: Boolean = false): List[Tree] = checkNoEscapingPlaceholders {
46884688
val stats = new ListBuffer[Tree]
46894689
while
46904690
var empty = false
@@ -4696,7 +4696,7 @@ object Parsers {
46964696
stats += closure(in.offset, Location.InBlock, modifiers(BitSet(IMPLICIT)))
46974697
else if isIdent(nme.extension) && followingIsExtension() then
46984698
stats += extension()
4699-
else if ctx.mode.is(Mode.Interactive) && isDefIntro(localModifierTokens) then
4699+
else if outermost && ctx.mode.is(Mode.Interactive) && isDefIntro(localModifierTokens) then
47004700
stats +++= localDef(in.offset)
47014701
else if isDefIntro(localModifierTokens, excludedSoftModifiers = Set(nme.`opaque`)) then
47024702
stats +++= localDef(in.offset)

compiler/src/dotty/tools/repl/ParseResult.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ object ParseResult {
122122

123123
private def parseStats(using Context): List[untpd.Tree] = {
124124
val parser = new Parser(ctx.source)
125-
val stats = parser.blockStatSeq()
125+
val stats = parser.blockStatSeq(outermost = true)
126126
parser.accept(Tokens.EOF)
127127
stats
128128
}

0 commit comments

Comments
 (0)