| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Compiler NPE on 2.9.1 when implicit parameter not found
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Important note for busy commit log skimmers ***
Symbol method "fullName" has been trying to serve the dual role of "how
to print a symbol" and "how to find a class file." It cannot serve both
these roles simultaneously, primarily because of package objects but
other little things as well. Since in the majority of situations we want
the one which corresponds to the idealized scala world, not the grubby
bytecode, I went with that for fullName. When you require the path to a
class (e.g. you are calling Class.forName) you should use javaClassName.
package foo { package object bar { class Bippy } }
If sym is Bippy's symbol, then
sym.fullName == foo.bar.Bippy
sym.javaClassName == foo.bar.package.Bippy
*** End important note ***
There are many situations where we (until now) forewent revealing
everything we knew about a type mismatch. For instance, this isn't very
helpful of scalac (at least in those more common cases where you didn't
define type X on the previous repl line.)
scala> type X = Int
defined type alias X
scala> def f(x: X): Byte = x
<console>:8: error: type mismatch;
found : X
required: Byte
def f(x: X): Byte = x
^
Now it says:
found : X
(which expands to) Int
required: Byte
def f(x: X): Byte = x
^
In addition I rearchitected a number of methods involving:
- finding a symbol's owner
- calculating a symbol's name
- determining whether to print a prefix
No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some refinement of the error messages when the found and required types
have the same simple names. No longer must we watch people scratch their
heads at such messages as:
found : scala.collection.Set[String]
required: Set[String]
Now so clear you could enjoy a movie through it:
found : scala.collection.Set[String]
required: scala.collection.immutable.Set[String]
No review.
|
|
|
|
|
|
|
|
|
|
|
| |
closes #1693: improve implicit conversion disambiguation by
incorporating the expected type of the member that triggered the
conversion
back-ported fix by Martin in embeddings branch.
review by odersky (just in case it shouldn't have been back-ported)
|
|
|
|
|
|
| |
Finally completed the incredibly tedious task of removing the lower case
primitive aliases from Predef. Had to rebuild msil.jar along the way.
|
| |
|
| |
|
|
|
|
|
|
|
| |
- MethodTypes now have (params: List[Symbol])
- "copy"-methods for case classes
- the "copy" object in the compiler is now called "treeCopy"
|
|
|
|
|
|
|
| |
changed overloaing resolution to make Builders work. generalized
companion object generation in Namers. Fixed a problem in Types that
made the collection build crash.
|
|
|
|
|
|
| |
suppress "scala." prefix in string representation of types (in error
messages,..)
|
|
|
|
|
|
|
|
|
|
|
|
| |
- prefixString in SingleType suppresses scala.Predef prefixes
- (sym.isPredefModule) better handling of double defs of `_' in type
- params (now in enterInScope in Namers) introduced HKmode to indicate
- we're typing a higher-kinded type, instead of reusing POLYmode |
- TAPPmode
- Typers.typedTypeConstructor does not normalize the result anymore -- now in GenICode
generatedType = toTypeKind(tpt.tpe.normalize)
|
| |
|
|
|
|
|
|
| |
2. More detailed error messages for ambiguous implicits. 3. Relaxed
rules for necessary overlap in pattern matching
|
| |
|
|
|
|
|
| |
Removed a DOS-style new line character from test/neg/implicits.check
|
|
added "Function" module to library/scala
|