From 4c13c952bcc2980c872b6190bb366f748d81fb78 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Mon, 18 Nov 2019 13:01:31 +0100 Subject: [PATCH] Fix #7529: Don't drop modifiers when desugaring extension methods --- compiler/src/dotty/tools/dotc/ast/Desugar.scala | 2 +- tests/neg/i7529.scala | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 tests/neg/i7529.scala diff --git a/compiler/src/dotty/tools/dotc/ast/Desugar.scala b/compiler/src/dotty/tools/dotc/ast/Desugar.scala index d3b4083c9105..2adb4886ac07 100644 --- a/compiler/src/dotty/tools/dotc/ast/Desugar.scala +++ b/compiler/src/dotty/tools/dotc/ast/Desugar.scala @@ -904,7 +904,7 @@ object desugar { else cpy.DefDef(mdef)( tparams = tparams ++ mdef.tparams, vparamss = leadingParams :: givenParamss ::: mdef.vparamss - ).withFlags(Extension) + ).withMods(mdef.mods | Extension) case mdef: Import => mdef case mdef => diff --git a/tests/neg/i7529.scala b/tests/neg/i7529.scala new file mode 100644 index 000000000000..efdaca97c40b --- /dev/null +++ b/tests/neg/i7529.scala @@ -0,0 +1,4 @@ +given fooOps: [A](a: A) with + + @nonsense // error: not found: nonsense + def foo = ??? \ No newline at end of file