diff --git a/compiler/src/dotty/tools/dotc/transform/SelectStatic.scala b/compiler/src/dotty/tools/dotc/transform/SelectStatic.scala index 1f5886b17535..3c1b469c1432 100644 --- a/compiler/src/dotty/tools/dotc/transform/SelectStatic.scala +++ b/compiler/src/dotty/tools/dotc/transform/SelectStatic.scala @@ -75,8 +75,6 @@ class SelectStatic extends MiniPhase with IdentityDenotTransformer { } private def normalize(t: Tree)(using Context) = t match { - case Select(Block(stats, qual), nm) => - Block(stats, cpy.Select(t)(qual, nm)) case Apply(Block(stats, qual), nm) => Block(stats, Apply(qual, nm)) case TypeApply(Block(stats, qual), nm) => diff --git a/tests/pos/24707/BuggyClass.scala b/tests/pos/24707/BuggyClass.scala new file mode 100644 index 000000000000..988370442d3e --- /dev/null +++ b/tests/pos/24707/BuggyClass.scala @@ -0,0 +1,16 @@ +import scala.language.implicitConversions + +class RichComposite(val comp: MockComposite) extends AnyVal { + def setRowLayout(margin: Int, spacing: Int, vertical: Boolean = false): MockLayout = ??? +} + +object Implicits { + implicit def toRichComposite(c: MockComposite): RichComposite = new RichComposite(c) +} + +import Implicits.* + +class BuggyClass(parent: MockComposite) { + val comp = new MockComposite(parent, 0) + comp.setRowLayout(5, 5).wrap = false // This triggers the bug +} diff --git a/tests/pos/24707/MockComposite.java b/tests/pos/24707/MockComposite.java new file mode 100644 index 000000000000..0883c7ea0122 --- /dev/null +++ b/tests/pos/24707/MockComposite.java @@ -0,0 +1,6 @@ +// Mock Java class replacing SWT Composite +public class MockComposite { + public MockComposite(MockComposite parent, int style) { + // Constructor that mimics SWT's Composite(Composite, int) + } +} diff --git a/tests/pos/24707/MockLayout.java b/tests/pos/24707/MockLayout.java new file mode 100644 index 000000000000..1da943fb4a64 --- /dev/null +++ b/tests/pos/24707/MockLayout.java @@ -0,0 +1,4 @@ +// Mock Java class replacing SWT RowLayout +public class MockLayout { + public boolean wrap; // The mutable field that triggers the bug +}