protected override void HandleStatement(HandleContext context) { AssignmentStatement assignment = (AssignmentStatement)context.Statement; if (!CoversAssignment(assignment)) { return; } Method sourceConstructor = ExtractConstructor(assignment.Source); string variableName = IntrospectionUtility.GetVariableName(assignment.Target); bool fragmentTypeInferenceRequired = FirstParameterIsString(sourceConstructor); if (fragmentTypeInferenceRequired) { Fragment fragmentType = FirstOperandsFragmentType(assignment, context); context.StringBuilderFragmentTypeDefined[variableName] = true; context.SymbolTable.MakeSafe(variableName, fragmentType); } else { //context.StringBuilderFragmentTypeDefined[variableName] = false; context.SymbolTable.MakeSafe(variableName, Fragment.CreateUndefined()); } }
public void NamedFragmentAssignableToUndefinedFragment() { FragmentUtility.FragmentTypesAssignable(Fragment.CreateNamed("dummy"), Fragment.CreateUndefined()); }
public void UndefinedFragmentIsUndefined() { Assert.That(Fragment.CreateUndefined().Undefined, Is.True); }
public void UndefinedFragmentIsNotNamed() { Assert.That(Fragment.CreateUndefined() == Fragment.CreateNamed("dummy"), Is.False); }
public void UndefinedFragmentIsNoLiteral() { Assert.That(Fragment.CreateUndefined() == Fragment.CreateLiteral(), Is.False); }
public void UndefinedFragmentBehavesLikeEmptyFragment() { Assert.That(Fragment.CreateUndefined() == Fragment.CreateEmpty(), Is.True); }