Skip to content

Commit

Permalink
Last warnings removed from Scala files
Browse files Browse the repository at this point in the history
Using multi-imports is now an error (like all other warnings).

All cases of multi-imports organized.
  • Loading branch information
Kwestor committed May 27, 2015
1 parent ee4fcee commit c258e61
Show file tree
Hide file tree
Showing 11 changed files with 147 additions and 175 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package org.scalaide.core.pc

import org.scalaide.core.FlakyTest
import org.scalaide.core.internal.jdt.model.ScalaCompilationUnit
import scala.reflect.internal.util.Position
import scala.reflect.internal.util.SourceFile
import scala.tools.nsc.doc.base.comment.Comment
import scala.tools.nsc.interactive.Response
import scala.reflect.internal.util.{ Position, SourceFile }
import org.junit._

import org.junit.After
import org.junit.Assert
import org.junit.Test
import org.scalaide.core.FlakyTest
import org.scalaide.core.compiler.IScalaPresentationCompiler
import org.scalaide.core.compiler.IScalaPresentationCompiler.Implicits.RichResponse
import org.scalaide.core.internal.jdt.model.ScalaCompilationUnit
import org.scalaide.core.testsetup.TestProjectSetup
import org.scalaide.core.compiler.IScalaPresentationCompiler.Implicits._
import org.scalaide.core.compiler.IScalaPresentationCompiler

object PresentationCompilerDocTest extends TestProjectSetup("pc_doc")

Expand Down Expand Up @@ -75,10 +77,10 @@ class PresentationCompilerDocTest {
doTest(open("return.scala"), expect)
}

/**
* @parameter preload compilation units expected to be loaded by the PC before the test
* @parameter unit the compilation unit containing the position mark
*/
/**
* @parameter preload compilation units expected to be loaded by the PC before the test
* @parameter unit the compilation unit containing the position mark
*/
private def doTest(unit: ScalaCompilationUnit, expectation: Comment => Boolean, preload: List[ScalaCompilationUnit] = Nil): Unit = {
for (u <- preload) { reload(u) }
unit.withSourceFile { (src, compiler) =>
Expand Down
2 changes: 1 addition & 1 deletion org.scala-ide.sdt.core/scala-ide-style-config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -114,5 +114,5 @@
<check level="warning" class="org.scalastyle.scalariform.PublicMethodsHaveTypeChecker" enabled="false"/>
<check level="warning" class="org.scalastyle.file.NewLineAtEofChecker" enabled="false"/>
<check level="warning" class="org.scalastyle.scalariform.NotImplementedErrorUsage" enabled="false" />
<check level="warning" class="org.scalastyle.scalariform.BlockImportChecker" enabled="true"/>
<check level="error" class="org.scalastyle.scalariform.BlockImportChecker" enabled="true"/>
</scalastyle>
Original file line number Diff line number Diff line change
@@ -1,76 +1,48 @@
package org.scalaide.core.internal

import org.eclipse.jdt.core.IJavaProject
import scala.collection.mutable
import scala.util.control.ControlThrowable
import scala.collection.mutable.ListBuffer
import scala.tools.nsc.settings.ScalaVersion

import org.eclipse.core.resources.IFile
import org.eclipse.core.resources.IProject
import org.eclipse.core.resources.IResourceChangeEvent
import org.eclipse.core.resources.IResourceChangeListener
import org.eclipse.core.resources.IResourceDelta
import org.eclipse.core.resources.IResourceDeltaVisitor
import org.eclipse.core.resources.ResourcesPlugin
import org.eclipse.core.runtime.CoreException
import org.eclipse.core.runtime.IStatus
import org.eclipse.core.runtime.Platform
import org.eclipse.core.runtime.Status
import org.eclipse.core.runtime.content.IContentTypeSettings
import org.eclipse.core.runtime.content.IContentType
import org.eclipse.jdt.core.ElementChangedEvent
import org.eclipse.jdt.core.IClassFile
import org.eclipse.jdt.core.ICompilationUnit
import org.eclipse.jdt.core.IElementChangedListener
import org.eclipse.jdt.core.JavaCore
import org.eclipse.jdt.core.IJavaElement
import org.eclipse.jdt.core.IJavaElementDelta
import org.eclipse.jdt.core.IPackageFragmentRoot
import org.eclipse.jdt.internal.core.JavaModel
import org.eclipse.jdt.internal.core.JavaProject
import org.eclipse.jdt.internal.core.PackageFragment
import org.eclipse.jdt.internal.core.PackageFragmentRoot
import org.eclipse.jdt.internal.core.util.Util
import org.eclipse.jdt.internal.ui.javaeditor.IClassFileEditorInput
import org.eclipse.jface.preference.IPreferenceStore
import org.eclipse.swt.widgets.Shell
import org.eclipse.swt.graphics.Color
import org.eclipse.jdt.core.IJavaProject
import org.eclipse.jdt.core.JavaCore
import org.eclipse.ui.IEditorInput
import org.eclipse.ui.IFileEditorInput
import org.eclipse.ui.PlatformUI
import org.eclipse.ui.IPartListener
import org.eclipse.ui.IWorkbenchPart
import org.eclipse.ui.IWorkbenchPage
import org.eclipse.ui.IPageListener
import org.eclipse.ui.IEditorPart
import org.eclipse.ui.part.FileEditorInput
import org.eclipse.ui.plugin.AbstractUIPlugin
import org.osgi.framework.BundleContext
import org.scalaide.core.IScalaInstallation
import org.scalaide.core.IScalaPlugin
import org.scalaide.core.SdtConstants
import org.scalaide.core.internal.builder.zinc.CompilerInterfaceStore
import org.scalaide.core.internal.jdt.model.ScalaClassFile
import org.scalaide.core.internal.jdt.model.ScalaCompilationUnit
import org.scalaide.core.internal.jdt.model.ScalaSourceFile
import org.scalaide.util.eclipse.OSGiUtils
import org.scalaide.ui.internal.templates.ScalaTemplateManager
import org.eclipse.jdt.ui.PreferenceConstants
import org.eclipse.core.resources.IResourceDelta
import org.scalaide.core.internal.project.ScalaInstallation.platformInstallation
import org.scalaide.core.internal.project.ScalaProject
import org.scalaide.logging.HasLogger
import org.osgi.framework.Bundle
import org.eclipse.jdt.core.ICompilationUnit
import scala.tools.nsc.io.AbstractFile
import scala.tools.nsc.settings.ScalaVersion
import scala.tools.nsc.settings.SpecificScalaVersion
import org.scalaide.core.resources.EclipseResource
import org.scalaide.logging.PluginLogConfigurator
import scala.tools.nsc.Settings
import org.scalaide.core.internal.project.ScalaProject
import org.scalaide.ui.internal.diagnostic
import org.scalaide.util.internal.CompilerUtils
import org.scalaide.core.internal.builder.zinc.CompilerInterfaceStore
import org.scalaide.util.internal.FixedSizeCache
import org.scalaide.core.IScalaInstallation
import org.scalaide.core.internal.project.ScalaInstallation.platformInstallation
import org.eclipse.core.runtime.content.IContentType
import org.scalaide.core.SdtConstants
import org.scalaide.ui.internal.migration.RegistryExtender
import org.scalaide.core.IScalaPlugin
import org.eclipse.core.resources.IResourceDeltaVisitor
import org.scalaide.util.Utils._
import org.scalaide.core.internal.jdt.model.ScalaCompilationUnit
import org.scalaide.ui.internal.editor.ScalaDocumentProvider
import org.scalaide.core.internal.jdt.model.ScalaClassFile
import org.eclipse.jdt.core.IClassFile
import org.scalaide.ui.internal.migration.RegistryExtender
import org.scalaide.ui.internal.templates.ScalaTemplateManager
import org.scalaide.util.Utils.WithAsInstanceOfOpt
import org.scalaide.util.eclipse.OSGiUtils
import org.scalaide.util.internal.CompilerUtils
import org.scalaide.util.internal.FixedSizeCache

object ScalaPlugin {

Expand All @@ -81,7 +53,9 @@ object ScalaPlugin {
}

class ScalaPlugin extends IScalaPlugin with PluginLogConfigurator with IResourceChangeListener with IElementChangedListener with HasLogger {
import CompilerUtils.{ ShortScalaVersion, isBinaryPrevious, isBinarySame }
import CompilerUtils.ShortScalaVersion
import CompilerUtils.isBinaryPrevious
import CompilerUtils.isBinarySame

import org.scalaide.core.SdtConstants._

Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package org.scalaide.core.internal.builder.zinc

import scala.collection.mutable
import scala.tools.nsc.reporters.Reporter
import org.scalaide.core.resources.EclipseResource
import org.scalaide.util.internal.SbtUtils.m2o
import scala.reflect.internal.Chars

import org.eclipse.core.resources.IMarker
import xsbti.{ Position, Severity }
import org.scalaide.util.internal.SbtUtils
import org.scalaide.util.eclipse.FileUtils
import org.eclipse.core.runtime.Path
import org.scalaide.core.IScalaProject
import org.scalaide.core.internal.builder.BuildProblemMarker
import org.scalaide.logging.HasLogger
import org.scalaide.core.resources.MarkerFactory
import scala.reflect.internal.Chars
import xsbti.Maybe
import org.scalaide.logging.HasLogger
import org.scalaide.util.eclipse.FileUtils
import org.scalaide.util.internal.SbtUtils

private case class SbtProblem(severity: xsbti.Severity, message: String, position: xsbti.Position, category: String)
extends xsbti.Problem {

import SbtUtils.m2o

private case class SbtProblem(severity: Severity, message: String, position: Position, category: String) extends xsbti.Problem {
override def equals(other: Any): Boolean = other match {
case otherProblem: xsbti.Problem =>
((message == otherProblem.message)
Expand All @@ -32,9 +32,10 @@ private case class SbtProblem(severity: Severity, message: String, position: Pos
message.hashCode + severity.hashCode
}

/** An Sbt Reporter that creates error markers as build errors are reported.
/**
* An Sbt Reporter that creates error markers as build errors are reported.
*
* @note It removes duplicate errors coming from scalac.
* @note It removes duplicate errors coming from scalac.
*/
private[zinc] class SbtBuildReporter(project: IScalaProject) extends xsbti.Reporter with HasLogger {
private val probs = new mutable.ArrayBuffer[xsbti.Problem]
Expand All @@ -53,7 +54,7 @@ private[zinc] class SbtBuildReporter(project: IScalaProject) extends xsbti.Repor
override def problems: Array[xsbti.Problem] = probs.toArray
override def comment(pos: xsbti.Position, msg: String): Unit = {}

override def log(pos: Position, msg: String, sev: Severity): Unit = {
override def log(pos: xsbti.Position, msg: String, sev: xsbti.Severity): Unit = {
val problem = SbtProblem(sev, msg, pos, "compile")
if (!probs.contains(problem)) {
createMarker(pos, msg, sev)
Expand All @@ -74,7 +75,7 @@ private[zinc] class SbtBuildReporter(project: IScalaProject) extends xsbti.Repor
case xsbti.Severity.Warn => IMarker.SEVERITY_WARNING
}

def createMarker(pos: Position, msg: String, sev: xsbti.Severity) = {
def createMarker(pos: xsbti.Position, msg: String, sev: xsbti.Severity) = {
import SbtUtils._
val severity = eclipseSeverity(sev)

Expand All @@ -96,7 +97,7 @@ private[zinc] class SbtBuildReporter(project: IScalaProject) extends xsbti.Repor
}

/** Return the identifier starting at `start` inside `content`. */
private def identifierLength(content: String, start: Maybe[Integer]): Int = {
private def identifierLength(content: String, start: xsbti.Maybe[Integer]): Int = {
def isOK(c: Char) = Chars.isIdentifierPart(c) || Chars.isOperatorPart(c)
if (start.isDefined)
(content drop start.get takeWhile isOK).size
Expand Down
Original file line number Diff line number Diff line change
@@ -1,62 +1,53 @@
package org.scalaide.core.internal.compiler

import scala.tools.nsc.interactive.FreshRunReq
import scala.collection.concurrent
import scala.collection.mutable
import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.SynchronizedMap
import org.eclipse.jdt.core.compiler.IProblem
import org.eclipse.jdt.internal.compiler.problem.DefaultProblem
import org.eclipse.jdt.internal.compiler.problem.ProblemSeverities
import scala.concurrent.duration.DurationInt
import scala.reflect.internal.util.BatchSourceFile
import scala.reflect.internal.util.Position
import scala.reflect.internal.util.RangePosition
import scala.reflect.internal.util.SourceFile
import scala.tools.nsc.Settings
import scala.tools.nsc.interactive.CommentPreservingTypers
import scala.tools.nsc.interactive.Global
import scala.tools.nsc.interactive.InteractiveReporter
import scala.tools.nsc.interactive.Problem
import scala.tools.nsc.io.AbstractFile
import scala.tools.nsc.io.VirtualFile
import scala.tools.nsc.reporters.Reporter
import scala.reflect.internal.util.BatchSourceFile
import scala.reflect.internal.util.Position
import scala.reflect.internal.util.SourceFile
import scala.tools.nsc.symtab.Flags
import scala.util.Try

import org.eclipse.core.resources.IFile
import org.eclipse.jdt.core.IJavaProject
import org.eclipse.jdt.core.IMethod
import org.eclipse.jdt.internal.compiler.problem.ProblemSeverities
import org.eclipse.jdt.internal.core.util.Util
import org.eclipse.jface.text.IRegion
import org.eclipse.jface.text.Region
import org.eclipse.jface.text.hyperlink.IHyperlink
import org.scalaide.core.IScalaProject
import org.scalaide.core.compiler.CompilerApiExtensions
import org.scalaide.core.compiler.IScalaPresentationCompiler
import org.scalaide.core.compiler.IScalaPresentationCompiler.Implicits.RichResponse
import org.scalaide.core.compiler.IScalaPresentationCompiler.withResponse
import org.scalaide.core.compiler.InteractiveCompilationUnit
import org.scalaide.core.compiler.ScalaCompilationProblem
import org.scalaide.core.completion.CompletionContext
import org.scalaide.core.internal.jdt.search.ScalaIndexBuilder
import org.scalaide.core.completion.CompletionProposal
import org.scalaide.core.extensions.SourceFileProviderRegistry
import org.scalaide.core.internal.hyperlink.ScalaHyperlink
import org.scalaide.core.internal.jdt.model.ScalaJavaMapper
import org.scalaide.core.internal.jdt.search.ScalaMatchLocator
import org.scalaide.core.internal.jdt.model.ScalaStructureBuilder
import org.scalaide.ui.internal.jdt.model.ScalaOverrideIndicatorBuilder
import org.scalaide.core.internal.jdt.search.ScalaIndexBuilder
import org.scalaide.core.internal.jdt.search.ScalaMatchLocator
import org.scalaide.core.resources.EclipseFile
import org.scalaide.core.resources.EclipseResource
import org.scalaide.logging.HasLogger
import scala.tools.nsc.util.FailedInterrupt
import scala.tools.nsc.symtab.Flags
import org.scalaide.core.completion.CompletionProposal
import org.eclipse.jdt.core.IMethod
import scala.tools.nsc.interactive.MissingResponse
import org.scalaide.core.internal.jdt.model.ScalaSourceFile
import org.scalaide.core.extensions.SourceFileProviderRegistry
import org.eclipse.core.runtime.Path
import org.eclipse.core.resources.IFile
import org.eclipse.jdt.internal.core.util.Util
import org.scalaide.core.IScalaProject
import org.scalaide.core.IScalaPlugin
import org.scalaide.util.ScalaWordFinder
import scalariform.lexer.{ScalaLexer, ScalaLexerException}
import scala.reflect.internal.util.RangePosition
import org.scalaide.core.internal.jdt.model.ScalaStructureBuilder
import org.scalaide.core.compiler.IScalaPresentationCompiler.Implicits._
import org.scalaide.core.compiler._
import org.scalaide.core.compiler.IScalaPresentationCompiler._
import scala.tools.nsc.interactive.InteractiveReporter
import scala.tools.nsc.interactive.CommentPreservingTypers
import org.scalaide.ui.internal.editor.hover.ScalaDocHtmlProducer
import scala.util.Try
import scala.reflect.internal.util.NoPosition
import org.eclipse.jface.text.IRegion
import org.eclipse.jdt.core.IJavaProject
import org.eclipse.jface.text.hyperlink.IHyperlink
import org.scalaide.core.internal.hyperlink.ScalaHyperlink
import org.eclipse.jface.text.Region
import org.scalaide.util.eclipse.RegionUtils
import org.scalaide.ui.internal.jdt.model.ScalaOverrideIndicatorBuilder
import org.scalaide.util.ScalaWordFinder
import org.scalaide.util.eclipse.RegionUtils.RichRegion

import scalariform.lexer.ScalaLexer
import scalariform.lexer.ScalaLexerException

class ScalaPresentationCompiler(private[compiler] val name: String, _settings: Settings) extends {
/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,28 @@ package org.scalaide.core.internal.quickassist.explicit
import scala.reflect.internal.Chars
import scala.tools.nsc.ast.parser.Tokens

import org.scalaide.core.compiler.IScalaPresentationCompiler.Implicits._
import org.scalaide.core.compiler.IScalaPresentationCompiler.Implicits.RichResponse
import org.scalaide.core.compiler.InteractiveCompilationUnit
import org.scalaide.core.compiler.Token
import org.scalaide.core.quickassist.BasicCompletionProposal
import org.scalaide.core.quickassist.InvocationContext
import org.scalaide.core.quickassist.QuickAssist

/** A quick fix that adds an explicit return type to a given val or def
*/
/** A quick fix that adds an explicit return type to a given val or def */
class ExplicitReturnType extends QuickAssist {
override def compute(ctx: InvocationContext): Seq[BasicCompletionProposal] =
addReturnType(ctx.icu, ctx.selectionStart).toSeq

private def addReturnType(icu: InteractiveCompilationUnit, offset: Int): Option[BasicCompletionProposal] = {

icu.withSourceFile { (sourceFile, compiler) =>
import compiler.{ ValDef, EmptyTree, TypeTree, DefDef, ValOrDefDef }
import compiler.ValDef
import compiler.EmptyTree
import compiler.TypeTree
import compiler.DefDef
import compiler.ValOrDefDef

/** Find the tokens leading to tree `rhs` and return the position before `=`,
* or -1 if not found.
*/
/* Find the tokens leading to tree `rhs` and return the position before `=`, or -1 if not found. */
def findInsertionPoint(vdef: ValOrDefDef): Int = {
val lexical = new compiler.LexicalStructure(sourceFile)
val tokens = lexical.tokensBetween(vdef.pos.start, vdef.rhs.pos.start)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
package org.scalaide.ui.internal.handlers

import org.eclipse.debug.core.IStatusHandler
import scala.reflect.runtime.universe
import java.util.concurrent.atomic.AtomicBoolean

import org.eclipse.core.runtime.IStatus
import org.eclipse.debug.core.IStatusHandler
import org.eclipse.jface.dialogs.IDialogConstants
import org.eclipse.jface.dialogs.{ MessageDialog => MD, MessageDialogWithToggle}
import org.eclipse.jface.dialogs.{ MessageDialog => MD }
import org.scalaide.core.IScalaPlugin
import org.scalaide.ui.internal.preferences.CompilerSettings
import org.scalaide.util.internal.SettingConverterUtil
import org.scalaide.util.Utils.WithAsInstanceOfOpt
import java.util.concurrent.atomic.AtomicBoolean
import org.scalaide.util.ui.DisplayThread
import org.scalaide.util.eclipse.SWTUtils

object CompilerLaunchErrorHandler {

/**
* Status code indicating there was an error at launch time
* Linked to ScalaLaunchDelegate via our statusHandlers extension (see plugin.xml)
* Linked to ScalaLaunchDelegate via our statusHandlers extension (see plugin.xml)
*/
final val STATUS_CODE_LAUNCH_ERROR = 1003

Expand Down
Loading

0 comments on commit c258e61

Please sign in to comment.