| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This pull request implements most of machinery needed for
https://github.com/scala/scala.github.com/pull/491
Only 3-rd check is not implemented by this commit.
I propose to get this in faster to fix #1149
|
|\
| |
| | |
Initial infrastructure and hello world for the Scala.js back-end.
|
| |
| |
| |
| |
| | |
This guarantees that we can bootstrap dotty without depending on
the binaries of scalajs-ir compiled by another Scala compiler.
|
| |
| |
| |
| |
| |
| | |
This required the ability to instantiate a different `Platform`
depending on settings, which, in turn, required to defer the
initialization of `ContextBase.platform`.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Scala.js back-end can be enabled with the `-scalajs`
command-line option. Currently, it adds one phase to the pipeline,
which emits .sjsir files from trees.
A sandbox project `sjsSandbox`, in `sandbox/scalajs/`, can be used
to easily test Scala.js compilation. One can run the `main()`
method of the `hello.world` object with
> sjsSandbox/run
The back-end only contains the bare mimimum to compile the hello
world application in the sandbox. Anything else will blow up
(for example, primitive method calls). It is a work-in-progress.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a concrete val is mixed in from a Scala2 trait, a setter is
generated, which is called by the `$init$` method. Since the
assignment in this setter is not done in the constructor, it is
nonsensical for the field to be immutable.
This commit sets the Mutable flag on such fields. It only applies
for vals coming from Scala2 traits. vals coming from Dotty traits
are kept immutable.
|
| |
| |
| |
| |
| | |
Dotty treats trait and class constructors as returning the class.
But scalac uses Unit for the return type of trait init methods.
|
|\ \
| | |
| | | |
Neg tests: remove xerror parameter from neg tests (#1110)
|
| | | |
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
Rename AllFlags to AnyFlags
|
| |/
| |
| |
| |
| |
| | |
`membersBasedOnFlags(requiredFlags = AnyFlags, excludedFlags = ...)` is
easier to understand than
`membersBasedOnFlags(requiredFlags = AllFlags, excludedFlags = ...)`
|
|\ \
| | |
| | | |
Change isCompanionNeeded
|
| | |
| | |
| | |
| | | |
Brings time to compile stdlib down from 185s to 44s.
|
| | |
| | |
| | |
| | |
| | | |
Print a phase after it has run, together with the time
it needs. Useful to locate performance problems in transforms.
|
|\ \ \
| |_|/
|/| | |
Special case pattern matching against abstract types with class tags
|
| | | |
|
| | |
| | |
| | |
| | | |
We do not want to do implicit search during tree checking.
|
| | |
| | |
| | |
| | | |
Add special case when pattern matching against an abstract type that comes with a class tag
|
| | |
| | |
| | |
| | |
| | | |
Goal: Make implementation easier to understand. Prepare the ground for
special-casing of typetagged patterns.
|
| | | |
|
| | |
| | |
| | |
| | | |
Now subsumed by functionality in Typer.
|
| | |
| | |
| | |
| | |
| | | |
Make use of Definitions as the repository for
standard symbols in Predef.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Context bounds did not make it before into secondary
constructors. Now the evidence parameters generated
by context bounds get copied into secondary constructors.
Without this fix, scala.collection.immutable.PagedSeq fails
to compile in new classtag scheme.
|
| | |
| | |
| | |
| | |
| | | |
If a classtag for `T` is available, a classtag
for `Array[T]` can also be generated.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Now diagnoses missing ClassTags of abstract types
as implicit failures.
Also: Simpler API of tpd.clsOf.
|
| | |
| | |
| | |
| | |
| | | |
Tests failures were caused by previous incomplete implementation
of classTag.
|
|\ \ \
| | | |
| | | | |
Build.scala: increase Jenkins max heap from 1.1G to 1.3G
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This should be safe now that run tests do not take so much memory
anymore (cf #1033 and #1076).
It would be even better if we could figure out why we're using so much
memory, but that's less important than avoiding spurious test failures.
|
| | |/
| |/| |
|
|\ \ \
| | | |
| | | | |
Fix `bin/dotc` checkjar of wrong project
|
| |/ / |
|
|\ \ \
| |/ /
|/| | |
Make Types#membersBasedOnFlags safer and faster
|
|/ /
| |
| |
| | |
By filtering excluded flags earlier, we avoid forcing some denotations.
|
|\ \
| | |
| | | |
Add a `dotty-interfaces` package
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We introduce a new entry point for the compiler in
`dotty.tools.dotc.Driver`:
```
def process(args: Array[String], simple: interfaces.SimpleReporter,
callback: interfaces.CompilerCallback): interfaces.ReporterResult
```
Except for `args` which is just an array, the argument types and return
type of this method are Java interfaces defined in a new package called
`dotty-interfaces` which has a stable ABI. This means that you can
programmatically run a compiler with a custom reporter and callbacks
without having to recompile it against every version of dotty: you only
need to have `dotty-interfaces` present at compile-time and call the
`process` method using Java reflection.
See `test/test/InterfaceEntryPointTest.scala` for a concrete example.
This design is based on discussions with the IntelliJ IDEA Scala plugin
team. Thanks to Nikolay Tropin for the discussions and his PR
proposal (see #1011).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Rename Diagnostic#msg to message, this is nicer for a public API
- Rename SourceFile#lineContents and SourcePosition#lineContents
to lineContent, the former is not grammatically correct.
- Add some convenience methods to SourcePosition.
|
|\ \ \
| |/ /
|/| | |
Upgrade sbt to 0.13.11 and scalastyle-sbt-plugin to 0.8.0
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Upgrading sbt will allow us to experiment with bootstrapping
using sbt since 0.13.11 is the first release that supports building
with dotty (see https://github.com/smarter/dotty-bridge).
Upgrading scalastyle-sbt-plugin allows us to remove the workaround for
https://github.com/scalastyle/scalastyle/issues/156
|
|\ \
| | |
| | | |
Fix FatalError's constructor to forward `msg` to super.
|
| | | |
|
|/ /
| |
| |
| |
| | |
Previously, getMessage() always returned `null`, causing NPEs
when trying to report a FatalError.
|
|\ \
| | |
| | | |
Modernize and clean up the build.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Settings `in Global` are moved to Build.settings. Otherwise they
are added *twice* in every project.
Project definitions use the `project` macro rather than the
`Project()` factory, as is the customary notation since sbt
0.13. The `Defaults.coreDefaultSettings` is therefore dropped.
The coding style of project definitions is adapted to the style
shown in sbt documentations.
|
|\ \ \
| | | |
| | | | |
ConsoleReporter: handling of non-sensical messages is now reusable
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is now handled by a separate trait HideNonSensicalMessages that can
be mixed in, similar to UniqueMessagePositions. This way we'll be able
to reuse this functionality for other kind of Reporters.
This also means that we don't need `doReport` to return a Boolean
anymore, so we change it to return a Unit as it did before
065a0026924f722e9844c8e314180bb4cebca236
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
Break it out from Reporter and eliminate all dependencies
to Context. This is done so that Diagnostics can be part
of a public and minimal compiler API.
|
|\ \ \
| | | |
| | | | |
Do not create companions that will be dropped later.
|