| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Tickets #1909 and #2508 involve code which compiles but then fails at
runtime due to invalid bytecode. This commit turns those into compile
time errors. Includes negative test case.
|
|
|
|
|
|
| |
fixes to check files and removed nonapplicable test case Tuple2 impl,
but commented out so that we can bootstrap whitespace...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
refactoring of TypeVar to set the stage for tcpoly inference (also
touched UndoLog, isHigherKinded logic in TypeRef) added <:< implicit,
should bootstrap
selection from squashed commit messages:
commented out stuff so that this can be used to bootstrap and build a new starr
merged/cherry picked refactorings unrelated to #2261
(undoLog, cloneInternal, NoImplicitInfo)
made conforms implicit, identity explicit
replaced the implicit `identity` coercion by `conforms`, which can be used to encode generalised constraints
the introduction of `conforms` revealed a bug in adaptToMember, which was inferring views while already inferring one, which gave rise to diverging implicits. Predef.identity is no longer special as far as the compiler is concerned.
cleaned up isHigherKinded logic in TypeRef, and implemented it in TypeVar along with normalize
added <:< to Predef: use as evidence for encoding generalized constraints
(BTW: extractUndetparams clears undetparams: don't use in debug output -- I learned the hard way...)
added todo about ticket 2066 -- branching from master to explicitkinds for fix
refactoring: moved bounds tracking logic to TypeVar
introduced typeConstructor in Type because we can't use appliedType(tp, List())) to strip a type's type arguments (appliedType is a no-op for empty args) -- don't want to pattern match on type either
removed unused overrides in TypeVar (TODO double check)
making appliedType more robust since it is now used more liberally -- neg/t0226 should no longer fail now
merged in appliedType refactoring and added TypeVar logic to appliedType
|
|
|
|
|
|
| |
fixed failing testcases due to previous commit (renaming of
BuilderFactory)
|
|
|
|
|
|
| |
Updated remaining test case to reflect the slightly differing semantics
of the Ordering fix.
|
|
|
|
|
|
| |
Fixes for 66.67% of the tests failing from the Ordering commit. Other
third is going to take a closer look.
|
| |
|
|
|
|
|
|
|
| |
flags on AnyVal from FINAL|SEALED to ABSTRACT|SEALED. This appears
correct and without ill effect, but if anyone spots new anyval oddness
you know where to look.
|
|
|
|
|
|
|
|
| |
detritus from regular expression patterns, but Star still depends
on REGPATmode existing -- nothing checks for that mode specifically,
but not having it set causes failure. So it is renamed to STARmode.
|
|
|
|
|
|
| |
reverted immutable.Vector because it gave random build errors on my
machine. Fixed various tickets, updated test and check files.
|
| |
|
| |
|
|
|
|
|
|
| |
Test cases for some tickets fixed by recent array and implicit activity:
#1038, #1005, #1272.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
don't expand type aliases that take type arguments in
typedTypeConstructor, as that bypasses refchecks have to expand type
alias without type arguments, as AnyRef must disappear (problem with
cycles during bootstrap)
|
|
|
|
|
|
| |
there were some issues with heap pressure that made the compile take
incredibly long, these were solved by increasing the max allowed heap
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fixed #2316: No longer cache entire SearchResult when looking for implicits in the parts of the expected type. (patch by retronym -- see ticket)
A SearchResult may contain symbols local to the scope of the search that
were used as implicit parameters, so they are not safely cacheable. The
fix for #2101 does not suffice. That patch avoided bound symbols being
duplicated, but the problem is much worse.
The implicits for an expected type depend on more than just that type,
so we cannot cache them using the expected type as a key.
The neg/t2316 test illustrates this: T1 may provide two implicits, one
requires an implicit T2, another an implicit T3. If an implicit T1
is first required when only a T2 is in scope, the SearchResult will
describe the corresponding implicit. Now, if we enter an implicit value
of type T3 into scope, the search should fail (it is ambiguous), but the
cache does not take this new fact into account.
The patch replaces the erroneous aggressive caching with a more
conservative version that only caches ImplicitInfo's.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
[no content change] Fixed all SVN properties: mimes, EOL, executable. Id
expansion is consistently enabled for Scala/Java/C# sources in 'src/'
and consistently disabled and removed from everywhere else: there should
not be any dead Id tags anymore.
|
| |
|
|
|
|
|
|
| |
Deprecated case classes inheriting from other case classes, and updated
all the tests which did so.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed #2201 (slight rewrite of paulp's patch at
http://github.com/paulp/scala/commit/24419959b4d6c93716c216bbf276948a830
4b4e6)
ImplicitSearch::cacheResult now clones symbols that represent bound
variables (more specifically, parameters of anonymous functions that
are used as implicit values) to ensure that different bound variables
are represented by different symbols (otherwise lambda lifting gets
confused).
updated check file for bug692: error-reporting got more complete because
TypeRef::transform has been relaxed slightly
|
|
|
|
|
|
|
| |
added manifests to most parts of standard library which deal with
arrays. One test is temporarily disabled, as it shows a deep problem
with multi-dimensional arrays (which was present all along).
|
| |
|
| |
|
|
|
|
|
|
|
| |
in the end had to disable conforms as view in tryImplicit (see comment
in removeNames in NamesDefaults) fixed check file for viewtest added
newTermName for conforms to StdNames, so removed the previous weirdness
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
replaced the implicit `identity` coercion by `conforms`, which can be
used to encode generalised constraints the introduction of `conforms`
revealed a bug in adaptToMember, which was inferring views while already
inferring one, which gave rise to diverging implicits. Predef.identity
is no longer special as far as the compiler is concerned.
because conforms/identity was no longer prevented from being used as
a view (which does not make sense, but preventing it shouldn't be
necessary), removeNames in NamesDefaults suddenly didn't detect all
ambiguities because it relied on tryTypedApply failing fixed by using an
EmptyTree as an ambiguous argument instead of the argument, so failure
is guaranteed
fixed check file for t0590
new starr
fixed the weirdest bug ever: don't know why, but can't change the total
number of calls to newTermName in StdNames (so take away the one for
"identity", give one back, doesn't matter where --> see "utterweirdness"
at the end) the problem manifested itself by not finding Nil. This only
happens during start up (when the scala/package.scala file hasn't been
compiled yet), when Nil is required before List (because that would have
forced Nil to be loaded).
|
|
|
|
|
|
|
|
| |
This reverts commits
ce0ebb316c094814d72cc7dfcc7ac8e7c22f16c2
cd61aed60d71441308967bece13d87384a59d3e8
0becf263fe8f1dc74bc7277be5d2c6ed04047923
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
because conforms/identity was no longer prevented from being used as
a view (which does not make sense, but preventing it shouldn't be
necessary), removeNames in NamesDefaults suddenly didn't detect all
ambiguities because it relied on tryTypedApply failing fixed by using an
EmptyTree as an ambiguous argument instead of the argument, so failure
is guaranteed
fixed check file for t0590
also reintroduced conforms, because we now have a new starr
|
| |
|
|
|
|
|
|
| |
positioning change. Deleted instead of deprecated the two argument
version of Iterator.iterate since it did not exist in 2.7.
|
|
|
|
|
|
| |
Fixed #1560 (which was a typing hole, so some library classes had to be
fixed)
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
fix for 513: use deep ForeachTypeTraverser in doTypeTraversal instead of
shallow one test case+checkfile for #513
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This reverts commit 2d437f2a62d7127abe907d61118ea448c9ad6c59.
|
| |
|
| |
|
|
|
|
|
|
| |
Added test case for #1764 to the test case for #1878 (as #1764 was fixed
along with it in r18343.)
|
| |
|
|
|
|
|
|
|
| |
Trying to make typechecker faster by (1) new subtyping (2) better
implicit caches. Disallowed '42 as a symbol. Added cache method to
Mutable Maps. Better complietion in interactive.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
one long-standing bug which actually had a test case testing its
bugginess (which is to say, when I fixed the bug, the test case failed.)
This:
- def doMatch4(xs:Seq[Char]) = xs match {
- case Seq(x, y, _*) => x::y::Nil
- case Seq(x, y, z, w) => List(z,w) // redundant!
- }
...should never have compiled - which must have been recognized
on some level given the "redundant!" comment, but it never made
it into neg/.
|
| |
|