When generating light class for package, do not generate other classes

This commit is contained in:
Andrey Breslav
2012-12-24 15:25:36 +04:00
parent a91b113cc3
commit 69080b72af
5 changed files with 36 additions and 13 deletions
@@ -124,8 +124,10 @@ public class NamespaceCodegen extends MemberCodegen {
}
}
else if (declaration instanceof JetClassOrObject) {
final CodegenContext context = CodegenContext.STATIC.intoNamespace(descriptor);
genClassOrObject(context, (JetClassOrObject) declaration);
if (state.isGenerateDeclaredClasses()) {
final CodegenContext context = CodegenContext.STATIC.intoNamespace(descriptor);
genClassOrObject(context, (JetClassOrObject) declaration);
}
}
else if (declaration instanceof JetScript) {
state.getScriptCodegen().generate((JetScript) declaration);
@@ -66,8 +66,10 @@ public class GenerationState {
private final boolean generateNotNullParamAssertions;
private final boolean generateDeclaredClasses;
public GenerationState(Project project, ClassBuilderFactory builderFactory, BindingContext bindingContext, List<JetFile> files) {
this(project, builderFactory, Progress.DEAF, bindingContext, files, BuiltinToJavaTypesMapping.ENABLED, true, false);
this(project, builderFactory, Progress.DEAF, bindingContext, files, BuiltinToJavaTypesMapping.ENABLED, true, false, true);
}
public GenerationState(
@@ -78,7 +80,8 @@ public class GenerationState {
@NotNull List<JetFile> files,
@NotNull BuiltinToJavaTypesMapping builtinToJavaTypesMapping,
boolean generateNotNullAssertions,
boolean generateNotNullParamAssertions
boolean generateNotNullParamAssertions,
boolean generateDeclaredClasses
) {
this.project = project;
this.progress = progress;
@@ -100,6 +103,7 @@ public class GenerationState {
this.generateNotNullAssertions = generateNotNullAssertions;
this.generateNotNullParamAssertions = generateNotNullParamAssertions;
this.generateDeclaredClasses = generateDeclaredClasses;
}
@NotNull
@@ -160,6 +164,10 @@ public class GenerationState {
return generateNotNullParamAssertions;
}
public boolean isGenerateDeclaredClasses() {
return generateDeclaredClasses;
}
public void beforeCompile() {
markUsed();