experimental (original) (raw)
scala.language.experimental
The experimental object contains features that are known to have unstable API or behavior that may change in future releases.
Experimental features may undergo API changes in future releases, so production code should not rely on them.
Programmers are encouraged to try out experimental features and report any bugs or API inconsistencies they encounter so they can be improved in future releases.
Attributes
Source
Graph
Supertypes
Self type
Members list
Experimental support for capture checking; implies support for pureFunctions
Experimental support for capture checking; implies support for pureFunctions
Attributes
See also
Source
Supertypes
Self type
Experimental support for erased
modifier
Experimental support for erased
modifier
Attributes
See also
Source
Supertypes
Self type
Experimental support for generic number literals.
Experimental support for generic number literals.
Attributes
See also
Source
Supertypes
Self type
Experimental support for automatic conversions of arguments, without requiring a language import import scala.language.implicitConversions
.
Experimental support for automatic conversions of arguments, without requiring a language import import scala.language.implicitConversions
.
Attributes
See also
Source
Supertypes
Self type
Experimental support for new features for better modularity, including
Experimental support for new features for better modularity, including
- better tracking of dependencies through classes
- better usability of context bounds
- better syntax and conventions for type classes
- ability to merge exported types in intersections
Attributes
See also
Source
Supertypes
Self type
Experimental support for named type arguments.
Experimental support for named type arguments.
Attributes
See also
Source
Supertypes
Self type
Experimental support for package object values
Experimental support for package object values
Attributes
Source
Supertypes
Self type
Experimental support for pure function type syntax
Experimental support for pure function type syntax
Attributes
See also
Source
Supertypes
Self type
Experimental support for quote pattern matching with polymorphic functions
Experimental support for quote pattern matching with polymorphic functions
Attributes
See also
Source
Supertypes
Self type
Experimental support for typechecked exception capabilities
Experimental support for typechecked exception capabilities
Attributes
See also
Source
Supertypes
Self type
Experimental support for improvements in for
comprehensions
Experimental support for improvements in for
comprehensions
Attributes
See also
Deprecated
[Since version 3.7]
The `experimental.betterFors` language import no longer has any effect, the feature is being stablised and can be enabled using `-preview` flag
Source
Supertypes
Self type
Enhance match type extractors to follow aliases and singletons.
Enhance match type extractors to follow aliases and singletons.
Attributes
See also
Deprecated
[Since version 3.6]
The experimental.betterMatchTypeExtractors language import is no longer needed since the feature is now standard. It now has no effect, including when setting an older source version.
Source
Supertypes
Self type
Adds support for clause interleaving: Methods can now have as many type clauses as they like, this allows to have type bounds depend on terms: def f(x: Int)[A <: x.type]: A
Adds support for clause interleaving: Methods can now have as many type clauses as they like, this allows to have type bounds depend on terms: def f(x: Int)[A <: x.type]: A
Attributes
See also
Deprecated
[Since version 3.6]
`clauseInterleaving` is now standard, no language import is needed
Source
Supertypes
Self type
Experimental support for using indentation for arguments
Experimental support for using indentation for arguments
Attributes
Deprecated
[Since version 3.3]
`fewerBraces` is now standard, no language import is needed
Source
Supertypes
Self type
Experimental support for named tuples.
Experimental support for named tuples.
Attributes
See also
Deprecated
[Since version 3.7]
The experimental.namedTuples language import is no longer needed since the feature is now standard
Source
Supertypes
Self type
Was needed to add support for relaxed imports of extension methods. The language import is no longer needed as this is now a standard feature since SIP was accepted.
Was needed to add support for relaxed imports of extension methods. The language import is no longer needed as this is now a standard feature since SIP was accepted.
Attributes
See also
Deprecated
[Since version 3.4]
The experimental.relaxedExtensionImports language import is no longer needed since the feature is now standard
Source
Supertypes
Self type
Only where this feature is enabled, are macro definitions allowed.
Only where this feature is enabled, are macro definitions allowed. If macros
is not enabled, macro definitions are rejected by the compiler.
Macro implementations and macro applications are not governed by this language feature; they can be used anywhere.
Why introduce the feature? Macros promise to make the language more regular, replacing ad-hoc language constructs with a general powerful abstraction capability that can express them. Macros are also a more disciplined and powerful replacement for compiler plugins.
Why control it? For their very power, macros can lead to code that is hard to debug and understand.
Attributes
Source
In this article