improving incremental compilation

support lazy arguments in data type generator
SafeLazy implementation that explicitly clears the reference to the thunk
in API representation, drop synthetic modifier and merge deferred into abstract
handle cyclic structures in API generation, display, comparison, persistence
gzip compile cache file
bump to 2.8.1.RC3, project definition cleanup
fix main method detection to check for the right name
properly view inherited definitions
exclude constructors of ancestors
This commit is contained in:
Mark Harrah 2010-10-22 21:55:16 -04:00
parent 0425532275
commit 7dca038bde
5 changed files with 20 additions and 9 deletions

View File

@ -14,8 +14,8 @@ Definition
returnType: Type returnType: Type
ClassLike ClassLike
definitionType: DefinitionType definitionType: DefinitionType
selfType: Type selfType: ~Type
structure: Structure structure: ~Structure
TypeMember TypeMember
TypeAlias TypeAlias
tpe: Type tpe: Type

View File

@ -20,13 +20,11 @@ Qualifier
Modifiers Modifiers
isAbstract: Boolean isAbstract: Boolean
isDeferred: Boolean
isOverride: Boolean isOverride: Boolean
isFinal: Boolean isFinal: Boolean
isSealed: Boolean isSealed: Boolean
isImplicit: Boolean isImplicit: Boolean
isLazy: Boolean isLazy: Boolean
isSynthetic: Boolean
ParameterList ParameterList
parameters: MethodParameter* parameters: MethodParameter*

View File

@ -0,0 +1,9 @@
/* sbt -- Simple Build Tool
* Copyright 2008, 2009 Mark Harrah
*/
package xsbti.api;
public interface Lazy<T>
{
T get();
}

View File

@ -3,7 +3,7 @@ Type
SimpleType SimpleType
Projection Projection
prefix : SimpleType prefix : SimpleType
id : String id: String
ParameterRef ParameterRef
id: Int id: Int
Singleton Singleton
@ -16,9 +16,9 @@ Type
baseType : SimpleType baseType : SimpleType
annotations : Annotation* annotations : Annotation*
Structure Structure
parents : Type* parents : ~Type*
declared: Definition* declared: ~Definition*
inherited: Definition* inherited: ~Definition*
Existential Existential
baseType : Type baseType : Type
clause: TypeParameter* clause: TypeParameter*

View File

@ -38,7 +38,9 @@ trait Relation[A,B]
def _1s: collection.Set[A] def _1s: collection.Set[A]
/** Returns the set of all _2s such that (_1, _2) is in this relation. */ /** Returns the set of all _2s such that (_1, _2) is in this relation. */
def _2s: collection.Set[B] def _2s: collection.Set[B]
/** Returns the number of pairs in this relation */
def size: Int
/** Returns all pairs in this relation.*/ /** Returns all pairs in this relation.*/
def all: Traversable[(A,B)] def all: Traversable[(A,B)]
@ -57,6 +59,8 @@ private final class MRelation[A,B](fwd: Map[A, Set[B]], rev: Map[B, Set[A]]) ext
def _1s = fwd.keySet def _1s = fwd.keySet
def _2s = rev.keySet def _2s = rev.keySet
def size = fwd.size
def all: Traversable[(A,B)] = fwd.iterator.flatMap { case (a, bs) => bs.iterator.map( b => (a,b) ) }.toTraversable def all: Traversable[(A,B)] = fwd.iterator.flatMap { case (a, bs) => bs.iterator.map( b => (a,b) ) }.toTraversable