oshidatakeharu@oshida [xitrum] scalac -Xlint:help
Enable or disable specific warnings:
adapted-args Warn if an argument list is modified to match the receiver.
by-name-right-associative By-name parameter of right associative operator
delayedinit-select Selecting member of DelayedInit
doc-detached A ScalaDoc comment appears to be detached from its element.
inaccessible Warn about inaccessible types in method signatures.
infer-any Warn when a type argument is inferred to be `Any`.
missing-interpolator A string literal appears to be missing an interpolator id.
nullary-override Warn when non-nullary `def f()' overrides nullary `def f'.
nullary-unit Warn when nullary methods return Unit.
option-implicit Option.apply used implicit view.
package-object-classes Class or object defined in package object
poly-implicit-overload Parameterized overloaded implicit methods are not visible as view bounds
private-shadow A private field (or class parameter) shadows a superclass field.
unsound-match Pattern match may not be typesafe
Available -Ywarn options
oshidatakeharu@oshida [xitrum] scalac -Y |&grep warn
-Yinline-warnings Emit inlining warnings. (Normally surpressed due to high volume)
-Ywarn-adapted-args Warn if an argument list is modified to match the receiver.
-Ywarn-dead-code Warn when dead code is identified.
-Ywarn-inaccessible Warn about inaccessible types in method signatures.
-Ywarn-infer-any Warn when a type argument is inferred to be `Any`.
-Ywarn-nullary-override Warn when non-nullary `def f()' overrides nullary `def f'.
-Ywarn-nullary-unit Warn when nullary methods return Unit.
-Ywarn-numeric-widen Warn when numerics are widened.
-Ywarn-unused Warn when local and private vals, vars, defs, and types are are unused
-Ywarn-unused-import Warn when imports are unused
-Ywarn-value-discard Warn when non-Unit expression results are unused.
If I use scalacOptions ++= Seq("-deprecation", "-feature", "-unchecked", "-Ywarn-unused", "-Ywarn-unused-import", "-Xlint") these warnings will be appear.
oshidatakeharu@oshida [xitrum] rm -rf src/main/scala/xitrum/Version.scala
oshidatakeharu@oshida [xitrum] sbt clean compile
[info] Loading project definition from /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/project
[info] Set current project to xitrum (in build file:/Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/)
[success] Total time: 0 s, completed Oct 27, 2014 11:21:36 AM
[info] Updating {file:/Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/}xitrum...
[info] Resolving jline#jline;2.12 ...
[info] Done updating.
[info] Compiling 116 Scala sources to /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/target/scala-2.11/classes...
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala-2.11/xitrum/routing/RouteCollector.scala:117: local var routeOrder in method collectNormalRoutes is never set - it could be a val
[warn] var routeOrder = optRouteOrder(annotations.routeOrder) // -1: first, 1: last, 0: other
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala-2.11/xitrum/routing/RouteCollector.scala:118: local var cacheSecs in method collectNormalRoutes is never set - it could be a val
[warn] var cacheSecs = optCacheSecs(annotations.cache) // < 0: cache action, > 0: cache page, 0: no cache
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala-2.11/xitrum/routing/RouteCollector.scala:119: local var method_pattern_coll in method collectNormalRoutes is never set - it could be a val
[warn] var method_pattern_coll = ArrayBuffer.empty[(String, String)]
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/Action.scala:16: Unused import
[warn] import xitrum.handler.{AccessLog, HandlerEnv, NoRealPipelining}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/Config.scala:17: Unused import
[warn] import xitrum.routing.{DiscoveredAcc, RouteCollection, RouteCollector, SerializableRouteCollection}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/Server.scala:3: Unused import
[warn] import java.io.File
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/Server.scala:17: Unused import
[warn] import xitrum.handler.inbound.Dispatcher
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/SockJsAction.scala:5: Unused import
[warn] import xitrum.handler.{DefaultHttpChannelInitializer, HandlerEnv}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/action/Filter.scala:6: Unused import
[warn] import xitrum.routing.Route
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/action/Url.scala:7: Unused import
[warn] import xitrum.handler.inbound.PublicFileServer
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/etag/Etag.scala:6: Unused import
[warn] import io.netty.buffer.Unpooled
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/etag/Etag.scala:9: Unused import
[warn] import HttpHeaders.Values._
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/etag/NotModified.scala:9: Unused import
[warn] import HttpResponseStatus._
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/AccessLog.scala:5: Unused import
[warn] import scala.collection.JavaConverters._
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/AccessLog.scala:61: private val in object AccessLog is never used
[warn] private val gauge = xitrum.Metrics.gauge("lastExecutionTime") {
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/NoRealPipelining.scala:4: Unused import
[warn] import io.netty.handler.codec.http.{HttpHeaders, HttpRequest, HttpResponse}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/inbound/Dispatcher.scala:10: Unused import
[warn] import HttpVersion._
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/inbound/Dispatcher.scala:15: Unused import
[warn] import xitrum.{Action, ActorAction, FutureAction, Config, Log}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/inbound/Request2Env.scala:24: Unused import
[warn] import xitrum.scope.request.{FileUploadParams, Params, PathInfo}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/FixiOS6SafariPOST.scala:4: Unused import
[warn] import io.netty.handler.codec.http.{HttpHeaders, HttpMethod, HttpRequest, HttpResponse}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/FixiOS6SafariPOST.scala:4: Unused import
[warn] import io.netty.handler.codec.http.{HttpHeaders, HttpMethod, HttpRequest, HttpResponse}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/OPTIONSResponse.scala:3: Unused import
[warn] import io.netty.buffer.Unpooled
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/OPTIONSResponse.scala:5: Unused import
[warn] import io.netty.handler.codec.http.{DefaultHttpResponse, HttpHeaders, HttpMethod, HttpRequest, HttpResponse, HttpResponseStatus}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/OPTIONSResponse.scala:5: Unused import
[warn] import io.netty.handler.codec.http.{DefaultHttpResponse, HttpHeaders, HttpMethod, HttpRequest, HttpResponse, HttpResponseStatus}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/OPTIONSResponse.scala:5: Unused import
[warn] import io.netty.handler.codec.http.{DefaultHttpResponse, HttpHeaders, HttpMethod, HttpRequest, HttpResponse, HttpResponseStatus}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/OPTIONSResponse.scala:7: Unused import
[warn] import HttpHeaders.Names._
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/XSendFile.scala:16: Unused import
[warn] import HttpVersion._
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/XSendResource.scala:3: Unused import
[warn] import java.io.{File, RandomAccessFile}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/XSendResource.scala:3: Unused import
[warn] import java.io.{File, RandomAccessFile}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/XSendResource.scala:6: Unused import
[warn] import io.netty.channel.{ChannelHandler, ChannelHandlerContext, ChannelFuture, DefaultFileRegion, ChannelFutureListener, ChannelOutboundHandlerAdapter, ChannelPromise}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/XSendResource.scala:6: Unused import
[warn] import io.netty.channel.{ChannelHandler, ChannelHandlerContext, ChannelFuture, DefaultFileRegion, ChannelFutureListener, ChannelOutboundHandlerAdapter, ChannelPromise}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/XSendResource.scala:6: Unused import
[warn] import io.netty.channel.{ChannelHandler, ChannelHandlerContext, ChannelFuture, DefaultFileRegion, ChannelFutureListener, ChannelOutboundHandlerAdapter, ChannelPromise}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/XSendResource.scala:10: Unused import
[warn] import HttpHeaders.Values._
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/XSendResource.scala:13: Unused import
[warn] import HttpVersion._
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/XSendResource.scala:15: Unused import
[warn] import xitrum.Config
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/XSendResource.scala:16: Unused import
[warn] import xitrum.etag.{Etag, NotModified}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/handler/outbound/XSendResource.scala:18: Unused import
[warn] import xitrum.util.{ByteBufUtil, Gzip, Mime}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/local/LruCache.scala:3: Unused import
[warn] import java.util.Collections
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/local/LruCache.scala:4: Unused import
[warn] import com.typesafe.config.ConfigObject
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/local/LruSessionStore.scala:3: Unused import
[warn] import scala.collection.mutable.{Map => MMap}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/metrics/MetricsAction.scala:14: Unused import
[warn] import xitrum.view.{DocType, Js}
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/metrics/MetricsAction.scala:51: private var in class MetricsPublisher is never used
[warn] private var cachedRegistryAsJson: String = _
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/RouteCollection.scala:338: Adapting argument list by creating a 3-tuple: this may not be what you want.
[warn] signature: Some.apply[A](x: A): Some[A]
[warn] given arguments: firstGETs, lastGETs, otherGETs
[warn] after adaptation: Some((firstGETs, lastGETs, otherGETs): (scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route]))
[warn] if (methodName == "GET") return Some(firstGETs, lastGETs, otherGETs)
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/RouteCollection.scala:339: Adapting argument list by creating a 3-tuple: this may not be what you want.
[warn] signature: Some.apply[A](x: A): Some[A]
[warn] given arguments: firstPOSTs, lastPOSTs, otherPOSTs
[warn] after adaptation: Some((firstPOSTs, lastPOSTs, otherPOSTs): (scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route]))
[warn] if (methodName == "POST") return Some(firstPOSTs, lastPOSTs, otherPOSTs)
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/RouteCollection.scala:340: Adapting argument list by creating a 3-tuple: this may not be what you want.
[warn] signature: Some.apply[A](x: A): Some[A]
[warn] given arguments: firstPUTs, lastPUTs, otherPUTs
[warn] after adaptation: Some((firstPUTs, lastPUTs, otherPUTs): (scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route]))
[warn] if (methodName == "PUT") return Some(firstPUTs, lastPUTs, otherPUTs)
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/RouteCollection.scala:341: Adapting argument list by creating a 3-tuple: this may not be what you want.
[warn] signature: Some.apply[A](x: A): Some[A]
[warn] given arguments: firstPATCHs, lastPATCHs, otherPATCHs
[warn] after adaptation: Some((firstPATCHs, lastPATCHs, otherPATCHs): (scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route]))
[warn] if (methodName == "PATCH") return Some(firstPATCHs, lastPATCHs, otherPATCHs)
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/RouteCollection.scala:342: Adapting argument list by creating a 3-tuple: this may not be what you want.
[warn] signature: Some.apply[A](x: A): Some[A]
[warn] given arguments: firstDELETEs, lastDELETEs, otherDELETEs
[warn] after adaptation: Some((firstDELETEs, lastDELETEs, otherDELETEs): (scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route]))
[warn] if (methodName == "DELETE") return Some(firstDELETEs, lastDELETEs, otherDELETEs)
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/RouteCollection.scala:343: Adapting argument list by creating a 3-tuple: this may not be what you want.
[warn] signature: Some.apply[A](x: A): Some[A]
[warn] given arguments: firstWEBSOCKETs, lastWEBSOCKETs, otherWEBSOCKETs
[warn] after adaptation: Some((firstWEBSOCKETs, lastWEBSOCKETs, otherWEBSOCKETs): (scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route], scala.collection.mutable.ArrayBuffer[xitrum.routing.Route]))
[warn] if (methodName == "WEBSOCKET") return Some(firstWEBSOCKETs, lastWEBSOCKETs, otherWEBSOCKETs)
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/RouteCollection.scala:354: Adapting argument list by creating a 2-tuple: this may not be what you want.
[warn] signature: Some.apply[A](x: A): Some[A]
[warn] given arguments: route, params
[warn] after adaptation: Some((route, params): (xitrum.routing.Route, xitrum.scope.request.Params))
[warn] case Some(params) => Some(route, params)
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/RouteCollection.scala:226: local var others in method logRoutes is never set - it could be a val
[warn] var others = ArrayBuffer.empty[(String, String, String)]
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/RouteCollection.scala:250: local var all in method logRoutes is never set - it could be a val
[warn] var all = firsts ++ others.sortBy(_._2) ++ lasts
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/SerializableRouteCollection.scala:5: Unused import
[warn] import xitrum.Action
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/SwaggerActions.scala:7: Unused import
[warn] import org.json4s.jackson._
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/routing/SwaggerActions.scala:181: private method in object SwaggerJson is never used
[warn] private def annotation2Method(annotation: Any): Seq[ApiMethod] = annotation match {
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/scope/request/RequestEnv.scala:8: Unused import
[warn] import xitrum.routing.Route
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/scope/session/Csrf.scala:6: Unused import
[warn] import xitrum.exception.InvalidAntiCsrfToken
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/scope/session/SessionStore.scala:3: Unused import
[warn] import xitrum.scope.request.RequestEnv
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/sockjs/NonWebSocketSession.scala:73: Adapting argument list by creating a 2-tuple: this may not be what you want.
[warn] signature: ScalaActorRef.!(message: Any)(implicit sender: akka.actor.ActorRef): Unit
[warn] given arguments: self, action
[warn] after adaptation: ScalaActorRef.!((self, action): (akka.actor.ActorRef, xitrum.Action))
[warn] sockJsActorRef ! (self, action)
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/sockjs/SockJsActions.scala:817: Adapting argument list by creating a 2-tuple: this may not be what you want.
[warn] signature: ScalaActorRef.!(message: Any)(implicit sender: akka.actor.ActorRef): Unit
[warn] given arguments: self, currentAction
[warn] after adaptation: ScalaActorRef.!((self, currentAction): (akka.actor.ActorRef, xitrum.Action))
[warn] sockJsActorRef ! (self, currentAction)
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/sockjs/SockJsActions.scala:873: Adapting argument list by creating a 2-tuple: this may not be what you want.
[warn] signature: ScalaActorRef.!(message: Any)(implicit sender: akka.actor.ActorRef): Unit
[warn] given arguments: self, currentAction
[warn] after adaptation: ScalaActorRef.!((self, currentAction): (akka.actor.ActorRef, xitrum.Action))
[warn] sockJsActorRef ! (self, currentAction)
[warn] ^
[warn] /Users/oshidatakeharu/Project/scala/xitrum-framework/xitrum/src/main/scala/xitrum/util/Loader.scala:35: local var buffer in method bytesFromInputStream is never set - it could be a val
[warn] var buffer = new Array[Byte](BUFFER_SIZE)
[warn] ^
[warn] 61 warnings found
[success] Total time: 42 s, completed Oct 27, 2014 11:22:18 AM
Available Xlint options
Available -Ywarn options
If I use
scalacOptions ++= Seq("-deprecation", "-feature", "-unchecked", "-Ywarn-unused", "-Ywarn-unused-import", "-Xlint")
these warnings will be appear.