From f857dea44a03bae7f147fc8be49f2555e3cc9eb7 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Fri, 10 Mar 2006 16:09:08 +0000 Subject: --- src/compiler/scala/tools/ant/ScalaBazaar.scala | 2 +- src/compiler/scala/tools/ant/ScalaTool.scala | 2 +- src/compiler/scala/tools/ant/Scalac.scala | 2 +- src/compiler/scala/tools/ant/Scaladoc.scala | 2 +- src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | 4 ++-- src/compiler/scala/tools/nsc/ast/parser/Scanners.scala | 4 ++-- src/compiler/scala/tools/nsc/doc/DocGenerator.scala | 4 +++- src/compiler/scala/tools/nsc/matching/AlgebraicMatchers.scala | 2 +- src/compiler/scala/tools/nsc/matching/Autom2.scala | 2 +- src/compiler/scala/tools/nsc/matching/BerrySethis.scala | 2 +- src/compiler/scala/tools/nsc/matching/CodeFactory.scala | 2 +- src/compiler/scala/tools/nsc/matching/DetWordAutoms.scala | 2 +- src/compiler/scala/tools/nsc/matching/LeftTracers.scala | 2 +- src/compiler/scala/tools/nsc/matching/MatcherLabels.scala | 2 +- src/compiler/scala/tools/nsc/matching/NondetWordAutoms.scala | 2 +- src/compiler/scala/tools/nsc/matching/PatternMatchers.scala | 2 +- src/compiler/scala/tools/nsc/matching/PatternNodeCreator.scala | 2 +- src/compiler/scala/tools/nsc/matching/PatternNodes.scala | 2 +- src/compiler/scala/tools/nsc/matching/RightTracers.scala | 2 +- src/compiler/scala/tools/nsc/matching/SequenceMatchers.scala | 2 +- src/compiler/scala/tools/nsc/matching/WordAutoms.scala | 2 +- src/compiler/scala/tools/nsc/transform/Mixin.scala | 2 +- src/compiler/scala/tools/nsc/util/HashSet.scala | 2 +- src/compiler/scala/tools/nsc/util/TreeSet.scala | 2 +- src/library/scala/List.scala | 4 ++-- src/library/scala/MatchError.scala | 2 +- src/library/scala/Option.scala | 2 +- src/library/scala/Predef.scala | 8 ++++---- src/library/scala/Seq.scala | 2 +- src/library/scala/Stream.scala | 8 ++++---- src/library/scala/collection/Map.scala | 2 +- src/library/scala/collection/MapProxy.scala | 2 +- src/library/scala/collection/Set.scala | 2 +- src/library/scala/collection/SetProxy.scala | 2 +- src/library/scala/collection/immutable/Map.scala | 2 +- src/library/scala/collection/immutable/Set.scala | 2 +- src/library/scala/collection/mutable/Buffer.scala | 2 +- src/library/scala/collection/mutable/BufferProxy.scala | 2 +- src/library/scala/collection/mutable/DefaultMapModel.scala | 2 +- src/library/scala/collection/mutable/HashTable.scala | 2 +- src/library/scala/collection/mutable/Map.scala | 2 +- src/library/scala/collection/mutable/MapProxy.scala | 2 +- src/library/scala/collection/mutable/Message.scala | 2 +- src/library/scala/collection/mutable/MultiMap.scala | 2 +- src/library/scala/collection/mutable/MutableList.scala | 2 +- src/library/scala/collection/mutable/ObservableBuffer.scala | 2 +- src/library/scala/collection/mutable/ObservableMap.scala | 2 +- src/library/scala/collection/mutable/ObservableSet.scala | 2 +- src/library/scala/collection/mutable/Publisher.scala | 2 +- src/library/scala/collection/mutable/QueueProxy.scala | 2 +- src/library/scala/collection/mutable/ResizableArray.scala | 2 +- src/library/scala/collection/mutable/Scriptable.scala | 2 +- src/library/scala/collection/mutable/Set.scala | 2 +- src/library/scala/collection/mutable/SetProxy.scala | 2 +- src/library/scala/collection/mutable/StackProxy.scala | 2 +- src/library/scala/collection/mutable/Subscriber.scala | 2 +- src/library/scala/collection/mutable/SynchronizedBuffer.scala | 2 +- src/library/scala/collection/mutable/SynchronizedMap.scala | 2 +- src/library/scala/collection/mutable/SynchronizedSet.scala | 2 +- src/library/scala/collection/mutable/Undoable.scala | 2 +- src/library/scala/concurrent/MailBox.scala | 6 +++--- src/library/scala/testing/Benchmark.scala | 2 +- src/library/scala/testing/SUnit.scala | 4 ++-- src/library/scala/util/automata/Inclusion.scala | 2 +- src/library/scala/util/logging/ConsoleLogger.scala | 2 +- src/library/scala/util/logging/Logged.scala | 2 +- src/library/scala/xml/dtd/DtdTypeSymbol.scala | 2 +- src/library/scala/xml/factory/NodeFactory.scala | 2 +- src/library/scala/xml/parsing/ExternalSources.scala | 2 +- src/library/scala/xml/parsing/MarkupParser.scala | 2 +- src/library/scala/xml/parsing/TokenTests.scala | 2 +- 71 files changed, 85 insertions(+), 83 deletions(-) (limited to 'src') diff --git a/src/compiler/scala/tools/ant/ScalaBazaar.scala b/src/compiler/scala/tools/ant/ScalaBazaar.scala index b6dd04088b..7eef9d5135 100644 --- a/src/compiler/scala/tools/ant/ScalaBazaar.scala +++ b/src/compiler/scala/tools/ant/ScalaBazaar.scala @@ -194,7 +194,7 @@ package scala.tools.ant { * ant file. * @param message A message describing the error. * @throws BuildException A build error exception thrown in every case. */ - private def error(message: String): All = + private def error(message: String): Nothing = throw new BuildException(message, getLocation()) private def writeFile(file: File, content: String) = diff --git a/src/compiler/scala/tools/ant/ScalaTool.scala b/src/compiler/scala/tools/ant/ScalaTool.scala index cb6d67c194..de130777ec 100644 --- a/src/compiler/scala/tools/ant/ScalaTool.scala +++ b/src/compiler/scala/tools/ant/ScalaTool.scala @@ -205,7 +205,7 @@ package scala.tools.ant { * ant file. * @param message A message describing the error. * @throws BuildException A build error exception thrown in every case. */ - private def error(message: String): All = + private def error(message: String): Nothing = throw new BuildException(message, getLocation()) private def readResource(resource: String, diff --git a/src/compiler/scala/tools/ant/Scalac.scala b/src/compiler/scala/tools/ant/Scalac.scala index 4a1369ffdb..9cfd8edd98 100644 --- a/src/compiler/scala/tools/ant/Scalac.scala +++ b/src/compiler/scala/tools/ant/Scalac.scala @@ -364,7 +364,7 @@ package scala.tools.ant { * ant file. * @param message A message describing the error. * @throws BuildException A build error exception thrown in every case. */ - private def error(message: String): All = + private def error(message: String): Nothing = throw new BuildException(message, getLocation()) /******************************************************************************\ diff --git a/src/compiler/scala/tools/ant/Scaladoc.scala b/src/compiler/scala/tools/ant/Scaladoc.scala index 6fc1c03f62..b8635fc8db 100644 --- a/src/compiler/scala/tools/ant/Scaladoc.scala +++ b/src/compiler/scala/tools/ant/Scaladoc.scala @@ -274,7 +274,7 @@ package scala.tools.ant { * ant file. * @param message A message describing the error. * @throws BuildException A build error exception thrown in every case. */ - private def error(message: String): All = + private def error(message: String): Nothing = throw new BuildException(message, getLocation()) private def readResource(resource: String): String = { diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala index fe2eebb66a..b31d99e528 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -324,7 +324,7 @@ trait Parsers requires SyntaxAnalyzer { in.nextToken(); name } else { - if (settings.migrate.value && in.token == REQUIRES || in.token == IMPLICIT) + if (settings.migrate.value && in.token == MATCH || in.token == REQUIRES || in.token == IMPLICIT) syntaxErrorMigrate(""+in+" is now a reserved word; cannot be used as identifier"); accept(IDENTIFIER); nme.ERROR @@ -1100,7 +1100,7 @@ trait Parsers requires SyntaxAnalyzer { r case _ => if (settings.migrate.value && - in.token == REQUIRES || in.token == IMPLICIT) + in.token == MATCH || in.token == REQUIRES || in.token == IMPLICIT) syntaxErrorMigrate(""+in+" is now a reserved word; cannot be used as identifier"); syntaxError("illegal start of simple pattern", true); errorPatternTree diff --git a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala index a38153f28c..f770a9d489 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala @@ -21,7 +21,7 @@ trait Scanners requires SyntaxAnalyzer { var token: int = EMPTY /** the token's position */ - protected var pos: int = 0 + var pos: int = 0 /** the first character position after the previous token */ var lastPos: int = 0 @@ -171,7 +171,7 @@ trait Scanners requires SyntaxAnalyzer { prev.copyFrom(this); fetchToken(); if (token == CLASS) - unit.warning(pos, "`mixin' is no longer a reserved word; you should use `trait' instead of `mixin class'"); + unit.warning(prev.pos, "`mixin' is no longer a reserved word; you should use `trait' instead of `mixin class'"); next.copyFrom(this) this.copyFrom(prev) } diff --git a/src/compiler/scala/tools/nsc/doc/DocGenerator.scala b/src/compiler/scala/tools/nsc/doc/DocGenerator.scala index b0ccc61e20..2205b68d76 100644 --- a/src/compiler/scala/tools/nsc/doc/DocGenerator.scala +++ b/src/compiler/scala/tools/nsc/doc/DocGenerator.scala @@ -2,7 +2,9 @@ * Copyright 2005-2006 LAMP/EPFL * @author Sean McDirmid */ -// $Id: $package scala.tools.nsc.doc; +// $Id: $ + +package scala.tools.nsc.doc; import scala.tools.nsc._; import java.io._; diff --git a/src/compiler/scala/tools/nsc/matching/AlgebraicMatchers.scala b/src/compiler/scala/tools/nsc/matching/AlgebraicMatchers.scala index a5ce51e472..28dc65ba77 100644 --- a/src/compiler/scala/tools/nsc/matching/AlgebraicMatchers.scala +++ b/src/compiler/scala/tools/nsc/matching/AlgebraicMatchers.scala @@ -9,7 +9,7 @@ package scala.tools.nsc.matching; /** the pattern matcher, tweaked to work with regular patterns * @author Burak Emir */ -mixin class AlgebraicMatchers requires TransMatcher { +trait AlgebraicMatchers requires TransMatcher { import global._; diff --git a/src/compiler/scala/tools/nsc/matching/Autom2.scala b/src/compiler/scala/tools/nsc/matching/Autom2.scala index f455e1f619..5d097a38b7 100644 --- a/src/compiler/scala/tools/nsc/matching/Autom2.scala +++ b/src/compiler/scala/tools/nsc/matching/Autom2.scala @@ -4,7 +4,7 @@ package scala.tools.nsc.matching ; import scala.tools.nsc.util.Position; -mixin class Autom2 requires TransMatcher { +trait Autom2 requires TransMatcher { import global._; diff --git a/src/compiler/scala/tools/nsc/matching/BerrySethis.scala b/src/compiler/scala/tools/nsc/matching/BerrySethis.scala index dad2e75f85..55201096b9 100644 --- a/src/compiler/scala/tools/nsc/matching/BerrySethis.scala +++ b/src/compiler/scala/tools/nsc/matching/BerrySethis.scala @@ -4,7 +4,7 @@ import java.util.{ HashSet, HashMap, TreeSet, TreeMap, Vector }; //import scala.compiler.printer.XMLAutomPrinter; -mixin class BerrySethis requires TransMatcher { +trait BerrySethis requires TransMatcher { import global._; /** a Berry-Sethi style construction for nfas. diff --git a/src/compiler/scala/tools/nsc/matching/CodeFactory.scala b/src/compiler/scala/tools/nsc/matching/CodeFactory.scala index 9ae5b5b98f..d123f0c9fd 100644 --- a/src/compiler/scala/tools/nsc/matching/CodeFactory.scala +++ b/src/compiler/scala/tools/nsc/matching/CodeFactory.scala @@ -5,7 +5,7 @@ package scala.tools.nsc.matching ; import scala.tools.nsc.util.Position; -mixin class CodeFactory requires TransMatcher { +trait CodeFactory requires TransMatcher { import global._ ; diff --git a/src/compiler/scala/tools/nsc/matching/DetWordAutoms.scala b/src/compiler/scala/tools/nsc/matching/DetWordAutoms.scala index 545940f510..f7a490c4fb 100644 --- a/src/compiler/scala/tools/nsc/matching/DetWordAutoms.scala +++ b/src/compiler/scala/tools/nsc/matching/DetWordAutoms.scala @@ -7,7 +7,7 @@ package scala.tools.nsc.matching ; import java.util._ ; -mixin class DetWordAutoms requires TransMatcher { +trait DetWordAutoms requires TransMatcher { import global._; class DetWordAutom { diff --git a/src/compiler/scala/tools/nsc/matching/LeftTracers.scala b/src/compiler/scala/tools/nsc/matching/LeftTracers.scala index 0d77065d40..12ea4a5586 100644 --- a/src/compiler/scala/tools/nsc/matching/LeftTracers.scala +++ b/src/compiler/scala/tools/nsc/matching/LeftTracers.scala @@ -10,7 +10,7 @@ import java.util._ ; import scala.tools.nsc.util.Position; -mixin class LeftTracers requires TransMatcher { +trait LeftTracers requires TransMatcher { import global._; diff --git a/src/compiler/scala/tools/nsc/matching/MatcherLabels.scala b/src/compiler/scala/tools/nsc/matching/MatcherLabels.scala index 65ce90cb8c..d11adfa29d 100644 --- a/src/compiler/scala/tools/nsc/matching/MatcherLabels.scala +++ b/src/compiler/scala/tools/nsc/matching/MatcherLabels.scala @@ -1,6 +1,6 @@ package scala.tools.nsc.matching ; -mixin class MatcherLabels requires TransMatcher { +trait MatcherLabels requires TransMatcher { import global._ ; diff --git a/src/compiler/scala/tools/nsc/matching/NondetWordAutoms.scala b/src/compiler/scala/tools/nsc/matching/NondetWordAutoms.scala index 3afa3d376d..cd1d8b576e 100644 --- a/src/compiler/scala/tools/nsc/matching/NondetWordAutoms.scala +++ b/src/compiler/scala/tools/nsc/matching/NondetWordAutoms.scala @@ -1,7 +1,7 @@ package scala.tools.nsc.matching ; import java.util._ ; -mixin class NondetWordAutoms { +trait NondetWordAutoms { /** a nondeterministic word automaton. * states are represented (implicitly) as Integer objects. */ diff --git a/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala b/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala index d3d6b9e283..16e2fcd461 100644 --- a/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala +++ b/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala @@ -8,7 +8,7 @@ package scala.tools.nsc.matching ; import scala.tools.nsc.util.Position; -mixin class PatternMatchers requires (TransMatcher with PatternNodes) extends AnyRef with PatternNodeCreator { +trait PatternMatchers requires (TransMatcher with PatternNodes) extends AnyRef with PatternNodeCreator { import global._; diff --git a/src/compiler/scala/tools/nsc/matching/PatternNodeCreator.scala b/src/compiler/scala/tools/nsc/matching/PatternNodeCreator.scala index 6c38893a58..23f1f7fa45 100644 --- a/src/compiler/scala/tools/nsc/matching/PatternNodeCreator.scala +++ b/src/compiler/scala/tools/nsc/matching/PatternNodeCreator.scala @@ -6,7 +6,7 @@ import scala.tools.nsc.util.Position; * we inherit the globals from PatternTool. */ -mixin class PatternNodeCreator requires (TransMatcher with PatternNodes) { +trait PatternNodeCreator requires (TransMatcher with PatternNodes) { import global._; diff --git a/src/compiler/scala/tools/nsc/matching/PatternNodes.scala b/src/compiler/scala/tools/nsc/matching/PatternNodes.scala index 39e9a0b9bb..9cd7399556 100644 --- a/src/compiler/scala/tools/nsc/matching/PatternNodes.scala +++ b/src/compiler/scala/tools/nsc/matching/PatternNodes.scala @@ -10,7 +10,7 @@ package scala.tools.nsc.matching ; import scala.tools.nsc.util.Position; -mixin class PatternNodes requires TransMatcher { +trait PatternNodes requires TransMatcher { import global._; diff --git a/src/compiler/scala/tools/nsc/matching/RightTracers.scala b/src/compiler/scala/tools/nsc/matching/RightTracers.scala index 754fd0bf1d..0041c4351f 100644 --- a/src/compiler/scala/tools/nsc/matching/RightTracers.scala +++ b/src/compiler/scala/tools/nsc/matching/RightTracers.scala @@ -11,7 +11,7 @@ import java.util._ ; import scala.tools.nsc.util.Position; import scala.tools.nsc.symtab.Flags; -mixin class RightTracers requires TransMatcher { +trait RightTracers requires TransMatcher { import global._ ; import java.util._ ; diff --git a/src/compiler/scala/tools/nsc/matching/SequenceMatchers.scala b/src/compiler/scala/tools/nsc/matching/SequenceMatchers.scala index 334b8273d0..3d4508a747 100644 --- a/src/compiler/scala/tools/nsc/matching/SequenceMatchers.scala +++ b/src/compiler/scala/tools/nsc/matching/SequenceMatchers.scala @@ -14,7 +14,7 @@ import java.util._ ; * is the "Builder" for "Director" class TransMatch. */ -mixin class SequenceMatchers requires TransMatcher { +trait SequenceMatchers requires TransMatcher { import global._; diff --git a/src/compiler/scala/tools/nsc/matching/WordAutoms.scala b/src/compiler/scala/tools/nsc/matching/WordAutoms.scala index 836253ca8e..b62e548041 100644 --- a/src/compiler/scala/tools/nsc/matching/WordAutoms.scala +++ b/src/compiler/scala/tools/nsc/matching/WordAutoms.scala @@ -10,7 +10,7 @@ import java.util._ ; import scala.tools.nsc.util.Position; -mixin class WordAutoms requires TransMatcher { +trait WordAutoms requires TransMatcher { import global._ ; /** translates a recognizer to scala code diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala index 0802e00359..a52ff1e5f5 100644 --- a/src/compiler/scala/tools/nsc/transform/Mixin.scala +++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala @@ -363,7 +363,7 @@ abstract class Mixin extends InfoTransform { case Super(_, mix) => if (mix == nme.EMPTY.toTypeName) { if (currentOwner.enclClass.isImplClass) - assert(false, "illegal super in mixin class: " + currentOwner.enclClass + " " + tree); + assert(false, "illegal super in trait: " + currentOwner.enclClass + " " + tree); } if (sym.owner hasFlag lateINTERFACE) staticCall(atPhase(phase.prev)(sym.overridingSymbol(implClass(sym.owner)))) diff --git a/src/compiler/scala/tools/nsc/util/HashSet.scala b/src/compiler/scala/tools/nsc/util/HashSet.scala index 9164ee527e..de84f9ca77 100644 --- a/src/compiler/scala/tools/nsc/util/HashSet.scala +++ b/src/compiler/scala/tools/nsc/util/HashSet.scala @@ -5,7 +5,7 @@ // $Id$ package scala.tools.nsc.util; -class HashSet[T >: AllRef <: AnyRef](initialCapacity: int) extends Set[T] { +class HashSet[T >: Null <: AnyRef](initialCapacity: int) extends Set[T] { private var capacity = initialCapacity; private var used = 0; diff --git a/src/compiler/scala/tools/nsc/util/TreeSet.scala b/src/compiler/scala/tools/nsc/util/TreeSet.scala index 574a0cc532..507d6ff751 100644 --- a/src/compiler/scala/tools/nsc/util/TreeSet.scala +++ b/src/compiler/scala/tools/nsc/util/TreeSet.scala @@ -7,7 +7,7 @@ package scala.tools.nsc.util; /** Sets implemented as binary trees. */ -class TreeSet[T >: AllRef <: AnyRef](less: (T, T) => boolean) extends Set[T] { +class TreeSet[T >: Null <: AnyRef](less: (T, T) => boolean) extends Set[T] { private class Tree(val elem: T) { var l: Tree = null; diff --git a/src/library/scala/List.scala b/src/library/scala/List.scala index c80b0c24e2..824e109a60 100644 --- a/src/library/scala/List.scala +++ b/src/library/scala/List.scala @@ -1057,10 +1057,10 @@ sealed abstract class List[+a] extends Seq[a] { * @version 1.0, 15/07/2003 */ [SerialVersionUID(0 - 8256821097970055419L)] -case object Nil extends List[Bottom] { +case object Nil extends List[Nothing] { def isEmpty = true; def head: All = error("head of empty list"); - def tail: List[Bottom] = error("tail of empty list"); + def tail: List[Nothing] = error("tail of empty list"); } /** A non empty list characterized by a head and a tail. diff --git a/src/library/scala/MatchError.scala b/src/library/scala/MatchError.scala index 37fe5a00e9..6f2c3ea95e 100644 --- a/src/library/scala/MatchError.scala +++ b/src/library/scala/MatchError.scala @@ -24,7 +24,7 @@ import Predef._ object MatchError { // todo: change pattern matcher so that dummy type parameter T can be removed. - def fail[T](source: String, line: Int): Bottom = throw new MatchError(source, line); + def fail[T](source: String, line: Int): Nothing = throw new MatchError(source, line); def report(source: String, line: Int, obj: Any) = try { diff --git a/src/library/scala/Option.scala b/src/library/scala/Option.scala index ff93da86b0..c5820beedc 100644 --- a/src/library/scala/Option.scala +++ b/src/library/scala/Option.scala @@ -83,4 +83,4 @@ final case class Some[+A](x: A) extends Option[A]; * @author Martin Odersky * @version 1.0, 16/07/2003 */ -case object None extends Option[Bottom]; +case object None extends Option[Nothing]; diff --git a/src/library/scala/Predef.scala b/src/library/scala/Predef.scala index 1d082d1db3..ace68c2eec 100644 --- a/src/library/scala/Predef.scala +++ b/src/library/scala/Predef.scala @@ -20,7 +20,7 @@ object Predef { // aliases ------------------------------------------------------- - type Bottom = All + type Nothing = All type Null = AllRef type byte = scala.Byte; @@ -152,11 +152,11 @@ object Predef { // errors and asserts ------------------------------------------------- - def error(message: String): Bottom = throw new Error(message); + def error(message: String): Nothing = throw new Error(message); - def exit: Bottom = exit(0); + def exit: Nothing = exit(0); - def exit(status: Int): Bottom = { + def exit(status: Int): Nothing = { java.lang.System.exit(status); throw new Throwable() } diff --git a/src/library/scala/Seq.scala b/src/library/scala/Seq.scala index 11f53292fa..2bb16f6f4c 100644 --- a/src/library/scala/Seq.scala +++ b/src/library/scala/Seq.scala @@ -50,7 +50,7 @@ object Seq { * @author Matthias Zenger * @version 1.0, 16/07/2003 */ -mixin class Seq[+A] extends AnyRef with PartialFunction[Int, A] with Iterable[A] { +trait Seq[+A] extends AnyRef with PartialFunction[Int, A] with Iterable[A] { /** Returns the length of the sequence. * diff --git a/src/library/scala/Stream.scala b/src/library/scala/Stream.scala index d86af7392d..42669be6d2 100644 --- a/src/library/scala/Stream.scala +++ b/src/library/scala/Stream.scala @@ -21,10 +21,10 @@ package scala; */ object Stream { - val empty: Stream[Bottom] = new Stream[Bottom] { + val empty: Stream[Nothing] = new Stream[Nothing] { def isEmpty = true; - def head: Bottom = error("head of empty stream"); - def tail: Stream[Bottom] = error("tail of empty stream"); + def head: Nothing = error("head of empty stream"); + def tail: Stream[Nothing] = error("tail of empty stream"); def printElems(buf: StringBuffer, prefix: String): StringBuffer = buf; } @@ -124,7 +124,7 @@ object Stream { * @author Martin Odersky, Matthias Zenger * @version 1.1 08/08/03 */ -mixin class Stream[+a] extends Seq[a] { +trait Stream[+a] extends Seq[a] { def isEmpty: Boolean; def head: a; diff --git a/src/library/scala/collection/Map.scala b/src/library/scala/collection/Map.scala index 21d4bc9041..7b517f8c29 100644 --- a/src/library/scala/collection/Map.scala +++ b/src/library/scala/collection/Map.scala @@ -26,7 +26,7 @@ package scala.collection; * @author Matthias Zenger * @version 1.1, 02/05/2004 */ -mixin class Map[A, +B] extends AnyRef +trait Map[A, +B] extends AnyRef with PartialFunction[A, B] with Iterable[Pair[A, B]] { diff --git a/src/library/scala/collection/MapProxy.scala b/src/library/scala/collection/MapProxy.scala index 982deeab7e..819627546d 100644 --- a/src/library/scala/collection/MapProxy.scala +++ b/src/library/scala/collection/MapProxy.scala @@ -19,7 +19,7 @@ package scala.collection; * @author Matthias Zenger * @version 1.0, 21/07/2003 */ -mixin class MapProxy[A, +B] extends Map[A, B] with IterableProxy[Pair[A, B]] { +trait MapProxy[A, +B] extends Map[A, B] with IterableProxy[Pair[A, B]] { def self: Map[A, B]; diff --git a/src/library/scala/collection/Set.scala b/src/library/scala/collection/Set.scala index 99d7968567..3d391f2c79 100644 --- a/src/library/scala/collection/Set.scala +++ b/src/library/scala/collection/Set.scala @@ -25,7 +25,7 @@ package scala.collection; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class Set[A] extends AnyRef with Function1[A, Boolean] with Iterable[A] { +trait Set[A] extends AnyRef with Function1[A, Boolean] with Iterable[A] { /** Returns the number of elements in this set. * diff --git a/src/library/scala/collection/SetProxy.scala b/src/library/scala/collection/SetProxy.scala index d4ce6a3d9d..5b0517551a 100644 --- a/src/library/scala/collection/SetProxy.scala +++ b/src/library/scala/collection/SetProxy.scala @@ -19,7 +19,7 @@ package scala.collection; * @author Matthias Zenger * @version 1.0, 21/07/2003 */ -mixin class SetProxy[A] extends Set[A] with IterableProxy[A] { +trait SetProxy[A] extends Set[A] with IterableProxy[A] { def self: Set[A]; diff --git a/src/library/scala/collection/immutable/Map.scala b/src/library/scala/collection/immutable/Map.scala index f98f5666c0..c6730c6fff 100644 --- a/src/library/scala/collection/immutable/Map.scala +++ b/src/library/scala/collection/immutable/Map.scala @@ -24,7 +24,7 @@ package scala.collection.immutable; * @author Erik Stenman * @version 1.1, 22/03/2004 */ -mixin class Map[A, B] extends AnyRef with collection.Map[A, B] { +trait Map[A, B] extends AnyRef with collection.Map[A, B] { /** This method returns a new map instance of the same class * mapping keys of the same type to values of type C. diff --git a/src/library/scala/collection/immutable/Set.scala b/src/library/scala/collection/immutable/Set.scala index 78e78257d6..7c5138d700 100644 --- a/src/library/scala/collection/immutable/Set.scala +++ b/src/library/scala/collection/immutable/Set.scala @@ -20,7 +20,7 @@ package scala.collection.immutable; * @author Matthias Zenger * @version 1.1, 03/05/2004 */ -mixin class Set[A] extends AnyRef with collection.Set[A] { +trait Set[A] extends AnyRef with collection.Set[A] { /** This method creates a new set with an additional element. */ diff --git a/src/library/scala/collection/mutable/Buffer.scala b/src/library/scala/collection/mutable/Buffer.scala index da89424865..86bc87d046 100644 --- a/src/library/scala/collection/mutable/Buffer.scala +++ b/src/library/scala/collection/mutable/Buffer.scala @@ -23,7 +23,7 @@ import Predef._; * @version 1.1, 02/03/2004 */ [cloneable] -mixin class Buffer[A] extends AnyRef +trait Buffer[A] extends AnyRef with Seq[A] with Scriptable[Message[Pair[Location, A]]] { diff --git a/src/library/scala/collection/mutable/BufferProxy.scala b/src/library/scala/collection/mutable/BufferProxy.scala index f21ad6c339..f2837f7200 100644 --- a/src/library/scala/collection/mutable/BufferProxy.scala +++ b/src/library/scala/collection/mutable/BufferProxy.scala @@ -19,7 +19,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 16/04/2004 */ -mixin class BufferProxy[A] extends Buffer[A] with Proxy { +trait BufferProxy[A] extends Buffer[A] with Proxy { def self: Buffer[A]; diff --git a/src/library/scala/collection/mutable/DefaultMapModel.scala b/src/library/scala/collection/mutable/DefaultMapModel.scala index 126b384aa2..d910a54f61 100644 --- a/src/library/scala/collection/mutable/DefaultMapModel.scala +++ b/src/library/scala/collection/mutable/DefaultMapModel.scala @@ -19,7 +19,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class DefaultMapModel[A, B] extends AnyRef with Map[A, B] { +trait DefaultMapModel[A, B] extends AnyRef with Map[A, B] { protected type Entry = DefaultEntry[A,B]; diff --git a/src/library/scala/collection/mutable/HashTable.scala b/src/library/scala/collection/mutable/HashTable.scala index 8401cae46d..6654340fa0 100644 --- a/src/library/scala/collection/mutable/HashTable.scala +++ b/src/library/scala/collection/mutable/HashTable.scala @@ -29,7 +29,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class HashTable[A] extends AnyRef { +trait HashTable[A] extends AnyRef { /** The load factor for the hash table. */ diff --git a/src/library/scala/collection/mutable/Map.scala b/src/library/scala/collection/mutable/Map.scala index 0dc8bbb47a..5437311425 100644 --- a/src/library/scala/collection/mutable/Map.scala +++ b/src/library/scala/collection/mutable/Map.scala @@ -21,7 +21,7 @@ package scala.collection.mutable; * @version 1.1, 09/05/2004 */ [cloneable] -mixin class Map[A, B] extends AnyRef +trait Map[A, B] extends AnyRef with collection.Map[A, B] with Scriptable[Message[Pair[A, B]]] { diff --git a/src/library/scala/collection/mutable/MapProxy.scala b/src/library/scala/collection/mutable/MapProxy.scala index c59a983b41..44e1e482a1 100644 --- a/src/library/scala/collection/mutable/MapProxy.scala +++ b/src/library/scala/collection/mutable/MapProxy.scala @@ -19,7 +19,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 21/07/2003 */ -mixin class MapProxy[A, B] extends Map[A, B] with collection.MapProxy[A, B] { +trait MapProxy[A, B] extends Map[A, B] with collection.MapProxy[A, B] { def self: Map[A, B]; diff --git a/src/library/scala/collection/mutable/Message.scala b/src/library/scala/collection/mutable/Message.scala index f48e2d2bb4..732caadf7a 100644 --- a/src/library/scala/collection/mutable/Message.scala +++ b/src/library/scala/collection/mutable/Message.scala @@ -21,7 +21,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class Message[+A]; +trait Message[+A]; /** This observable update refers to inclusion operations that add new elements * to collection classes. diff --git a/src/library/scala/collection/mutable/MultiMap.scala b/src/library/scala/collection/mutable/MultiMap.scala index 9ef34d5554..17363a12e0 100644 --- a/src/library/scala/collection/mutable/MultiMap.scala +++ b/src/library/scala/collection/mutable/MultiMap.scala @@ -19,7 +19,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class MultiMap[A, B] extends Map[A, Set[B]] { +trait MultiMap[A, B] extends Map[A, Set[B]] { protected def makeSet: Set[B] = new HashSet[B]; def add(key: A, value: B): Unit = get(key) match { diff --git a/src/library/scala/collection/mutable/MutableList.scala b/src/library/scala/collection/mutable/MutableList.scala index 3e46ff222f..f7c8999feb 100644 --- a/src/library/scala/collection/mutable/MutableList.scala +++ b/src/library/scala/collection/mutable/MutableList.scala @@ -19,7 +19,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class MutableList[A] extends Seq[A] with PartialFunction[Int, A] { +trait MutableList[A] extends Seq[A] with PartialFunction[Int, A] { protected var first: LinkedList[A] = null; protected var last: LinkedList[A] = null; diff --git a/src/library/scala/collection/mutable/ObservableBuffer.scala b/src/library/scala/collection/mutable/ObservableBuffer.scala index 8b977b656f..1440fe6845 100644 --- a/src/library/scala/collection/mutable/ObservableBuffer.scala +++ b/src/library/scala/collection/mutable/ObservableBuffer.scala @@ -20,7 +20,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class ObservableBuffer[A, This <: ObservableBuffer[A, This]] requires This +trait ObservableBuffer[A, This <: ObservableBuffer[A, This]] requires This extends Buffer[A] with Publisher[Message[Pair[Location, A]] with Undoable, This] diff --git a/src/library/scala/collection/mutable/ObservableMap.scala b/src/library/scala/collection/mutable/ObservableMap.scala index 2f47c2d6d3..5d58e4f2e8 100644 --- a/src/library/scala/collection/mutable/ObservableMap.scala +++ b/src/library/scala/collection/mutable/ObservableMap.scala @@ -20,7 +20,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class ObservableMap[A, B, This <: ObservableMap[A, B, This]] requires This +trait ObservableMap[A, B, This <: ObservableMap[A, B, This]] requires This extends Map[A, B] with Publisher[Message[Pair[A, B]] with Undoable, This] diff --git a/src/library/scala/collection/mutable/ObservableSet.scala b/src/library/scala/collection/mutable/ObservableSet.scala index 65a1fd91e3..b8338d634b 100644 --- a/src/library/scala/collection/mutable/ObservableSet.scala +++ b/src/library/scala/collection/mutable/ObservableSet.scala @@ -20,7 +20,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class ObservableSet[A, This <: ObservableSet[A, This]] requires This +trait ObservableSet[A, This <: ObservableSet[A, This]] requires This extends Set[A] with Publisher[Message[A] with Undoable, This] diff --git a/src/library/scala/collection/mutable/Publisher.scala b/src/library/scala/collection/mutable/Publisher.scala index 23305001b8..602fd3213f 100644 --- a/src/library/scala/collection/mutable/Publisher.scala +++ b/src/library/scala/collection/mutable/Publisher.scala @@ -22,7 +22,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class Publisher[A, This <: Publisher[A, This]] requires This { +trait Publisher[A, This <: Publisher[A, This]] requires This { private val filters = new HashMap[Subscriber[A, This], scala.collection.mutable.Set[A => Boolean]] with MultiMap[Subscriber[A, This], A => Boolean]; diff --git a/src/library/scala/collection/mutable/QueueProxy.scala b/src/library/scala/collection/mutable/QueueProxy.scala index 705094d954..0b927cd5e1 100644 --- a/src/library/scala/collection/mutable/QueueProxy.scala +++ b/src/library/scala/collection/mutable/QueueProxy.scala @@ -18,7 +18,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.1, 03/05/2004 */ -mixin class QueueProxy[A] extends Queue[A] with SeqProxy[A] { +trait QueueProxy[A] extends Queue[A] with SeqProxy[A] { def self: Queue[A]; diff --git a/src/library/scala/collection/mutable/ResizableArray.scala b/src/library/scala/collection/mutable/ResizableArray.scala index dd211d87b0..70caf928e1 100644 --- a/src/library/scala/collection/mutable/ResizableArray.scala +++ b/src/library/scala/collection/mutable/ResizableArray.scala @@ -18,7 +18,7 @@ package scala.collection.mutable; * @author Matthias Zenger, Burak Emir * @version 1.0, 03/05/2004 */ -mixin class ResizableArray[A] extends AnyRef with Iterable[A] { +trait ResizableArray[A] extends AnyRef with Iterable[A] { import scala.runtime.compat.Platform.arraycopy; protected val initialSize: Int = 16; diff --git a/src/library/scala/collection/mutable/Scriptable.scala b/src/library/scala/collection/mutable/Scriptable.scala index 32065f978d..9a09606075 100644 --- a/src/library/scala/collection/mutable/Scriptable.scala +++ b/src/library/scala/collection/mutable/Scriptable.scala @@ -18,7 +18,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 09/05/2004 */ -mixin class Scriptable[A] { +trait Scriptable[A] { /** Send a message to this scriptable object. */ diff --git a/src/library/scala/collection/mutable/Set.scala b/src/library/scala/collection/mutable/Set.scala index 18375bd619..0bb13bb7aa 100644 --- a/src/library/scala/collection/mutable/Set.scala +++ b/src/library/scala/collection/mutable/Set.scala @@ -21,7 +21,7 @@ package scala.collection.mutable; * @version 1.1, 09/05/2004 */ [cloneable] -mixin class Set[A] extends AnyRef with collection.Set[A] +trait Set[A] extends AnyRef with collection.Set[A] with Scriptable[Message[A]] { diff --git a/src/library/scala/collection/mutable/SetProxy.scala b/src/library/scala/collection/mutable/SetProxy.scala index ef0c0a6f43..e3745b6371 100644 --- a/src/library/scala/collection/mutable/SetProxy.scala +++ b/src/library/scala/collection/mutable/SetProxy.scala @@ -19,7 +19,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.1, 09/05/2004 */ -mixin class SetProxy[A] extends Set[A] with collection.SetProxy[A] { +trait SetProxy[A] extends Set[A] with collection.SetProxy[A] { def self: Set[A]; diff --git a/src/library/scala/collection/mutable/StackProxy.scala b/src/library/scala/collection/mutable/StackProxy.scala index 2f8c2fc836..10fd038887 100644 --- a/src/library/scala/collection/mutable/StackProxy.scala +++ b/src/library/scala/collection/mutable/StackProxy.scala @@ -18,7 +18,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 10/05/2004 */ -mixin class StackProxy[A] extends Stack[A] with SeqProxy[A] { +trait StackProxy[A] extends Stack[A] with SeqProxy[A] { def self: Stack[A]; diff --git a/src/library/scala/collection/mutable/Subscriber.scala b/src/library/scala/collection/mutable/Subscriber.scala index 7f50543d7a..8cd7e0af05 100644 --- a/src/library/scala/collection/mutable/Subscriber.scala +++ b/src/library/scala/collection/mutable/Subscriber.scala @@ -19,6 +19,6 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class Subscriber[-A, -B] { +trait Subscriber[-A, -B] { def notify(pub: B, event: A): Unit; } diff --git a/src/library/scala/collection/mutable/SynchronizedBuffer.scala b/src/library/scala/collection/mutable/SynchronizedBuffer.scala index ed692d4f1b..6a7defb413 100644 --- a/src/library/scala/collection/mutable/SynchronizedBuffer.scala +++ b/src/library/scala/collection/mutable/SynchronizedBuffer.scala @@ -18,7 +18,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class SynchronizedBuffer[A] extends Buffer[A] { +trait SynchronizedBuffer[A] extends Buffer[A] { abstract override def length: Int = synchronized { super.length; diff --git a/src/library/scala/collection/mutable/SynchronizedMap.scala b/src/library/scala/collection/mutable/SynchronizedMap.scala index 855cd0850c..1eb02241dd 100644 --- a/src/library/scala/collection/mutable/SynchronizedMap.scala +++ b/src/library/scala/collection/mutable/SynchronizedMap.scala @@ -18,7 +18,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class SynchronizedMap[A, B] extends Map[A, B] { +trait SynchronizedMap[A, B] extends Map[A, B] { abstract override def size: Int = synchronized { super.size; diff --git a/src/library/scala/collection/mutable/SynchronizedSet.scala b/src/library/scala/collection/mutable/SynchronizedSet.scala index a6df3a7edb..06eedd15f7 100644 --- a/src/library/scala/collection/mutable/SynchronizedSet.scala +++ b/src/library/scala/collection/mutable/SynchronizedSet.scala @@ -18,7 +18,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class SynchronizedSet[A] extends Set[A] { +trait SynchronizedSet[A] extends Set[A] { abstract override def size: Int = synchronized { super.size diff --git a/src/library/scala/collection/mutable/Undoable.scala b/src/library/scala/collection/mutable/Undoable.scala index 428d8086dd..f8d355c558 100644 --- a/src/library/scala/collection/mutable/Undoable.scala +++ b/src/library/scala/collection/mutable/Undoable.scala @@ -18,7 +18,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -mixin class Undoable { +trait Undoable { /** Undo the last operation. */ diff --git a/src/library/scala/concurrent/MailBox.scala b/src/library/scala/concurrent/MailBox.scala index 44418d448d..100c29faf2 100644 --- a/src/library/scala/concurrent/MailBox.scala +++ b/src/library/scala/concurrent/MailBox.scala @@ -104,7 +104,7 @@ class MailBox extends AnyRef with ListQueueCreator { /** * Module for dealing with queues. */ -mixin class QueueModule[a] { +trait QueueModule[a] { /** Type of queues. */ type t; /** Create an empty queue. */ @@ -116,7 +116,7 @@ mixin class QueueModule[a] { } /** Inefficient but simple queue module creator. */ -mixin class ListQueueCreator { +trait ListQueueCreator { def queueCreate[a]: QueueModule[a] = new QueueModule[a] { type t = List[a]; def make: t = Nil; @@ -137,7 +137,7 @@ mixin class ListQueueCreator { } /** Efficient queue module creator based on linked lists. */ -mixin class LinkedListQueueCreator { +trait LinkedListQueueCreator { import scala.collection.mutable.LinkedList; def queueCreate[a >: Null <: AnyRef]: QueueModule[a] = new QueueModule[a] { type t = Pair[LinkedList[a], LinkedList[a]]; // fst = the list, snd = last elem diff --git a/src/library/scala/testing/Benchmark.scala b/src/library/scala/testing/Benchmark.scala index 3a2af55010..2db1954a0c 100644 --- a/src/library/scala/testing/Benchmark.scala +++ b/src/library/scala/testing/Benchmark.scala @@ -30,7 +30,7 @@ package scala.testing; * This will run the benchmark 5 times and log the execution times in * a file called times.log */ -mixin class Benchmark { +trait Benchmark { /** this method should be implemented by the concrete benchmark */ def run: Unit; diff --git a/src/library/scala/testing/SUnit.scala b/src/library/scala/testing/SUnit.scala index 78df86ee13..a56b667ca9 100644 --- a/src/library/scala/testing/SUnit.scala +++ b/src/library/scala/testing/SUnit.scala @@ -39,7 +39,7 @@ package scala.testing; object SUnit { /** a Test can be run with its result being collected */ - mixin class Test { + trait Test { def run(r: TestResult):Unit; } @@ -132,7 +132,7 @@ object SUnit { } /** this class defined useful assert methods */ - mixin class Assert { + trait Assert { /** equality */ def assertEquals[A](msg:String, expected:A, actual: => A): Unit = if( expected != actual ) fail(msg); diff --git a/src/library/scala/util/automata/Inclusion.scala b/src/library/scala/util/automata/Inclusion.scala index df5ef16368..1e49617e21 100644 --- a/src/library/scala/util/automata/Inclusion.scala +++ b/src/library/scala/util/automata/Inclusion.scala @@ -16,7 +16,7 @@ package scala.util.automata ; * inspired by the AMoRE automata library * @author Burak */ -mixin class Inclusion[A <: AnyRef] { +trait Inclusion[A <: AnyRef] { val labels: Seq[A]; diff --git a/src/library/scala/util/logging/ConsoleLogger.scala b/src/library/scala/util/logging/ConsoleLogger.scala index b5afc6879e..6b539dfe72 100644 --- a/src/library/scala/util/logging/ConsoleLogger.scala +++ b/src/library/scala/util/logging/ConsoleLogger.scala @@ -16,7 +16,7 @@ package scala.util.logging; * A ConsoleLogger is mixed into a concrete class who has class Logged * among its base classes. */ -mixin class ConsoleLogger { +trait ConsoleLogger { /** logs argument to Console using Console.println */ def log(msg:String): Unit = Console.println(msg); diff --git a/src/library/scala/util/logging/Logged.scala b/src/library/scala/util/logging/Logged.scala index e715cdb9c9..f66794c14e 100644 --- a/src/library/scala/util/logging/Logged.scala +++ b/src/library/scala/util/logging/Logged.scala @@ -25,7 +25,7 @@ package scala.util.logging; * and the logging will be sent to the Console. */ -mixin class Logged { +trait Logged { /** this method should log the message given as argument somewhere * as a side-effect */ diff --git a/src/library/scala/xml/dtd/DtdTypeSymbol.scala b/src/library/scala/xml/dtd/DtdTypeSymbol.scala index 45b5f3663b..1933db6c34 100644 --- a/src/library/scala/xml/dtd/DtdTypeSymbol.scala +++ b/src/library/scala/xml/dtd/DtdTypeSymbol.scala @@ -12,4 +12,4 @@ package scala.xml.dtd; -mixin class DtdTypeSymbol; +trait DtdTypeSymbol; diff --git a/src/library/scala/xml/factory/NodeFactory.scala b/src/library/scala/xml/factory/NodeFactory.scala index 512ba35334..ebfd89ee97 100644 --- a/src/library/scala/xml/factory/NodeFactory.scala +++ b/src/library/scala/xml/factory/NodeFactory.scala @@ -12,7 +12,7 @@ package scala.xml.factory; -mixin class NodeFactory[A <: Node] { +trait NodeFactory[A <: Node] { val ignoreComments = false; val ignoreProcInstr = false; diff --git a/src/library/scala/xml/parsing/ExternalSources.scala b/src/library/scala/xml/parsing/ExternalSources.scala index 2394d96f5d..7282fef3fc 100644 --- a/src/library/scala/xml/parsing/ExternalSources.scala +++ b/src/library/scala/xml/parsing/ExternalSources.scala @@ -16,7 +16,7 @@ import scala.io.Source; import java.net._; import java.io._; -mixin class ExternalSources requires (ExternalSources with MarkupParser with MarkupHandler) { +trait ExternalSources requires (ExternalSources with MarkupParser with MarkupHandler) { private def externalSourceFromURL(url:URL): Source = { val in = diff --git a/src/library/scala/xml/parsing/MarkupParser.scala b/src/library/scala/xml/parsing/MarkupParser.scala index 7b0684731e..688740315b 100644 --- a/src/library/scala/xml/parsing/MarkupParser.scala +++ b/src/library/scala/xml/parsing/MarkupParser.scala @@ -26,7 +26,7 @@ import scala.xml.dtd._ ; * While XML elements are returned, DTD declarations - if handled - are * collected using side-effects. */ -mixin class MarkupParser requires (MarkupParser with MarkupHandler) extends AnyRef with TokenTests { +trait MarkupParser requires (MarkupParser with MarkupHandler) extends AnyRef with TokenTests { val input: Source; diff --git a/src/library/scala/xml/parsing/TokenTests.scala b/src/library/scala/xml/parsing/TokenTests.scala index b94513f64b..65d07e170f 100644 --- a/src/library/scala/xml/parsing/TokenTests.scala +++ b/src/library/scala/xml/parsing/TokenTests.scala @@ -15,7 +15,7 @@ package scala.xml.parsing; /** * Helper functions for parsing XML fragments */ -mixin class TokenTests { +trait TokenTests { /** (#x20 | #x9 | #xD | #xA) */ final def isSpace( ch:Char ):Boolean = ch match { -- cgit v1.2.3