From 22c229e4ed2100d662fe05f9a610186ce1ebbb5a Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Thu, 5 Apr 2012 23:17:52 -0700 Subject: Style tweaks to b28ece2f4b . We don't use Option[Symbol]. --- src/compiler/scala/tools/nsc/transform/Mixin.scala | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/compiler') diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala index d0bba1d3c6..ed410a76db 100644 --- a/src/compiler/scala/tools/nsc/transform/Mixin.scala +++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala @@ -121,7 +121,7 @@ abstract class Mixin extends InfoTransform with ast.TreeDSL { * @param member The symbol statically referred to by the superaccessor in the trait * @param mixinClass The mixin class that produced the superaccessor */ - private def rebindSuper(base: Symbol, member: Symbol, mixinClass: Symbol): Option[Symbol] = + private def rebindSuper(base: Symbol, member: Symbol, mixinClass: Symbol): Symbol = afterPickler { var bcs = base.info.baseClasses.dropWhile(mixinClass !=).tail var sym: Symbol = NoSymbol @@ -136,7 +136,7 @@ abstract class Mixin extends InfoTransform with ast.TreeDSL { sym = member.matchingSymbol(bcs.head, base.thisType).suchThat(sym => !sym.hasFlag(DEFERRED | BRIDGE)) bcs = bcs.tail } - if (sym != NoSymbol) Some(sym) else None + sym } // --------- type transformation ----------------------------------------------- @@ -338,9 +338,13 @@ abstract class Mixin extends InfoTransform with ast.TreeDSL { else if (mixinMember.isSuperAccessor) { // mixin super accessors val superAccessor = addMember(clazz, mixinMember.cloneSymbol(clazz)) setPos clazz.pos assert(superAccessor.alias != NoSymbol, superAccessor) + rebindSuper(clazz, mixinMember.alias, mixinClass) match { - case Some(alias1) => superAccessor.asInstanceOf[TermSymbol] setAlias alias1 - case None => unit.error(clazz.pos, "Member "+ mixinMember.alias +" of mixin "+ mixinClass +" is missing a concrete super implementation.") + case NoSymbol => + unit.error(clazz.pos, "Member %s of mixin %s is missing a concrete super implementation.".format( + mixinMember.alias, mixinClass)) + case alias1 => + superAccessor.asInstanceOf[TermSymbol] setAlias alias1 } } else if (mixinMember.isMethod && mixinMember.isModule && mixinMember.hasNoFlags(LIFTED | BRIDGE)) { -- cgit v1.2.3