poison GenerationState

This commit is contained in:
Stepan Koltsov
2012-06-08 04:19:23 +04:00
parent 8a3d3d21bd
commit 6860d330f9
@@ -56,6 +56,8 @@ public class GenerationState {
private final ClassBuilderMode classBuilderMode; private final ClassBuilderMode classBuilderMode;
private boolean poisoned = false;
// out parameter // out parameter
private Method scriptConstructorMethod; private Method scriptConstructorMethod;
@@ -76,6 +78,13 @@ public class GenerationState {
this.files, project, compilerSpecialMode, builderFactory.getClassBuilderMode(), this, builderFactory); this.files, project, compilerSpecialMode, builderFactory.getClassBuilderMode(), this, builderFactory);
} }
private void poison() {
if (poisoned) {
throw new IllegalStateException("already poisoned");
}
poisoned = true;
}
@NotNull @NotNull
public ClassFileFactory getFactory() { public ClassFileFactory getFactory() {
return getInjector().getClassFileFactory(); return getInjector().getClassFileFactory();
@@ -128,6 +137,7 @@ public class GenerationState {
} }
public void compileCorrectFiles(@NotNull CompilationErrorHandler errorHandler) { public void compileCorrectFiles(@NotNull CompilationErrorHandler errorHandler) {
poison();
for (JetFile file : this.files) { for (JetFile file : this.files) {
if (file.isScript()) { if (file.isScript()) {