コード例 #1
0
        public void OptionPatternStructureWithUnwiredSelector_ValidateVariableUsages_RequiredTerminalUnconnectedError()
        {
            DfirRoot function = DfirRoot.Create();
            OptionPatternStructure patternStructure = CreateOptionPatternStructure(function.BlockDiagram);

            RunSemanticAnalysisUpToValidation(function);

            OptionPatternStructureSelector selector = patternStructure.Selector;

            AssertTerminalHasRequiredTerminalUnconnectedMessage(selector.InputTerminals[0]);
        }
コード例 #2
0
        bool IDfirNodeVisitor <bool> .VisitOptionPatternStructureSelector(OptionPatternStructureSelector optionPatternStructureSelector)
        {
            Terminal selectorInput      = optionPatternStructureSelector.InputTerminals[0],
                     selectorSomeOutput = optionPatternStructureSelector.OutputTerminals[0];

            TypeVariableReference innerTypeVariable  = _typeVariableSet.CreateReferenceToNewTypeVariable(),
                                  outerTypeReference = _typeVariableSet.CreateReferenceToOptionType(innerTypeVariable);

            _nodeFacade[selectorInput]      = new SimpleTerminalFacade(selectorInput, outerTypeReference);
            _nodeFacade[selectorSomeOutput] = new SimpleTerminalFacade(selectorSomeOutput, innerTypeVariable);
            return(true);
        }
コード例 #3
0
 public bool VisitOptionPatternStructureSelector(OptionPatternStructureSelector optionPatternStructureSelector)
 {
     ValidateRequiredInputTerminal(optionPatternStructureSelector.InputTerminals[0]);
     return(true);
 }
コード例 #4
0
 bool IDfirNodeVisitor <bool> .VisitOptionPatternStructureSelector(OptionPatternStructureSelector optionPatternStructureSelector)
 {
     MarkTrueVariableOfTerminalConsumed(optionPatternStructureSelector.InputTerminals[0]);
     MarkFacadeVariableOfTerminalLive(optionPatternStructureSelector.OutputTerminals[0]);
     return(true);
 }
コード例 #5
0
 bool IDfirNodeVisitor <bool> .VisitOptionPatternStructureSelector(OptionPatternStructureSelector optionPatternStructureSelector)
 {
     optionPatternStructureSelector.UnifyNodeInputTerminalTypes(_typeUnificationResults);
     return(true);
 }