Skip to content

Commit

Permalink
Add some feedback for wrong usage of '@compiletime'
Browse files Browse the repository at this point in the history
  • Loading branch information
Frotty committed Jun 11, 2018
1 parent f38fa17 commit 41df55f
Showing 1 changed file with 20 additions and 1 deletion.
Expand Up @@ -7,7 +7,10 @@
import de.peeeq.wurstscript.attributes.CofigOverridePackages;
import de.peeeq.wurstscript.attributes.CompileError;
import de.peeeq.wurstscript.attributes.ImplicitFuncs;
import de.peeeq.wurstscript.attributes.names.*;
import de.peeeq.wurstscript.attributes.names.DefLink;
import de.peeeq.wurstscript.attributes.names.FuncLink;
import de.peeeq.wurstscript.attributes.names.NameLink;
import de.peeeq.wurstscript.attributes.names.Visibility;
import de.peeeq.wurstscript.gui.ProgressHelper;
import de.peeeq.wurstscript.types.*;
import de.peeeq.wurstscript.utils.Utils;
Expand Down Expand Up @@ -843,6 +846,11 @@ private void visit(LocalVarDef s) {
ArrayInitializer arInit = (ArrayInitializer) s.getInitialExpr();
checkArrayInit(s, arInit);
}

if (s.hasAnnotation("@compiletime")) {
s.getAnnotation("@compiletime").addWarning("The annotation '@compiletime' has no effect on variables.");
}

checkIfRead(s);
}

Expand Down Expand Up @@ -958,6 +966,10 @@ private void visit(GlobalVarDef s) {
checkArrayInit(s, (ArrayInitializer) s.getInitialExpr());
}

if (s.hasAnnotation("@compiletime")) {
s.getAnnotation("@compiletime").addWarning("The annotation '@compiletime' has no effect on variables.");
}

if (s.attrTyp() instanceof WurstTypeArray && !s.attrIsStatic() && s.attrIsDynamicClassMember()) {
// s.addError("Array variables must be static.\n" +
// "Hint: use Lists for dynamic stuff.");
Expand Down Expand Up @@ -1038,6 +1050,13 @@ private void visit(FuncDef func) {
func.addError("Abstract functions must not be private.");
}
}

if(func.attrIsCompiletime()) {
if(func.getParameters().size() > 0) {
func.addError("Functions annotated '@compiletime' may not take parameters." +
"\nNote: The annotation marks functions to be executed by wurst at compiletime.");
}
}
}

private void checkUninitializedVars(FunctionLike f) {
Expand Down

0 comments on commit 41df55f

Please sign in to comment.