Rework resolver (#489)

* Rework IR and resolver to use nested lookup tables
* Integrate types into IR
* Make components prefer IR, slimmed down AST
* Implement `export *`
* Add `@lazy` annotation and remove `--noTreeShaking`
* Add `@start` annotation and remove magic `main`
* Related refactoring, cleanup and docs
This commit is contained in:
Daniel Wirtz
2019-02-21 00:11:22 +01:00
committed by GitHub
parent e623786b42
commit 0c64f21250
234 changed files with 16949 additions and 37871 deletions

View File

@ -0,0 +1,41 @@
class OuterClass {}
export namespace Outer {
export class InnerClass {}
export namespace Inner {
export class EvenInnerClass {}
var a: OuterClass;
var b: InnerClass;
var c: EvenInnerClass;
var d: Outer.InnerClass;
var e: Outer.Inner.EvenInnerClass;
var f: Inner.EvenInnerClass;
export function evenInner(
a: OuterClass,
b: InnerClass,
c: EvenInnerClass,
d: Outer.InnerClass,
e: Outer.Inner.EvenInnerClass,
f: Inner.EvenInnerClass
): void {}
}
var a: OuterClass;
var b: InnerClass;
var c: Inner.EvenInnerClass;
var d: Outer.InnerClass;
var e: Outer.Inner.EvenInnerClass;
export function inner(
a: OuterClass,
b: InnerClass,
c: Inner.EvenInnerClass,
d: Outer.InnerClass,
e: Outer.Inner.EvenInnerClass
): void {}
}
var a: OuterClass;
var b: Outer.InnerClass;
var c: Outer.Inner.EvenInnerClass;
export function outer(
a: OuterClass,
b: Outer.InnerClass,
c: Outer.Inner.EvenInnerClass
): void {}