X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fcompilation%2FElaboration.java;h=0971641e8b4470b2938f2cc8ac9660dc58a7d316;hp=f5834aef1ac949b92a74a5c83c3cd2265a0f0fd5;hb=7045f0f516c243563976207abcec13a68891ff1d;hpb=ca40974f87c9db00eb77aaf1acc1e9937b37261b diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/Elaboration.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/Elaboration.java index f5834aef1..0971641e8 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/Elaboration.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/Elaboration.java @@ -31,9 +31,11 @@ import org.simantics.scl.compiler.elaboration.expressions.ELiteral; 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; @@ -310,7 +312,7 @@ public class Elaboration { } }.findComponents(); - if(errorLog.isEmpty()) { + if(errorLog.hasNoErrors()) { for(DTypeAst typeAlias : orderedTypeAliases) { TypeAlias alias = (TypeAlias)module.getTypeDescriptor(typeAlias.name); TypeTranslationContext context = createTypeTranslationContext(); @@ -1212,7 +1214,19 @@ public class Elaboration { 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.");