aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/transform/SymUtils.scala3
-rw-r--r--src/dotty/tools/dotc/transform/SyntheticMethods.scala4
2 files changed, 5 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/transform/SymUtils.scala b/src/dotty/tools/dotc/transform/SymUtils.scala
index 82bea1813..2875327c4 100644
--- a/src/dotty/tools/dotc/transform/SymUtils.scala
+++ b/src/dotty/tools/dotc/transform/SymUtils.scala
@@ -51,6 +51,9 @@ class SymUtils(val self: Symbol) extends AnyVal {
def accessorNamed(name: TermName)(implicit ctx: Context): Symbol =
self.owner.info.decl(name).suchThat(_ is Accessor).symbol
+ def caseAccessors(implicit ctx:Context) =
+ self.decls.filter(_ is CaseAccessor).toList
+
def getter(implicit ctx: Context): Symbol =
if (self.isGetter) self else accessorNamed(self.asTerm.name.getterName)
diff --git a/src/dotty/tools/dotc/transform/SyntheticMethods.scala b/src/dotty/tools/dotc/transform/SyntheticMethods.scala
index 34cca2872..128449efa 100644
--- a/src/dotty/tools/dotc/transform/SyntheticMethods.scala
+++ b/src/dotty/tools/dotc/transform/SyntheticMethods.scala
@@ -2,7 +2,7 @@ package dotty.tools.dotc
package transform
import core._
-import Symbols._, Types._, Contexts._, Names._, StdNames._, Constants._
+import Symbols._, Types._, Contexts._, Names._, StdNames._, Constants._, SymUtils._
import scala.collection.{ mutable, immutable }
import Flags._
import TreeTransforms._
@@ -48,7 +48,7 @@ class SyntheticMethods extends MiniPhaseTransform with IdentityDenotTransformer
*/
def syntheticMethods(clazz: ClassSymbol)(implicit ctx: Context): List[Tree] = {
val clazzType = clazz.typeRef
- def accessors = clazz.decls.filter(_ is CaseAccessor).toList
+ lazy val accessors = clazz.caseAccessors
val symbolsToSynthesize: List[Symbol] =
if (clazz.is(Case)) caseSymbols