4 dépôts
Static analysis to identify variables used before they are defined based on program flow.
Distinct from Linter Global Variable Definitions: Distinct from linter global definitions or collection usage; focuses on definition-before-use flow analysis
Explore 4 awesome GitHub repositories matching software engineering & architecture · Variable Usage Analysis. Refine with filters or upvote what's useful.
mypy is a static type checker for Python that analyzes source code to detect type errors and inconsistencies without executing the program. It functions as a static analysis tool and type inference engine, providing a gradual typing system that allows type hints to be added to a codebase incrementally while maintaining compatibility with dynamic typing. The project distinguishes itself through a combination of performance and precision features. It utilizes a daemon-based incremental checking system and multi-process parallel analysis to manage large codebases, supported by binary cache persi
Identifies variables used before definition based on program control flow to prevent runtime errors.
This project is an ESLint plugin and static analysis tool designed to enforce best practices, prevent bugs, and maintain code quality in React projects. It functions as a specialized JSX linter that analyzes the syntax and structure of components to detect anti-patterns and API misuse. The plugin distinguishes itself by providing deep analysis of React-specific patterns, such as detecting state race conditions, preventing nested component definitions, and identifying unstable references that cause unnecessary re-renders. It also includes security hardening rules to identify vulnerabilities li
Analyzes program flow to identify components or variables used within JSX before they are defined.
cppfront est un frontend d'extension de langage C++ et un traducteur source-à-source. Il fonctionne comme un transformateur de syntaxe qui convertit les extensions de langage expérimentales en code C++ conforme aux normes, permettant le prototypage de nouvelles fonctionnalités linguistiques au sein des systèmes de build existants. Le projet fournit une couche de traduction qui ajoute la prise en charge de la correspondance de motifs (pattern matching), des contrats et de l'interpolation de chaînes. Il inclut un outil de métaprogrammation pour la réflexion à la compilation et la génération de code automatisée utilisant des métafonctions spécialisées. Le système automatise plusieurs tâches de développement, notamment la résolution de l'ordre des dépendances via des déclarations anticipées automatiques et la gestion des modes de passage des paramètres. Il applique également une analyse statique pour insérer une vérification automatique des limites et optimiser la gestion des ressources en appliquant la sémantique de mouvement (move semantics) au dernier point d'utilisation d'une variable. L'outil inclut un mécanisme de vérification pour garantir que le code source standard reste inchangé pendant le processus de traduction afin d'éviter les régressions de syntaxe.
Automatically inserts bounds checking and move semantics based on static analysis of container sizes and variable lifetimes.
Amber est un transpiler qui traduit du code source de haut niveau en scripts shell exécutables pour Bash, Zsh et Ksh. Il fournit un environnement typé pour la génération de scripts shell, permettant une validation statique des types et la création de scripts exécutables autonomes. Le projet se distingue par un processus de compilation qui inclut une optimisation des imports par tree-shaking pour réduire la taille de sortie et un habillage de script basé sur des modèles pour les en-têtes et pieds de page personnalisés. Il utilise un système de résolution de dépendances basé sur des modules avec des contrôles de visibilité pour gérer la réutilisation du code sur plusieurs fichiers. La surface du langage couvre un large éventail de capacités d'automatisation, incluant une gestion complète du système de fichiers, le contrôle de processus et la communication réseau via HTTP. Il fournit des utilitaires intégrés pour le traitement de texte, la manipulation de données, la gestion de date et heure, et l'introspection système. L'ensemble d'outils inclut un test runner intégré pour la vérification de la logique et un utilitaire pour générer automatiquement la documentation Markdown du projet à partir des commentaires du code source.
Performs static analysis of control flow to identify unused declarations and constants.