summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* moves Context.ParseError outside the cakeEugene Burmako2012-09-272-12/+7
| | | | | I did this for ReificationError a long time ago. Must've probably forgot to do the same for ParseError.
* revives macros.InfrastructureEugene Burmako2012-09-278-79/+38
| | | | | Takes macros.Settings, throws away its mutable parts, moves classPath from Run back to the top level - and unites all that in the Infrastructure trait.
* moves Context.runtimeUniverse to TreeBuild.mkRuntimeUniverseRefEugene Burmako2012-09-276-12/+11
| | | | Scaladoc-driven cleanup for the win
* a more precise type for Context.mirrorEugene Burmako2012-09-272-2/+2
| | | | | | | | | | scala.reflect.api.Mirror is the most basic contract for mirrors. Currently scala.reflect.api.Universe.Mirror is simply an abstract type type Mirror >: Null <: scala.reflect.api.Mirror[self.type], and scala.reflect.macros.Universe doesn't override that type, so from the user standpoint at the moment scala.reflect.api.Mirror == c.mirror, however, in the future this might be a source of errors.
* gets rid of macros.InfrastructureEugene Burmako2012-09-278-32/+12
| | | | | | currentRun goes to Enclosures and becomes enclosingRun currentClassPath gets integrated into Run
* simplifies Context.Run and Context.CompilationUnitEugene Burmako2012-09-277-39/+40
| | | | | By turning them from abstract types into full-fledged traits implemented by our internal Run and CompilationUnit.
* exposes Position.source as SourceFileEugene Burmako2012-09-274-17/+7
| | | | | | | | | | | | | It was useful to pretend that SourceFile isn't a part of the API, when it's physical location was in scala-compiler.jar. Afterwards Position and SourceFile have been moved to scala-reflect.jar, and (what's more important) scala-reflect.jar gained experimental status, meaning that we're not bound by backward compatibility in 2.10.0. Therefore I'd say we should expose a full-fledged SourceFile in Position.source (just as we do for Symbol.associatedFile) and later find out how to strip down its interface to something suitable for public consumption.
* removes extraneous stuff from macros.InfrastructureEugene Burmako2012-09-274-69/+5
| | | | | | | | | | | libraryClassLoader can be derived from currentClassPath currentMacro can be trivially derived from macroApplication Backend-detection methods forXXX (as in forJVM or forScaladoc) might be useful, but current design of this API is not future-proof. I'm not able to come up with a better design on the spot, so let's remove this functionality for the moment.
* merges macros.CapturedVariables into macros.UniverseEugene Burmako2012-09-275-38/+13
| | | | | | | | Back then we didn't have a notion of a macro-specific universe, so I had to expose these methods in Context. Now we have our very own macros.Universe, so capturing methods have landed there.
* merges macros.Exprs and macros.TypeTags into ContextEugene Burmako2012-09-278-38/+6
| | | | | The former is a one-method trait, the latter is a two-method trait. In a scaladoc these guys don't look like the pull their weight.
* removes front ends from scala-reflect.jarEugene Burmako2012-09-2713-214/+180
| | | | | | | | | | | It was an interesting idea to give macro developers control over front ends, but it hasn't given any visible results. To the contrast, front ends have proven useful for toolboxes to easily control what errors get printed where. Therefore I'm moving front ends to scala-compiler.jar to clean up the API. Yay for scaladoc-driven development!
* PositionApi => PositionEugene Burmako2012-09-274-172/+171
| | | | Continues the series of Scaladoc-driven optimizations to scala-reflect.jar.
* hides BuildUtils from ScaladocEugene Burmako2012-09-271-1/+1
| | | | | | | | This is an internal implementation class, only necessary for reification (exposes some really internal stuff required to recreate the trees, the stuff for which the public API is insufficient or too verbose). Therefore we don't need it in Scaladoc.
* MirrorOf => MirrorEugene Burmako2012-09-2724-69/+63
| | | | | The name looks weird in the scaladoc overview panel, so I decided to do a last-minute rename.
* docs.pre-lib now checks for mods in reflectEugene Burmako2012-09-271-0/+1
|
* no longer docs scala.reflect.ioEugene Burmako2012-09-272-1/+5
| | | | | | | | | The only place we use something from scala.reflect.io in the public API is Symbol.associatedFile, so I've excluded scala.reflect.io from scaladoc and added a "warning: experimental" comment to associatedFile instead. I'd argue that this greatly simplifies the surface of reflection API (typing scala.reflect in the search bar now yields 3 packages instead of 4).
* no longer docs internal scala.reflect packagesEugene Burmako2012-09-271-7/+7
|
* Merge pull request #1393 from scalamacros/topic/leaks-in-toolboxesGrzegorz Kossakowski2012-09-275-90/+166
|\ | | | | SI-6412 alleviates leaks in toolboxes, attempt #2
| * SI-6412 alleviates leaks in toolboxes, attempt #2Eugene Burmako2012-09-275-90/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turns importer caches into fully weak hash maps, and also applies manual cleanup to toolboxes every time they are used. It's not enough, because reflection-mem-typecheck test is still leaking at a rate of ~100kb per typecheck, but it's much better than it was before. We'll fix the rest later, after 2.10.0-final. For more information, see https://issues.scala-lang.org/browse/SI-6412 and http://groups.google.com/group/scala-internals/browse_thread/thread/eabcf3d406dab8b2 In comparison with https://github.com/scala/scala/commit/b403c1d, the original commit that implemented the fix, this one doesn't crash tests. The problem with the original commit was that it called tryFixup() before updating the cache, leading to stack overflows.
* | Merge pull request #1408 from scalamacros/topic/direct-testPaul Phillips2012-09-262-2/+2
|\ \ | | | | | | hardens DirectTest against missing -d settings
| * | hardens DirectTest against missing -d settingsEugene Burmako2012-09-262-2/+2
| |/ | | | | | | | | And also explicitly specifies -d in a test where I forgot to do that. Double checking never hurts.
* | Merge pull request #1407 from dragos/issue/fix-SI-6429Paul Phillips2012-09-261-1/+1
|\ \ | | | | | | Don't call `updateInfo` during typing.
| * | Don't call `updateInfo` during typing.Iulian Dragos2012-09-261-1/+1
| | | | | | | | | | | | We resort to `setInfo`, basically removing the previous info. This "fixes" a possible race condition in typing ModuleDefs by making the typer always 'win'. See the assertion stack trace in SI-6429.
* | | Merge pull request #1387 from paulp/topic/210-quieter-warningsPaul Phillips2012-09-2620-63/+64
|\ \ \ | |_|/ |/| | Fixing -Xlint and acting on its advice for 2.10.
| * | Move -Xdead-code out of the standard -Xlint.Paul Phillips2012-09-262-2/+3
| | | | | | | | | | | | It has become extremely noisy for reasons not yet known.
| * | Privatize some collections internals.Paul Phillips2012-09-261-5/+5
| | | | | | | | | | | | These should not be public vars.
| * | Refine an -Xlint warning.Paul Phillips2012-09-261-5/+7
| | | | | | | | | | | | It should not warn about default getters.
| * | Explicit type application in cps plugin.Paul Phillips2012-09-261-1/+1
| | | | | | | | | | | | -Xlint revealed a strange type was being inferred here.
| * | Don't overload implicit methods.Paul Phillips2012-09-262-3/+3
| | | | | | | | | | | | It is the cause of much unhappiness, and it is not necessary.
| * | Don't write public methods with non-public parameters.Paul Phillips2012-09-263-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | If the parameter types of a method have lower visibility than the method itself, then the method cannot be overridden because the parameter types cannot be expressed. This is a confusing and frustrating situation to expose via public API. Such methods should either have access as strong as their parameter types, or be made final.
| * | Don't write side-effecting nullary methods.Paul Phillips2012-09-266-26/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Style says never write methods like this: def foo: Unit If it is Unit, then it is side-effecting, and should be def foo(): Unit Since -Xlint warns about this, we must adhere to its dictate.
| * | Avoid relying on auto-tupling.Paul Phillips2012-09-265-14/+14
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | When you call Some(a, b, c) The compiler does eventually figure out that you meant Some((a, b, c)) However the compiler finds this inordinately taxing, and because this auto-tupling is dangerous, -Xlint warns about it. In the interests of being able to hear -Xlint's important points, we write Some((a, b, c)) to give it less to warn about.
* | Merge pull request #1380 from scalamacros/ticket/6277Eugene Burmako2012-09-2627-64/+164
|\ \ | | | | | | SI-6277 fix for isXXX methods in reflection
| * | SI-6277 fixes flags, annotations & privateWithinEugene Burmako2012-09-2616-43/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `Symbol.getFlag`, 'Symbol.hasFlag`, `Symbol.hasAllFlags`, `Symbol.annotations` and `Symbol.privateWithin` now trigger automatic initialization of symbols if they are used in a runtime reflection universe and some other conditions are met (see `Symbol.needsInitialize` for details). As the performance testing in https://github.com/scala/scala/pull/1380 shows, this commit introduces a ~2% performance regression of compilation speed. Unfortunately all known solutions to the bug at hand (A, B & C - all of those) introduce perf regressions (see the pull request linked above for details). However we're under severe time pressure, so there's no more time to explore. Therefore I suggest this is reasonable to accept this performance hit, because we've just gained 6% from removing scala.reflect.base, and even before that we were well within our performance goal for 2.10.0-final.
| * | distinguishes flag-agnostic completersEugene Burmako2012-09-2410-18/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | At times it's useful to know whether a lazy type can change the flags of the underlying symbol or not. If the completer is flag-agnostic, this means that we can safely use flag-inspection facilities such as hasFlag and isXXX tests without fear of looking into not yet initialized data.
| * | minor cleanup for reflectionEugene Burmako2012-09-223-5/+5
| | |
* | | Merge pull request #1396 from axel22/issue/6410Josh Suereth2012-09-262-0/+11
|\ \ \ | | | | | | | | SI-6410 add test cases.
| * | | SI-6410 add test cases.Aleksandar Prokopec2012-09-252-0/+11
| | | |
* | | | Merge pull request #1397 from jsuereth/fix/SI-6409Grzegorz Kossakowski2012-09-261-0/+3
|\ \ \ \ | | | | | | | | | | Improves SI-6409 - Add note to string flatMap about evaluation.
| * | | | Improves SI-6409 - Add note to string flatMap about evaluation.Josh Suereth2012-09-251-0/+3
| |/ / / | | | | | | | | | | | | | | | | | | | | Note: flatMap has to evaluate the stream until it finds a head for the new stream. This is a limitation that will exist for 2.10.0, but the bug will remain open.
* | | | Merge pull request #1405 from heathermiller/topic/scaladoc-interface-fixesGrzegorz Kossakowski2012-09-263-5440/+187
|\ \ \ \ | | | | | | | | | | Scaladoc interface fixes, js/css-only
| * | | | Automatically highlight and scroll to linked-to membersHeather Miller2012-08-241-0/+16
| | | | |
| * | | | SI-4857 fixes showall/hideall Scaladoc interface bugHeather Miller2012-08-231-0/+11
| | | | |
| * | | | SI-6170 Revert #456 "Upgrade jQuery from 1.4.2 to 1.7.2"Heather Miller2012-08-232-5440/+160
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b6c0e4478616a1252d65754a40c5dcbfc6554b36 because it caused SI-6170, after this revert, the left "search" panel of scaladoc should be resizable again.
* | | | | Merge pull request #1388 from odersky/topic/instrumenterGrzegorz Kossakowski2012-09-261-6/+7
|\ \ \ \ \ | | | | | | | | | | | | Fixed instrumentation code so that it can deal with:
| * | | | | Fixed instrumentation code so that it can deal with:Martin Odersky2012-09-251-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. leading imports: object sheet { import math; … } 2. trailing objects: object sheet { … } object other { … } Review by @dragos
* | | | | | Merge pull request #1394 from vjovanov/amk/ActorRefGrzegorz Kossakowski2012-09-2625-65/+774
|\ \ \ \ \ \ | | | | | | | | | | | | | | Moving ActorRef API to scala.concurrent.
| * | | | | | Moving actor migration to separate dir.Vojin Jovanovic2012-09-255-0/+0
| | | | | | |
| * | | | | | Additional Actor Migration Tests.Vojin Jovanovic2012-09-2510-0/+656
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Review by @phaller.
| * | | | | | Support for scala.concurrent for the ActorRef.Vojin Jovanovic2012-09-2510-50/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Review by @phaller