public static object GetArgumentValue(this AttributeArgumentSyntax arg, SemanticModel semanticModel)
        {
            var argExpr = arg.ChildNodes().First();

            return
                ((argExpr as MemberAccessExpressionSyntax)?.GetMemberValue(semanticModel) ??
                 throw new NotImplementedException());
        }
        public static Domain.Type GetArgumentType(this AttributeArgumentSyntax arg, SemanticModel semanticModel)
        {
            var argExpr = arg.ChildNodes().First();

            return
                ((argExpr as MemberAccessExpressionSyntax)?.GetMemberType(semanticModel) ??
                 (argExpr as LiteralExpressionSyntax)?.GetLiteralType(semanticModel) ??
                 throw new NotImplementedException());
        }