import org.simantics.scl.compiler.elaboration.expressions.EVar;
import org.simantics.scl.compiler.elaboration.expressions.Expression;
import org.simantics.scl.compiler.elaboration.expressions.Variable;
+import org.simantics.scl.compiler.elaboration.expressions.annotations.AnnotationUtils;
import org.simantics.scl.compiler.elaboration.fundeps.Fundep;
import org.simantics.scl.compiler.elaboration.java.JavaMethodDeclaration;
import org.simantics.scl.compiler.elaboration.macros.StandardMacroRule;
+import org.simantics.scl.compiler.elaboration.modules.DeprecatedProperty;
import org.simantics.scl.compiler.elaboration.modules.InlineProperty;
import org.simantics.scl.compiler.elaboration.modules.MethodImplementation;
import org.simantics.scl.compiler.elaboration.modules.PrivateProperty;
}
}.findComponents();
- if(errorLog.isEmpty()) {
+ if(errorLog.hasNoErrors()) {
for(DTypeAst typeAlias : orderedTypeAliases) {
TypeAlias alias = (TypeAlias)module.getTypeDescriptor(typeAlias.name);
TypeTranslationContext context = createTypeTranslationContext();
value.addProperty(PrivateProperty.INSTANCE);
}
else if(annotation.id.text.equals("@deprecated")) {
- // TODO
+ String description = "";
+ if(annotation.parameters.length > 0) {
+ if(annotation.parameters.length > 1)
+ errorLog.log(annotation.location, "Invalid number of parameters, expected one string.");
+ else {
+ String temp = AnnotationUtils.extractString(annotation.parameters[0]);
+ if(temp == null)
+ errorLog.log(annotation.location, "Invalid parameter, expected one string.");
+ else
+ description = temp;
+ }
+ }
+ value.addProperty(new DeprecatedProperty(description));
}
else
errorLog.log(annotation.location, "Unknown annotation.");