Example #1
0
        public override void VisitResourceDeclarationSyntax(ResourceDeclarationSyntax syntax)
        {
            var assignedType = typeManager.GetTypeInfo(syntax);

            var currentDiagnostics = TypeValidator.GetExpressionAssignmentDiagnostics(typeManager, syntax.Body, assignedType);

            diagnostics.AddRange(currentDiagnostics);
        }
Example #2
0
        public override void VisitParameterDeclarationSyntax(ParameterDeclarationSyntax syntax)
        {
            diagnostics.AddRange(this.ValidateIdentifierAccess(syntax));

            var assignedType = typeManager.GetTypeInfo(syntax);

            switch (syntax.Modifier)
            {
            case ParameterDefaultValueSyntax defaultValueSyntax:
                diagnostics.AddRange(ValidateDefaultValue(defaultValueSyntax, assignedType));
                break;

            case ObjectSyntax modifierSyntax:
                if (assignedType.TypeKind != TypeKind.Error && SyntaxHelper.TryGetPrimitiveType(syntax) is PrimitiveType primitiveType)
                {
                    var modifierType = LanguageConstants.CreateParameterModifierType(primitiveType, assignedType);
                    diagnostics.AddRange(TypeValidator.GetExpressionAssignmentDiagnostics(typeManager, modifierSyntax, modifierType));
                }
                break;
            }
        }