diff options
author | Antonio Cunei <antonio.cunei@epfl.ch> | 2010-09-01 17:55:07 +0000 |
---|---|---|
committer | Antonio Cunei <antonio.cunei@epfl.ch> | 2010-09-01 17:55:07 +0000 |
commit | 512a7a03e0c0a964f067483930f430b05eae744d (patch) | |
tree | a0b3527934ed1f5ae1f051573541419f85595dcd /test/files/neg/t3691.check | |
parent | 7f1e23872efb20a1cebe765ee319e628582dd517 (diff) | |
download | scala-512a7a03e0c0a964f067483930f430b05eae744d.tar.gz scala-512a7a03e0c0a964f067483930f430b05eae744d.tar.bz2 scala-512a7a03e0c0a964f067483930f430b05eae744d.zip |
Merged revisions 22508-22520,22523,22545,22710,...
Merged revisions
22508-22520,22523,22545,22710,22726-22727,22754-22755,22762,22796,22804-
22805 via svnmerge from
https://lampsvn.epfl.ch/svn-repos/scala/scala/trunk
........
r22508 | moors | 2010-07-08 17:58:41 +0200 (Thu, 08 Jul 2010) | 7 lines
closes #2331: the pre-transform in Erasure did not correctly recurse
in the case of a TypeApply.
It simply returned the function, which might very well have been, say,
a Select node, which had to be erased in case the qualifier's type is a
refinement.
(sorry about the whitespace changes)
review by odersky
........
r22509 | moors | 2010-07-08 17:58:47 +0200 (Thu, 08 Jul 2010) | 7 lines
closes #2416. this is a big one... typedAppliedTypeTree performed type
application (beta-reduction) without checking whether that application
was well-kinded
this patch introduces a new subclass of TypeTree: TypeTreeWithDeferredRefCheck, which tracks the type args and type params of a type application when it was beta-reduced during typing without checking that the application was well-kinded -- that check must wait until refchecks, but was never performed since the application had been beta-reduced away
caveat discovered while working on the fix: adapt turned all trees for
which _.isType holds into TypeTree's
review by odersky
........
r22510 | moors | 2010-07-08 17:58:52 +0200 (Thu, 08 Jul 2010) | 2 lines
closes #3247: syntax error regarding context bounds generalized to
include view bounds as we cannot easily be more specific no review
........ r22511 | moors | 2010-07-08 17:58:56 +0200 (Thu, 08 Jul 2010) |
2 lines
closes #3249. exclude method type parameters from java generic
signature of a class review by dragos ........ r22512 | moors |
2010-07-08 17:59:00 +0200 (Thu, 08 Jul 2010) | 2 lines
closes #3374. checkKindBoundsHK did not instantiate hk params far
enough. see also neg/bug1275 review by odersky ........ r22513 | moors |
2010-07-08 17:59:05 +0200 (Thu, 08 Jul 2010) | 5 lines
closes #3399. mergePrefixAndArgs expects types that have equal type
symbols (modulo normalization) but did not normalize these types before
retrieving their typeArgs
this broke the invariant that argss is a regular matrix
review by odersky
........
r22514 | moors | 2010-07-08 17:59:10 +0200 (Thu, 08 Jul 2010) | 15 lines
closes #3477. type arguments that were inferred to be Nothing should
be included in checkBounds. wonder why they weren't in the first place
note that all type parameters must be reported in error messages about
failing type inference, but only type parameters that were inferred
successfully should be substituted
the idea of mapping type parameter symbols to the corresponding type
ref in order to make substitution the identity does not seem to work,
leading to errors like:
src/library/scala/collection/immutable/SortedMap.scala:38:
error: type mismatch; found :
scala.collection.immutable.SortedMap[A,B(in method empty)]
required: scala.collection.immutable.SortedMap[A,B(in trait
SortedMap)]
override def empty: SortedMap[A, B] = SortedMap.empty
^
(I guess that's why they were retracted before, but that wasn't done consistently, leading to #3152 -- my first attempt at fixing the latter lead to this bug... I've assigned #3152 to you Martin, as I can't decide how to fix it.)
review by odersky
........
r22515 | moors | 2010-07-08 17:59:15 +0200 (Thu, 08 Jul 2010) | 5 lines
closes #3486. members of implclasses are clones of the original trait
members, but cloning discards a symbol's typehistory so that javaSig
could not look at the symbol's type before erasure
fixed by having mixin do the cloning at the beginning of erasure and
then updating the symbol's info to transform it to be valid in current
phase
review by odersky
........
r22516 | moors | 2010-07-08 17:59:19 +0200 (Thu, 08 Jul 2010) | 3 lines
closes #3494. don't let type argument for inserted wrapRefArray be
inferred (as the expected element type of the array could be a singleton
type, but that won't be inferred)
review by prokopec
........
r22517 | moors | 2010-07-08 17:59:23 +0200 (Thu, 08 Jul 2010) | 1 line
closes #3507: don't generate manifests where we can't refer to the
existentially bound value ........ r22518 | moors | 2010-07-08 17:59:27
+0200 (Thu, 08 Jul 2010) | 3 lines
closes #742. be more resilient to evil, ill-kinded type applications,
so we don't crash (subst assumes from.length == to.length), and get to
actually telling off the user for writing those nasty, nasty types
review by extempore
........
r22519 | moors | 2010-07-08 17:59:32 +0200 (Thu, 08 Jul 2010) | 2 lines
closes #3622: refchecks erased types without uncurrying them first
review by odersky ........ r22520 | moors | 2010-07-08 17:59:36 +0200
(Thu, 08 Jul 2010) | 1 line
made typechecker logging methods final so they can actually be inlined
........ r22523 | moors | 2010-07-09 02:24:02 +0200 (Fri, 09 Jul 2010) |
3 lines
cleaned up the mess that resulted from cobbling together fixes for
see #3477 and see #3152 adjustTypeArgs and methTypeArgs now return a
LinkedHashMap[Symbol, Option[Type]] TODO: check that type inference
is still just as lightning fast as before ........ r22545 | moors |
2010-07-12 19:03:03 +0200 (Mon, 12 Jul 2010) | 7 lines
Closes #3653. In uncurry phase, remove IMPLICIT flag from implicit
parameter list. no review
Author: Mark Harrah <dmharrah@gmail.com>
Date: Thu Jul 8 10:30:57 2010 -0400
Source: http://github.com/harrah/scala-starrless/commit/0c7759c95b47cebc6d9fa77cefd34ef638e2706e
Reviewer: moors
........
r22710 | moors | 2010-08-09 13:51:37 +0200 (Mon, 09 Aug 2010) | 10 lines
closes #3582: typedTypeDef needs to run in a new typer for TypeDefs
with type parameters
this was honored when typedTypeDef was called by typed1, but other
callers did not this would cause higher-order type parameters to be
re-entered in the scope of a method or a class
(by the way, should we recycle scopes for higher-order type params?
now new scopes are created, symbols entered, and tree's symbols updated)
changed some spurious vars to vals
review by odersky
........
r22726 | moors | 2010-08-10 23:06:00 +0200 (Tue, 10 Aug 2010) | 5 lines
closes #3676: cycle detection logic in BaseTypeSeq's should not
overwrite elements in the BTS for cycle detection as these markers may
be witnessed by callbacks in mergePrefixAndArgs
now using a mutable bitset to keep track of which computations are pending -- benchmarked for speed, memory consumption not checked
review by odersky
........
r22727 | moors | 2010-08-10 23:12:13 +0200 (Tue, 10 Aug 2010) | 5 lines
different approach to manifests of type parameters: before, ambiguity was prevented by leaving type inference failures (Nothing was inferred) in the expression that needs an implicit manifest -- we now put these back in undetparams (maybe they will be inferred) and when we need to produce a manifest for an undetermined parameter (it ended up not being inferred), we assume it will get instantiated to Nothing (but for now don't actually reflect that in the SearchResult, as instantiate should take care of that anyway)
see test file for use case that works with this new scheme, but did not work before: the eager instantiation of type params to Nothing before implicit search even got started would indeed prevent ambiguity -- unfortunately it also ruled out valid code like this (where the type parameter is inferred successfully by the time the manifest is needed)
review by odersky
........
r22754 | moors | 2010-08-13 18:21:40 +0200 (Fri, 13 Aug 2010) | 10 lines
closes #3419: test files
omit check that wouldn't work with separate compilation, not needed
anymore because compiler has become more robust
the actual fix was committed as part of r22512, see #3374
also see #3512
no review
........
r22755 | moors | 2010-08-13 18:21:44 +0200 (Fri, 13 Aug 2010) | 8 lines
closes #3663. disregard package nesting for access check of java syms
namers wasn't setting privateWithin on java-defined variables (btw, )
shouldn't clone carry over privateWithin? better treatment of linked )
class access boundary (only check for access within linked class if )
it actually exists )
would have liked more control for the test case: only javac should
compile the java file, then scalac should compile the scala file and
fail
review by odersky
........
r22762 | moors | 2010-08-14 10:19:56 +0200 (Sat, 14 Aug 2010) | 5 lines
closes #3691. moved kind conformance checks to types because it needs
to be checked as part of specializesSym.
TODO: clean this up, introduce datatypes to denote kinds, split
checkKindBounds into kind inference and subkind checking
review by odersky
........
r22796 | moors | 2010-08-19 14:20:28 +0200 (Thu, 19 Aug 2010) | 3 lines
closes #3777. type constructor inference now tries harder to unify a
type constructor variable (that's applied to type arguments) with a type
alias by dealiasing it, hoping to discover a concrete type constructor
(that's applied to type arguments).
no review
........
r22804 | moors | 2010-08-20 16:48:12 +0200 (Fri, 20 Aug 2010) | 12 lines
closes 2462. better implicit error messages.
@implicitNotFound(msg="Custom error message that may refer to type parameters ${T} and ${U}")
trait Constraint[T, U]
whenever an implicit argument of type Constraint[A, B] cannot be
found, the custom error message will be used, where the type arguments
are interpolated in the obvious way
note: if the msg in the annotation references non-existing type
params, a warning is emitted
the patch also cleans up annotation argument retrieval (moved it to
AnnotationInfo from Symbol)
review by odersky
........
r22805 | moors | 2010-08-21 10:25:00 +0200 (Sat, 21 Aug 2010) | 1 line
forgot to update check file after renaming tests. no review. ........
Diffstat (limited to 'test/files/neg/t3691.check')
-rw-r--r-- | test/files/neg/t3691.check | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/files/neg/t3691.check b/test/files/neg/t3691.check new file mode 100644 index 0000000000..1b548cc84d --- /dev/null +++ b/test/files/neg/t3691.check @@ -0,0 +1,16 @@ +t3691.scala:4: error: type mismatch; + found : java.lang.Object with Test.A[String] + required: AnyRef{type A[x]} + val b = (new A[String]{}): { type A[x] } // not ok + ^ +t3691.scala:5: error: type mismatch; + found : java.lang.Object with Test.A[String] + required: AnyRef{type A} + val c = (new A[String]{}): { type A } // not ok + ^ +t3691.scala:7: error: type mismatch; + found : java.lang.Object{type A = String} + required: AnyRef{type A[X]} + val x = (new { type A = String }): { type A[X] } // not ok + ^ +three errors found |