public void Should_infer_type() { var empty = Array.Empty <string>(); var text = "\"test\""; var value = VisualBasicDesignerHelper.CreatePrecompiledVisualBasicValue(null, text, empty, empty, null, out _, out _, out _); ((VisualBasicValue <string>)value).ExpressionText.ShouldBe(text); value = VisualBasicDesignerHelper.CreatePrecompiledVisualBasicValue(null, text, empty, empty, null, out _, out _, out _); ((VisualBasicValue <string>)value).ExpressionText.ShouldBe(text); }
public override bool TryInferReturnType(ActivityWithResult expression, EditingContext context, out Type returnType) { bool succeeded = false; Fx.Assert(expression.GetType().GetGenericTypeDefinition() == typeof(VisualBasicValue <>) || expression.GetType().GetGenericTypeDefinition() == typeof(VisualBasicReference <>), "VisualBasicExpressionMorphHelper should only apply to VB expression."); SourceExpressionException compileError; VisualBasicSettings settings; if (ExpressionHelper.IsGenericLocationExpressionType(expression)) { VisualBasicDesignerHelper.RecompileVisualBasicReference( expression, out returnType, out compileError, out settings); } else { VisualBasicDesignerHelper.RecompileVisualBasicValue( expression, out returnType, out compileError, out settings); } if (compileError == null) { succeeded = true; if (settings != null) { //merge with import designer foreach (VisualBasicImportReference reference in settings.ImportReferences) { ImportDesigner.AddImport(reference.Import, context); } } } return(succeeded); }
private static void VbCompile(string text, Type resultType, string[] namespaces, string[] assemblies) { var value = VisualBasicDesignerHelper.CreatePrecompiledVisualBasicValue(null, text, namespaces, assemblies, null, out var returnType, out var compileError, out _); Check(text, resultType, value, returnType, compileError); }