Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on Nov 29, 2020. It is now read-only.
/scalaz-pluginPublic archive

A compiler plugin that will improve on the scala compiler on the assumption that the user is using the Scalazzi-safe subset of Scala.

License

NotificationsYou must be signed in to change notification settings

scalaz/scalaz-plugin

Repository files navigation

Join the chat at https://gitter.im/scalaz/scalaz-plugin

A compiler plugin that improves on the scala compiler on the assumption that the user is using the Scalazzi-safe subset of Scala.

What does this plugin do?

Seetest/files for more examples. We would like to get a lot more things done eventually, see open issues.

What is Scalazzi

  • Nonull.
  • No catching exceptions in pure code.
  • No type casing (isInstanceOf).
  • No type casting (asInstanceOf).
  • No side-effects.
  • Noequals,toString,hashCode.
  • Nonotify orwait in pure code.
  • No.getClass.

We are more interested inScalazzi+, which adds:

  • Only total functions.
  • Eq (used in laws and pattern matching) must satisfy:
    • Identity of indiscernibles (indiscernible values are equal).
    • Indiscernibility of identicals (equal values are indiscernible from each other).

The last requirement might seem a bit cryptic, but it has a wide range of implications, for example:

if (a=== b) {// now we know that a.type === b.type}

Other great compiler plugins you should check out

About

A compiler plugin that will improve on the scala compiler on the assumption that the user is using the Scalazzi-safe subset of Scala.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp