summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* SI-7461 c.typeCheck(silent = true) now suppresses ambiguous errorsEugene Burmako2013-05-275-2/+18
| | | | | | Otherwise use cases like the one shown in the attached test (trying to typecheck something, which leads to an ambiguous overload error) will mysteriously fail compilation.
* less magic in fast track macrosEugene Burmako2013-05-275-6/+6
| | | | | Now that we have a mechanism to declare not implemented macros, let's put it to good use by reducing the amount of magic applied to fast track.
* new starr that supports macro ???Eugene Burmako2013-05-276-6/+6
|
* Merge pull request #2598 from paulp/pr/raw-type-stubsPaul Phillips2013-05-277-4/+30
|\ | | | | Print raw types correctly.
| * Print raw types correctly.Paul Phillips2013-05-267-4/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The "For convenience, these are usable as stub implementations" bit has generated surprisingly few angry letters, but I noticed today it blows it on raw types. Or, used to blow it. /** As seen from class Sub, the missing signatures are as follows. * For convenience, these are usable as stub implementations. * (First one before this commitw as 'def raw(x$1: M_1)' */ def raw(x$1: M_1[_ <: String]): Unit = ??? def raw(x$1: Any): Unit = ???
* | Merge pull request #2524 from soc/SI-7469-java-collectionsPaul Phillips2013-05-273-64/+2
|\ \ | |/ |/| SI-7469 Remove deprecated elements in Java{Conversions,Converters}
| * SI-7469 Remove deprecated elements in Java{Conversions,Converters}Simon Ochsenreither2013-05-243-64/+2
| |
* | Merge pull request #2584 from som-snytt/issue/repl-tools-jarPaul Phillips2013-05-265-92/+99
|\ \ | | | | | | SI-7410 REPL uses improved tools.jar locator
| * | PathResolver uses platform EOL to mkStringsSom Snytt2013-05-231-61/+56
| | |
| * | SI-7410 REPL uses improved tools.jar locatorSom Snytt2013-05-235-39/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The logic in partest for snooping around for tools.jar is moved to PathResolver, and ILoop uses it from there. If JAVA_HOME is toolless, check out java.home. The use case was that Ubuntu installs with `java` at version 6 and `javac` at version 7; it's easy to wind up with JAVA_HOME pointing at the version 6 JRE, as I discovered. It's confusing when that happens. In future, partest might run under 7 and fork tests under 6, but those permutations are downstream.
* | | Merge pull request #2591 from som-snytt/topic/partest-inchesPaul Phillips2013-05-26367-525/+1397
|\ \ \ | | | | | | | | SI-7003 Partest redirects stderr to log file
| * | | SI-7198 Par-Test uses filters filesSom Snytt2013-05-2514-12/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Partest will also read files/filters and files/kind/filters for filter expressions (one per line, trimmed, leading #comments) which are taken as regexes. A test/files/filters is provided which attempts to quell HotSpot warnings; the test for this commit requires it. The elided lines can be revealed using the lemon juice of verbosity: apm@mara:~/projects/snytt/test$ ./partest --verbose --show-diff files/run/t7198.scala [snip] >>>>> Transcripts from failed tests >>>>> > partest files/run/t7198.scala % scalac t7198.scala [snip] % filtering t7198-run.log --Over the moon --Java HotSpot(TM) 64-Bit Server VM warning: Failed to reserve shared memory (errno = 28). The filtering operation is part of the transcript, which is printed on failure. No attempt is made to be clever about not slurping the filters file a thousand times. Previous literal patterns had to be updated because there's parens in them thar strings. Future feature: pattern aliases, define once globally and invoke in test filters.
| * | | SI-7003 Partest redirects stderr to log fileSom Snytt2013-05-25364-525/+1366
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some scalac output is on stderr, and it's useful to see that in the log file, especially for debugging. Adds a line filter for logs, specified as "filter: pattern" in the test source. Backslashes are made forward only when detected as paths. Test alignments: Deprecations which do not pertain to the system under test are corrected in the obvious way. When testing deprecated API, suppress warnings by deprecating the Test object. Check files are updated with useful true warnings, instead of running under -nowarn. Language feature imports as required, instead of running under -language. Language feature not required, such as casual use of postfix. Heed useful warning. Ignore broken warnings. (Rarely, -nowarn.) Inliner warnings pop up under -optimise only, so for now, just filter them out where they occur. Debug output from the test required an update.
* | | Merge pull request #2594 from adriaanm/ticket-7287Paul Phillips2013-05-261-3/+9
|\ \ \ | | | | | | | | SI-7287 include all compiler sources in -src.jar
| * | | SI-7287 include all compiler sources in -src.jarAdriaan Moors2013-05-241-3/+9
| |/ /
* | | Merge pull request #2585 from paulp/pr/concision-contributionPaul Phillips2013-05-2654-359/+368
|\ \ \ | |/ / |/| | Concision contribution.
| * | A couple additional simplifications.Paul Phillips2013-05-241-3/+3
| | | | | | | | | | | | As noted by reviewer.
| * | Concision contribution.Paul Phillips2013-05-2354-350/+353
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have lots of core classes for which we need not go through the symbol to get the type: ObjectClass.tpe -> ObjectTpe AnyClass.tpe -> AnyTpe I updated everything to use the concise/direct version, and eliminated a bunch of noise where places were calling typeConstructor, erasedTypeRef, and other different-seeming methods only to always wind up with the same type they would have received from sym.tpe. There's only one Object type, before or after erasure, with or without type arguments. Calls to typeConstructor were especially damaging because (see previous commit) it had a tendency to cache a different type than the type one would find via other means. The two types would compare =:=, but possibly not == and definitely not eq. (I still don't understand what == is expected to do with types.)
| * | Avoid caching different types in TypeSymbol.Paul Phillips2013-05-231-8/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Try to prevent TypeSymbols from caching a different typeref for tpe_* and typeConstructor if the symbol is monomorphic. I find this undesirable: scala> AnyRefClass.tpe eq AnyRefClass.typeConstructor res0: Boolean = true scala> AnyRefClass.tpe eq AnyRefClass.typeConstructor res1: Boolean = false
* | | Merge pull request #2573 from retronym/ticket/7499Paul Phillips2013-05-242-1/+9
|\ \ \ | | | | | | | | SI-7499 Additional test case for SI-7319
| * | | SI-7499 Additional test case for SI-7319Jason Zaugg2013-05-212-1/+9
| | | | | | | | | | | | | | | | From a duplicate ticket.
* | | | Merge pull request #2574 from paulp/issue/3425Paul Phillips2013-05-249-18/+1204
|\ \ \ \ | |_|/ / |/| | | SI-3425 erasure crash with refinement members.
| * | | Added another test.Paul Phillips2013-05-213-0/+1127
| | | | | | | | | | | | | | | | Probably overshot the mark a little.
| * | | SI-3425 erasure crash with refinement members.Paul Phillips2013-05-216-18/+77
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Checking that a refinement class symbol does not override any symbols does mean it will have to be invoke reflectively; but the converse is not true. It can override other symbols and still have to be called reflectively, because the overridden symbols may also be defined in refinement classes. scala> class Foo { type R1 <: { def x: Any } ; type R2 <: R1 { def x: Int } } defined class Foo scala> typeOf[Foo].member(TypeName("R2")).info.member("x": TermName).overrideChain res1: List[$r.intp.global.Symbol] = List(method x, method x) scala> res1 filterNot (_.owner.isRefinementClass) res2: List[$r.intp.global.Symbol] = List() And checking that "owner.info decl name == this" only works if name is not overloaded. So the logic is all in "isOnlyRefinementMember" now, and let's hope that suffices for a while.
* | | Merge pull request #2581 from soc/SI-6811-jsonPaul Phillips2013-05-233-0/+7
|\ \ \ | | | | | | | | SI-6811 Deprecate scala.util.parsing.json
| * | | SI-6811 Deprecate scala.util.parsing.jsonSimon Ochsenreither2013-05-223-0/+7
| | |/ | |/|
* | | Merge pull request #2576 from retronym/ticket/7436Paul Phillips2013-05-232-1/+10
|\ \ \ | |/ / |/| | SI-7436 Varargs awareness for super param aliasing.
| * | SI-7436 Varargs awareness for super param aliasing.Jason Zaugg2013-05-212-1/+10
| | | | | | | | | | | | | | | | | | | | | Don't consider a super class parameter accessor to be an alias if it is a repeated. Parameter aliases are used to avoid retaining redundant fields in the subclass; but that optimization is out of the question here.
* | | Merge pull request #2568 from scalamacros/topic/abstractfile-classloaderEugene Burmako2013-05-224-7/+17
|\ \ \ | |_|/ |/| | Moves AbstractFileClassLoader to scala-reflect.jar
| * | Moves AbstractFileClassLoader to scala-reflect.jarEugene Burmako2013-05-204-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | Its string name was used in ReflectionUtils and became broken after repl got factored out. This hints that that classloader belongs to where it is used, i.e. to scala-reflect.jar. Moreover AbstractFile is defined in scala-reflect.jar, so it's only logical to also define a derived classloader in scala-reflect.jar.
* | | Merge pull request #2564 from paulp/pr/infer-cleanupPaul Phillips2013-05-206-544/+392
|\ \ \ | | | | | | | | sanitation of Infer.
| * | | Swabbing exprTypeArgs.Paul Phillips2013-05-201-55/+50
| | | | | | | | | | | | | | | | | | | | Oh exprTypeArgs, you will send us to the poorhouse with your spendy ways. So many tuples have been dying needlessly.
| * | | Help makeFullyDefined allocate fewer ListBuffers.Paul Phillips2013-05-201-8/+7
| | | |
| * | | Tried to follow own advice with isCoercible.Paul Phillips2013-05-202-38/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Only to discover that it's really hard to move isCoercible anywhere because it wants to call inferView which, despite its suggestive name, is not visible in Infer. So I did what I could and documented it a little.
| * | | Wipe some dirt off protoTypeArgs's face.Paul Phillips2013-05-201-14/+8
| | | | | | | | | | | | | | | | He's a good kid, even if not the most hygenic.
| * | | Splashed soap and water on checkAccessible.Paul Phillips2013-05-201-67/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Yes checkAccessible, you patiently waited your turn. Do you like your new clothes? Oh, still not clean enough? I understand, but we must leave time for the other methods. Now run along and check something.
| * | | Pull some big chunks out of checkAccessible.Paul Phillips2013-05-201-0/+43
| | | | | | | | | | | | | | | | To streamline the essential logic.
| * | | Remove isPossiblyMissingArgs.Paul Phillips2013-05-202-18/+4
| | | | | | | | | | | | | | | | It has been hardcoded to return false for a long while anyway.
| * | | Make cookJavaRawInfo return this.type.Paul Phillips2013-05-201-2/+4
| | | | | | | | | | | | | | | | A lot more useful than Unit.
| * | | Annotated return type of a method.Paul Phillips2013-05-201-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | Because nobody should have to guess a return type like (List[Type], Array[Int], Boolean). In fact nobody should ever experience such a return type at all.
| * | | Commented out code from 2008.Paul Phillips2013-05-201-7/+0
| | | |
| * | | Commented out code from 2007.Paul Phillips2013-05-201-43/+0
| | | | | | | | | | | | | | | | It's not exactly 2006-era code but it's still a little ripe.
| * | | Commented out code from 2006.Paul Phillips2013-05-201-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | Yes, 2006. Perhaps we should have a "sunset provision" which removes commented-out code after seven years. Or even slightly sooner.
| * | | Scrubbing up inferPolyAlternatives.Paul Phillips2013-05-201-77/+67
| | | | | | | | | | | | | | | | Now you can take inferPolyAlternatives home to meet your mother.
| * | | Moving on to checkBounds.Paul Phillips2013-05-201-26/+19
| | | | | | | | | | | | | | | | So much dust and debris, so little time.
| * | | Cleaning crew moves down the hall.Paul Phillips2013-05-202-98/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Swabbing the decks of isAsSpecific and isApplicableSafe. Wow isApplicableSafe, you don't really need to declare and allocate a two-argument case class in order to manage a second method call.
| * | | Cleaning up isApplicable and neighbors.Paul Phillips2013-05-202-99/+72
|/ / / | | | | | | | | | | | | I'd really like these methods to receive greater scrutiny. To that end I'm scrutinizing them.
* | | Merge pull request #2492 from paulp/pr/enter-elimination-modePaul Phillips2013-05-2017-527/+633
|\ \ \ | | | | | | | | Toward more organized typer state.
| * \ \ Merge remote-tracking branch 'origin/master' into pr/enter-elimination-modePaul Phillips2013-05-198-22/+30
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | * origin/master: An attempt to make tests deterministic. SI-7427 stop crashing under -Ydebug.
| * \ \ \ Merge commit 'd93826f278' into pr/enter-elimination-modePaul Phillips2013-05-1817-527/+633
| |\ \ \ \ | | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'd93826f278': Incorporated reviewer feedback. Incorporated reviewer feedback. Refactored stabilize. Eliminated HKmode. Eliminated RETmode. Eliminated SNDTRYmode. Started eliminating modes. Corralling Modes into a smaller pen. Conflicts: src/compiler/scala/tools/nsc/typechecker/Macros.scala src/compiler/scala/tools/nsc/typechecker/RefChecks.scala src/compiler/scala/tools/nsc/typechecker/Typers.scala