1 //----------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //----------------------------------------------------------------
5 namespace System.Activities.Presentation
8 using System.Activities.ExpressionParser;
9 using System.Activities.Presentation.Expressions;
10 using System.Activities.Presentation.View;
12 using Microsoft.VisualBasic.Activities;
14 class VisualBasicExpressionMorphHelper : ExpressionMorphHelper
16 public override bool TryInferReturnType(ActivityWithResult expression, EditingContext context, out Type returnType)
18 bool succeeded = false;
19 Fx.Assert(expression.GetType().GetGenericTypeDefinition() == typeof(VisualBasicValue<>) ||
20 expression.GetType().GetGenericTypeDefinition() == typeof(VisualBasicReference<>), "VisualBasicExpressionMorphHelper should only apply to VB expression.");
22 SourceExpressionException compileError;
23 VisualBasicSettings settings;
24 if (ExpressionHelper.IsGenericLocationExpressionType(expression))
26 VisualBasicDesignerHelper.RecompileVisualBasicReference(
34 VisualBasicDesignerHelper.RecompileVisualBasicValue(
40 if (compileError == null)
45 //merge with import designer
46 foreach (VisualBasicImportReference reference in settings.ImportReferences)
48 ImportDesigner.AddImport(reference.Import, context);
55 public override bool TryMorphExpression(ActivityWithResult expression, bool isLocationExpression, Type newType,
56 EditingContext context, out ActivityWithResult newExpression)
58 string expressionText = ExpressionHelper.GetExpressionString(expression);
59 newExpression = VisualBasicEditor.CreateExpressionFromString(newType, expressionText, isLocationExpression, new ParserContext());