Browse Source

removed ITypeSystemInferrer NullImpl and added explicit binding to
generator module

Andreas Muelder 9 years ago
parent
commit
4ea267f191

+ 1 - 15
plugins/org.yakindu.base.types/src/org/yakindu/base/types/inferrer/ITypeSystemInferrer.java

@@ -17,13 +17,10 @@ import org.eclipse.emf.ecore.EObject;
 import org.yakindu.base.types.Type;
 import org.yakindu.base.types.validation.IValidationIssueAcceptor;
 
-import com.google.inject.ImplementedBy;
-
 /**
  * @author andreas muelder - Initial contribution and API
  * 
  */
-@ImplementedBy(ITypeSystemInferrer.NullTypeInferrer.class)
 public interface ITypeSystemInferrer {
 
 	public static final String EXCEPTION_CODE = "RuntimeExcpetion";
@@ -82,18 +79,7 @@ public interface ITypeSystemInferrer {
 	}
 
 	public InferenceResult infer(EObject object, IValidationIssueAcceptor acceptor);
-	
-	public InferenceResult infer(EObject object);
 
-	public static class NullTypeInferrer implements ITypeSystemInferrer {
-		@Override
-		public InferenceResult infer(EObject object, IValidationIssueAcceptor acceptor) {
-			return null;
-		}
-		@Override
-		public InferenceResult infer(EObject object) {
-			return null;
-		}
-	}
+	public InferenceResult infer(EObject object);
 
 }

+ 6 - 0
plugins/org.yakindu.sct.domain.generic.generator/src/org/yakindu/sct/domain/generic/generator/GenericGeneratorModule.java

@@ -14,8 +14,10 @@ package org.yakindu.sct.domain.generic.generator;
 import org.eclipse.xtext.naming.IQualifiedNameProvider;
 import org.eclipse.xtext.service.AbstractGenericModule;
 import org.eclipse.xtext.validation.IResourceValidator;
+import org.yakindu.base.types.inferrer.ITypeSystemInferrer;
 import org.yakindu.base.types.typesystem.GenericTypeSystem;
 import org.yakindu.base.types.typesystem.ITypeSystem;
+import org.yakindu.sct.model.stext.inferrer.STextTypeInferrer;
 import org.yakindu.sct.model.stext.naming.StextNameProvider;
 import org.yakindu.sct.model.stext.resource.SCTResourceValidatorImpl;
 
@@ -44,4 +46,8 @@ public class GenericGeneratorModule extends AbstractGenericModule {
 		return SCTResourceValidatorImpl.class;
 	}
 
+	public Class<? extends ITypeSystemInferrer> bindITypeSystemInferrer() {
+		return STextTypeInferrer.class;
+	}
+
 }

+ 1 - 1
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/ExpressionCode.xtend

@@ -138,7 +138,7 @@ class ExpressionCode {
 	def dispatch CharSequence code(LogicalNotExpression it) '''! «operand.code»'''
 
 	def dispatch CharSequence code(LogicalRelationExpression it) '''
-	«IF isSame(leftOperand.infer(null).type, getType(GenericTypeSystem.STRING))»
+	«IF isSame(leftOperand.infer.type, getType(GenericTypeSystem.STRING))»
 		(strcmp(«leftOperand.code», «rightOperand.code») «operator.literal» 0)
 	«ELSE»«leftOperand.code» «operator.literal» «rightOperand.code»«ENDIF»'''