Skip to content

Add stylechecking to test suite, fix style errors #469

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 25 commits into from
Apr 9, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c832ffc
Add scalastyle to dependencies, with default config.
DarkDimius Apr 9, 2015
f73d46a
Make all Dotty source files end in newline.
DarkDimius Apr 9, 2015
d9b2241
Make all dotty tests end in newline
DarkDimius Apr 9, 2015
34e77a9
Disable style tests that are known not to pass.
DarkDimius Apr 9, 2015
9602523
Replace tabs with 4 spaces in Dotty source.
DarkDimius Apr 9, 2015
6a5a6cc
Replace tabs with 4 spaces in Dotty tests.
DarkDimius Apr 9, 2015
956d0bd
Allow setters in method name reggae.
DarkDimius Apr 9, 2015
b9d06ff
Disable MethodNameChecker.
DarkDimius Apr 9, 2015
d39068a
ScalaStyle gives spurious errors for braces in ifs.
DarkDimius Apr 9, 2015
d705443
Code simplifications stimulated by SimplifyBooleanExpressionChecker.
DarkDimius Apr 9, 2015
33f5d62
Removing whitespaces before `[`
DarkDimius Apr 9, 2015
afa630a
Remove trailing spaces in Dotty source.
DarkDimius Apr 9, 2015
4d1c9e2
Remove trailing spaces in Dotty tests.
DarkDimius Apr 9, 2015
67a6898
Disabling more style checks that do not apply to dotty.
DarkDimius Apr 9, 2015
9f80c0d
We sometimes define object with a lowercase name
DarkDimius Apr 9, 2015
d7c4408
Add spaces around + in dotty source.
DarkDimius Apr 9, 2015
f635898
Add spaces around + in tests.
DarkDimius Apr 9, 2015
be7062c
Disabling SpacesAfterPlusChecker: false positives for variances.
DarkDimius Apr 9, 2015
05e4c5d
Disabling SimplifyBooleanExpressionChecker: not have a hard to rewrit…
DarkDimius Apr 9, 2015
ca34e60
Use EnsureSingleSpaceAfterTokenChecker to discover forgotten spaces a…
DarkDimius Apr 9, 2015
d080478
EnsureSingleSpaceAfterTokenChecker doesn't work. Use regexp instead.
DarkDimius Apr 9, 2015
74957b3
Ensure spaces after `if` in Dotty source.
DarkDimius Apr 9, 2015
dad71ca
Ensure spaces after `if` in Dotty tests.
DarkDimius Apr 9, 2015
f810364
Remove debug message from ClassfileParser.
DarkDimius Apr 9, 2015
a16ab21
Enable scalastyle on travis.
DarkDimius Apr 9, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
language: scala
script:
- sbt -Ddotty.travis.build=yes update compile test
- sbt -Ddotty.travis.build=yes update compile test scalastyle
jdk:
- oraclejdk8
notifications:
Expand Down
10 changes: 5 additions & 5 deletions project/Build.scala
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ object DottyBuild extends Build {

// to get Scala 2.11
resolvers += Resolver.sonatypeRepo("releases"),

// get reflect and xml onboard
libraryDependencies ++= Seq("org.scala-lang" % "scala-reflect" % scalaVersion.value,
"org.scala-lang.modules" %% "scala-xml" % "1.0.1",
Expand Down Expand Up @@ -59,7 +59,7 @@ object DottyBuild extends Build {
val path = for {
file <- attList.map(_.data)
path = file.getAbsolutePath
} yield "-Xbootclasspath/p:" + path
} yield "-Xbootclasspath/p:" + path
// dotty itself needs to be in the bootclasspath
val fullpath = ("-Xbootclasspath/a:" + bin) :: path.toList
// System.err.println("BOOTPATH: " + fullpath)
Expand Down Expand Up @@ -109,8 +109,8 @@ object DottyBuild extends Build {
val path = for {
file <- attList.map(_.data)
path = file.getAbsolutePath
prefix = if(path.endsWith(".jar")) "p" else "a"
} yield "-Xbootclasspath/"+ prefix +":" + path
prefix = if (path.endsWith(".jar")) "p" else "a"
} yield "-Xbootclasspath/" + prefix + ":" + path
// dotty itself needs to be in the bootclasspath
val fullpath = ("-Xbootclasspath/a:" + bin) :: path.toList
// System.err.println("BOOTPATH: " + fullpath)
Expand All @@ -121,7 +121,7 @@ object DottyBuild extends Build {
else
List()
val res = agentOptions ::: travis_build ::: fullpath
println("Running with javaOptions: " +res)
println("Running with javaOptions: " + res)
res
}
)
Expand Down
3 changes: 3 additions & 0 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@

// Scala IDE project file generator
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.2.0")

addSbtPlugin("org.scalastyle" %% "scalastyle-sbt-plugin" % "0.6.0")

122 changes: 122 additions & 0 deletions scalastyle-config.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
<scalastyle>
<name>Scalastyle standard configuration</name>
<check level="warning" class="org.scalastyle.file.FileTabChecker" enabled="true"></check>
<check level="warning" class="org.scalastyle.file.FileLengthChecker" enabled="false">
<parameters>
<parameter name="maxFileLength"><![CDATA[800]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.file.HeaderMatchesChecker" enabled="false">
<parameters>
<parameter name="header"><![CDATA[// Copyright (C) 2011-2012 the original author or authors.
// See the LICENCE.txt file distributed with this work for additional
// information regarding copyright ownership.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.EnsureSingleSpaceAfterTokenChecker" enabled="false">
<parameters>
<parameter name="tokens">IF</parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.SpacesAfterPlusChecker" enabled="false"></check>
<check level="warning" class="org.scalastyle.file.WhitespaceEndOfLineChecker" enabled="true"></check>
<check level="warning" class="org.scalastyle.scalariform.SpacesBeforePlusChecker" enabled="true"></check>
<check level="warning" class="org.scalastyle.file.FileLineLengthChecker" enabled="false">
<parameters>
<parameter name="maxLineLength"><![CDATA[160]]></parameter>
<parameter name="tabSize"><![CDATA[4]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.ClassNamesChecker" enabled="true">
<parameters>
<parameter name="regex"><![CDATA[[A-Z][A-Za-z]*]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.ObjectNamesChecker" enabled="true">
<parameters>
<parameter name="regex"><![CDATA[[A-Z]?[A-Za-z]*]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.PackageObjectNamesChecker" enabled="true">
<parameters>
<parameter name="regex"><![CDATA[^[a-z][A-Za-z]*$]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.EqualsHashCodeChecker" enabled="false"></check>
<check level="warning" class="org.scalastyle.scalariform.IllegalImportsChecker" enabled="true">
<parameters>
<parameter name="illegalImports"><![CDATA[sun._,java.awt._]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.ParameterNumberChecker" enabled="false">
<parameters>
<parameter name="maxParameters"><![CDATA[8]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.MagicNumberChecker" enabled="false">
<parameters>
<parameter name="ignore"><![CDATA[-1,0,1,2,3]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.NoWhitespaceBeforeLeftBracketChecker" enabled="true"></check>
<check level="warning" class="org.scalastyle.scalariform.NoWhitespaceAfterLeftBracketChecker" enabled="true"></check>
<check level="warning" class="org.scalastyle.scalariform.ReturnChecker" enabled="false"></check>
<check level="warning" class="org.scalastyle.scalariform.NullChecker" enabled="false"></check>
<check level="warning" class="org.scalastyle.scalariform.NoCloneChecker" enabled="false"></check>
<check level="warning" class="org.scalastyle.scalariform.NoFinalizeChecker" enabled="true"></check>
<check level="warning" class="org.scalastyle.scalariform.CovariantEqualsChecker" enabled="true"></check>
<check level="warning" class="org.scalastyle.scalariform.StructuralTypeChecker" enabled="false"></check>
<check level="warning" class="org.scalastyle.file.RegexChecker" enabled="true">
<parameters>
<parameter name="regex"><![CDATA[if\(]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.NumberOfTypesChecker" enabled="false">
<parameters>
<parameter name="maxTypes"><![CDATA[30]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.CyclomaticComplexityChecker" enabled="false">
<parameters>
<parameter name="maximum"><![CDATA[10]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.UppercaseLChecker" enabled="true"></check>
<check level="warning" class="org.scalastyle.scalariform.SimplifyBooleanExpressionChecker" enabled="false"></check>
<check level="warning" class="org.scalastyle.scalariform.IfBraceChecker" enabled="false">
<parameters>
<parameter name="singleLineAllowed"><![CDATA[true]]></parameter>
<parameter name="doubleLineAllowed"><![CDATA[true]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.MethodLengthChecker" enabled="false">
<parameters>
<parameter name="maxLength"><![CDATA[50]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.MethodNamesChecker" enabled="false">
<parameters>
<parameter name="regex"><![CDATA[^[a-z][A-Za-z0-9]*(_=)?$]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.NumberOfMethodsInTypeChecker" enabled="false">
<parameters>
<parameter name="maxMethods"><![CDATA[30]]></parameter>
</parameters>
</check>
<check level="warning" class="org.scalastyle.scalariform.PublicMethodsHaveTypeChecker" enabled="false"></check>
<check level="warning" class="org.scalastyle.file.NewLineAtEofChecker" enabled="true"></check>
<check level="warning" class="org.scalastyle.file.NoNewLineAtEofChecker" enabled="false"></check>
</scalastyle>
2 changes: 1 addition & 1 deletion src/dotty/DottyPredef.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ object DottyPredef {
/** implicits for ClassTag and TypeTag. Should be implemented with macros */
implicit def classTag[T]: ClassTag[T] = ???
implicit def typeTag[T]: TypeTag[T] = ???
}
}
2 changes: 1 addition & 1 deletion src/dotty/Pair.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ package dotty

class Pair[T, U](x: T, y: U) {

}
}
2 changes: 1 addition & 1 deletion src/dotty/Singleton.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ package dotty

class Singleton {

}
}
2 changes: 1 addition & 1 deletion src/dotty/annotation/internal/Alias.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ import scala.annotation.Annotation

class Alias(aliased: Any) extends Annotation {

}
}
2 changes: 1 addition & 1 deletion src/dotty/annotation/internal/AnnotationDefault.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ import scala.annotation.Annotation

class AnnotationDefault extends Annotation {

}
}
2 changes: 1 addition & 1 deletion src/dotty/annotation/internal/Child.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ import scala.annotation.Annotation

class Child[T] extends Annotation {

}
}
2 changes: 1 addition & 1 deletion src/dotty/annotation/internal/Repeated.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ package dotty.annotation.internal

import scala.annotation.Annotation

final class Repeated() extends Annotation
final class Repeated() extends Annotation
2 changes: 1 addition & 1 deletion src/dotty/language.scala
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ object language {
/** No auto tupling */
val noAutoTupling = new Feature

}
}
6 changes: 3 additions & 3 deletions src/dotty/runtime/Arrays.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ object Arrays {
*/
def newGenericArray[T](length: Int)(implicit tag: ClassTag[T]): Array[T] =
tag.newArray(length)

/** Convert a sequence to a Java array with element type given by `clazz`. */
def seqToArray[T](xs: Seq[T], clazz: Class[_]): Array[T] = {
val arr = java.lang.reflect.Array.newInstance(clazz, xs.length).asInstanceOf[Array[T]]
xs.copyToArray(arr)
arr
}

/** Create an array of type T. T must be of form Array[E], with
* E being a reference type.
*/
Expand Down Expand Up @@ -51,4 +51,4 @@ object Arrays {

/** Create a scala.runtime.BoxedUnit[] array */
def newUnitArray(length: Int): Array[Unit] = ???
}
}
2 changes: 1 addition & 1 deletion src/dotty/tools/backend/jvm/CollectEntryPoints.scala
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class CollectEntryPoints extends MiniPhaseTransform {
def phaseName: String = "Collect entry points"

override def transformDefDef(tree: tpd.DefDef)(implicit ctx: Context, info: TransformerInfo): tpd.Tree = {
if((tree.symbol ne NoSymbol) && CollectEntryPoints.isJavaEntyPoint(tree.symbol)) {
if ((tree.symbol ne NoSymbol) && CollectEntryPoints.isJavaEntyPoint(tree.symbol)) {
ctx.genBCodePhase.asInstanceOf[GenBCode].registerEntryPoint(tree.symbol)
}
tree
Expand Down
20 changes: 10 additions & 10 deletions src/dotty/tools/backend/jvm/DottyBackendInterface.scala
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ class DottyBackendInterface()(implicit ctx: Context) extends BackendInterface{
def shouldEmitJumpAfterLabels = true

def dumpClasses: Option[String] =
if(ctx.settings.Ydumpclasses.isDefault) None
if (ctx.settings.Ydumpclasses.isDefault) None
else Some(ctx.settings.Ydumpclasses.value)

def mainClass: Option[String] =
Expand Down Expand Up @@ -423,7 +423,7 @@ class DottyBackendInterface()(implicit ctx: Context) extends BackendInterface{
case TermRef(prefix: ThisType, name) =>
Some(tpd.This(prefix.cls).select(i.symbol))
case TermRef(NoPrefix, name) =>
if(i.symbol is Flags.Method) Some(This(i.symbol.enclosingClass).select(i.symbol)) // workaround #342 todo: remove after fixed
if (i.symbol is Flags.Method) Some(This(i.symbol.enclosingClass).select(i.symbol)) // workaround #342 todo: remove after fixed
else None
case _ => None
}
Expand Down Expand Up @@ -663,7 +663,7 @@ class DottyBackendInterface()(implicit ctx: Context) extends BackendInterface{
def companionSymbol: Symbol = if (sym is Flags.Module) companionClass else companionModule
def moduleClass: Symbol = toDenot(sym).moduleClass
def enclosingClassSym: Symbol = {
if(this.isClass) {
if (this.isClass) {
val ct = ctx.withPhase(ctx.flattenPhase.prev)
toDenot(sym)(ct).owner.enclosingClass(ct)
}
Expand Down Expand Up @@ -792,7 +792,7 @@ class DottyBackendInterface()(implicit ctx: Context) extends BackendInterface{
t.info match {

case _ =>
if(!t.symbol.isClass) nonClassTypeRefToBType(t.symbol) // See comment on nonClassTypeRefToBType
if (!t.symbol.isClass) nonClassTypeRefToBType(t.symbol) // See comment on nonClassTypeRefToBType
else primitiveOrClassToBType(t.symbol) // Common reference to a type such as scala.Int or java.lang.String
}
case Types.ClassInfo(_, sym, _, _, _) => primitiveOrClassToBType(sym) // We get here, for example, for genLoadModule, which invokes toTypeKind(moduleClassSymbol.info)
Expand Down Expand Up @@ -942,7 +942,7 @@ class DottyBackendInterface()(implicit ctx: Context) extends BackendInterface{
def _3: Tree = field.rhs

override def unapply(s: LabelDef): DottyBackendInterface.this.LabelDef.type = {
if(s.symbol is Flags.Label) this.field = s
if (s.symbol is Flags.Label) this.field = s
else this.field = null
this
}
Expand Down Expand Up @@ -1021,16 +1021,16 @@ class DottyBackendInterface()(implicit ctx: Context) extends BackendInterface{
def _2 = field.meth
def _3 = {
val t = field.tpt.tpe.typeSymbol
if(t.exists) t
if (t.exists) t
else {
val arity = field.meth.tpe.widenDealias.paramTypes.size - _1.size
val returnsUnit = field.meth.tpe.widenDealias.resultType.classSymbol == UnitClass
if(returnsUnit)
ctx.requiredClass(("scala.compat.java8.JProcedure"+arity).toTermName)
else ctx.requiredClass(("scala.compat.java8.JFunction"+arity).toTermName)
if (returnsUnit)
ctx.requiredClass(("scala.compat.java8.JProcedure" + arity).toTermName)
else ctx.requiredClass(("scala.compat.java8.JFunction" + arity).toTermName)
}
}
}

def currentUnit = ctx.compilationUnit
}
}
12 changes: 6 additions & 6 deletions src/dotty/tools/backend/jvm/LabelDefs.scala
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ import StdNames.nme
*
* <label> def foo(i: Int) = {
* <label> def bar = 0
* <label> def dough(i: Int) = if(i == 0) bar else foo(i-1)
* <label> def dough(i: Int) = if (i == 0) bar else foo(i-1)
* dough(i)
* }
*
Expand All @@ -54,7 +54,7 @@ import StdNames.nme
*
* \
* <label> def foo(i: Int) = dough(i)
* <label> def dough(i: Int) = if(i == 0) bar else foo(i-1)
* <label> def dough(i: Int) = if (i == 0) bar else foo(i-1)
* <label> def bar = 2
* foo(100)
*
Expand All @@ -64,7 +64,7 @@ import StdNames.nme
* <jump foo>
* <label> def foo(i: Int) = dough(i)
* // <jump a> // unreachable
* <label> def dough(i: Int) = if(i == 0) bar else foo(i-1)
* <label> def dough(i: Int) = if (i == 0) bar else foo(i-1)
* // <jump a> // unreachable
* <label> def bar = 2
* // <jump a> // unreachable
Expand Down Expand Up @@ -107,7 +107,7 @@ class LabelDefs extends MiniPhaseTransform {
labelLevel = labelLevel + 1
val r = Block(moveLabels(t), t)
labelLevel = labelLevel - 1
if(labelLevel == 0) beingAppended.clear()
if (labelLevel == 0) beingAppended.clear()
r
case _ => if (entryPoints.nonEmpty && labelDefs.nonEmpty) super.transform(tree) else tree
}
Expand Down Expand Up @@ -206,14 +206,14 @@ class LabelDefs extends MiniPhaseTransform {
labelCalls(r.symbol) = parentLabelCalls
parentLabelCalls = st

if(shouldMoveLabel) {
if (shouldMoveLabel) {
labelDefs(r.symbol) = r
EmptyTree
} else r
case t: Apply if t.symbol is Flags.Label =>
val sym = t.symbol
parentLabelCalls = parentLabelCalls + t
if(owner != sym) callCounts(sym) = callCounts(sym) + 1
if (owner != sym) callCounts(sym) = callCounts(sym) + 1
super.transform(tree)
case _ =>
super.transform(tree)
Expand Down
Empty file modified src/dotty/tools/backend/jvm/scalaPrimitives.scala
100755 → 100644
Empty file.
2 changes: 1 addition & 1 deletion src/dotty/tools/dotc/CompilationUnit.scala
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@ class CompilationUnit(val source: SourceFile) {
* so one can reliably use this function only dirrectly after `pickler`
*/
var addrOfSym: Symbol => Option[Addr] = (_ => None)
}
}
Loading