| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Further iteration related to patterns and bindings.
|
| |
|
|
|
|
|
|
|
| |
Created PatternVarGroup to hold a sequence of patternvars. Soon all
the variable binding code will be swallowed and each action related to
variables will happen at one location only.
|
|
|
|
|
|
|
|
|
| |
In the same way that raw Trees are giving way to Patterns, raw Symbols
(and accompanying ValDef trees) are being replaced by PatternVars. Once
these are both used consistently a number of bugs will vanish with a
puff of smoke, as they are caused by inconsistencies which need not ever
be allowed to occur.
|
|
|
|
|
|
| |
Improving tracing output, and more code organization to hide the
uninteresting bits.
|
|
|
|
|
|
|
|
|
|
| |
bits into the SequencePattern class, which took me an eternity because
the current logic only worked because of bugs in the pattern matcher
which allowed a non-matching case to match anyway. Trust me, you do not
want to debug that sort of thing. I wonder how much of the compiler
would stop working if I magically fixed all the matcher bugs at once,
and long dormant logic suddenly lurched to life...
|
|
|
|
|
|
|
|
| |
Further centralized all temporary variable creation. Tracked down
multiple places where var allocation and assignment had been fragilely
divorced and arranged for reconciliation. Almost have every Rule using
the cond/success/failure interface.
|
|
|
|
|
|
| |
Starting the process of properly encapsulating the temporary variables
created during pattern match translation.
|
|
|
|
|
|
| |
Breaking down the matcher's various Mix* classes into direct expressions
of condition/success/failure.
|
|
|
|
|
| |
Don't fold List.apply() to Nil in presentation mode.
|
|
|
|
|
|
|
| |
Amazing how much code becomes unnecessary when you use immutable data
wherever you can. Continuing to break down the last few environments
inside the pattern matcher which bugs find hospitable.
|
| |
|
|
|
|
|
|
|
| |
Moved yet more stuff out of ParallelMatching, and began the painful
process of peeling away the variable bindings code far enough to see
what is going wrong down there.
|
|
|
|
|
|
|
| |
Make the positions of the children of an Import transparent so that
the interactive compiler will always find the Import rather than the
children.
|
|
|
|
|
|
| |
Reworked exhaustiveness checking yet further, and moved it and some
other pieces into their own file.
|
|
|
|
|
|
|
| |
1) Removed a bunch of unnecessary calls to the typer. 2) Reworked
exhaustiveness checking so I can tell what it's doing. 3) Cruft falls
away left, right, and center.
|
|
|
|
|
| |
Added aliases for Vector and Traversable to scala package object.
|
|
|
|
|
|
|
|
|
| |
Renamed identifier pats to pmatch to reduce ambiguity, and implemented
generic precondition machinery for testing whether a pattern should
even be attempted. This is like a complement to guards (though not user
expressable) and is a key to fixing some of the longer standing matcher
bugs.
|
|
|
|
|
|
| |
Switched to using .narrow where possible instead of constructing
singleton types by hand.
|
| |
|
|
|
|
|
| |
Finishing up a bit of treegen I had left in mid-refactor.
|
| |
|
|
|
|
|
|
|
| |
Retains Import nodes until the typers phase so that they are available
to interactive compiler clients and other AST users. Adds position
information to imported names and renames.
|
| |
|
|
|
|
|
| |
More revealing error message for the crasher in #2433.
|
| |
|
|
|
|
|
|
| |
Getting variable binding bits into appropriate places. Waved goodbye to
PatternNodes.
|
|
|
|
|
|
| |
Pattern matcher starting to look like code you might take home to meet
your parents.
|
|
|
|
|
|
| |
Exceptions are part of the protocol between the interactive compiler and
its clients, so ensure that none are lost.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Patch from Mirko Stoker to add comment nodes to compilation units
allowing access to comment contents and positions for all tools which
use the Scala AST.
|
|
|
|
|
|
| |
fixed #2421: checkBounds in typedImplicit0 to filter out implicit
searchresults that result in nonsenical type instantiations
|
|
|
|
|
|
|
| |
by accident as I go - I just noticed #2175 is working. That's
even better than fixing them on purpose, in the same way that
"money won is twice as sweet as money earned."
|
|
|
|
|
|
|
|
|
| |
BuildManagers weren't deleting invalidated classfiles; dependency
tracker was only recording the dependency of Foo$.class on the source
of object Foo ... Foo.class is now also recorded; the Eclipse Java
builder could copy modified Scala sources to the output folder during
incremental builds. Fixes #2428.
|
|
|
|
|
|
|
| |
to enjoy it when I no longer have to work around bugs in the pattern
matcher while implementing the pattern matcher. Metacircularity: more
fun applied to features than to bugs!
|
|
|
|
|
|
| |
Inching some more complicated and confusingly redundant bits toward
pattern classes.
|
|
|
|
|
|
| |
or obsolete code now that I'm gaining some confidence about what exists
for a reason and what exists only because it once existed.
|
|
|
|
|
|
| |
Moving pattern related logic into Patterns and type related logic into
MixTypes.
|
|
|
|
|
|
|
|
| |
Enhanced the previous string length fix to work, and made it possible to
enable/disable deprecation warnings on the fly in the repl, like so:
settings.deprecation = true
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Pattern Matcher Productions is pleased to announce, for what might be
the first time ever, the thrilling arrival of... Polly Morphism! (Cue
arena music) Now that the basic pattern variations are straitjacketed I
can corral the strays.
|
|
|
|
|
|
| |
Some trees make a nice smooth transition into a Pattern class, others
fight tooth and nail. Partway there.
|
| |
|
| |
|
|
|
|
|
| |
Commented out some position assertions which are crashing valid code.
|
|
|
|
|
|
|
| |
Bit by bit, the ad hoc tests and transformations on Trees will make
their way into a Pattern subclass specifically designed for the intended
semantics.
|
| |
|