(self, data)
| 1879 | self.reportError(tok, 5, 1) |
| 1880 | |
| 1881 | def misra_5_2(self, data): |
| 1882 | scopeVars = {} |
| 1883 | num_sign_chars = self.get_num_significant_naming_chars(data) |
| 1884 | for var in data.variables: |
| 1885 | if var.nameToken is None: |
| 1886 | continue |
| 1887 | if len(var.nameToken.str) <= num_sign_chars: |
| 1888 | continue |
| 1889 | if var.nameToken.scope not in scopeVars: |
| 1890 | scopeVars.setdefault(var.nameToken.scope, {})["varlist"] = [] |
| 1891 | scopeVars.setdefault(var.nameToken.scope, {})["scopelist"] = [] |
| 1892 | scopeVars[var.nameToken.scope]["varlist"].append(var) |
| 1893 | for scope in data.scopes: |
| 1894 | if scope.nestedIn and scope.className: |
| 1895 | if scope.nestedIn not in scopeVars: |
| 1896 | scopeVars.setdefault(scope.nestedIn, {})["varlist"] = [] |
| 1897 | scopeVars.setdefault(scope.nestedIn, {})["scopelist"] = [] |
| 1898 | scopeVars[scope.nestedIn]["scopelist"].append(scope) |
| 1899 | for scope in scopeVars: |
| 1900 | if len(scopeVars[scope]["varlist"]) <= 1: |
| 1901 | continue |
| 1902 | for i, variable1 in enumerate(scopeVars[scope]["varlist"]): |
| 1903 | for variable2 in scopeVars[scope]["varlist"][i + 1:]: |
| 1904 | if variable1.isArgument and variable2.isArgument: |
| 1905 | continue |
| 1906 | if hasExternalLinkage(variable1) or hasExternalLinkage(variable2): |
| 1907 | continue |
| 1908 | if (variable1.nameToken.str[:num_sign_chars] == variable2.nameToken.str[:num_sign_chars] and |
| 1909 | variable1 is not variable2): |
| 1910 | if int(variable1.nameToken.linenr) > int(variable2.nameToken.linenr): |
| 1911 | self.reportError(variable1.nameToken, 5, 2) |
| 1912 | else: |
| 1913 | self.reportError(variable2.nameToken, 5, 2) |
| 1914 | for innerscope in scopeVars[scope]["scopelist"]: |
| 1915 | if variable1.nameToken.str[:num_sign_chars] == innerscope.className[:num_sign_chars]: |
| 1916 | if int(variable1.nameToken.linenr) > int(innerscope.bodyStart.linenr): |
| 1917 | self.reportError(variable1.nameToken, 5, 2) |
| 1918 | else: |
| 1919 | self.reportError(innerscope.bodyStart, 5, 2) |
| 1920 | if len(scopeVars[scope]["scopelist"]) <= 1: |
| 1921 | continue |
| 1922 | for i, scopename1 in enumerate(scopeVars[scope]["scopelist"]): |
| 1923 | for scopename2 in scopeVars[scope]["scopelist"][i + 1:]: |
| 1924 | if scopename1.className[:num_sign_chars] == scopename2.className[:num_sign_chars]: |
| 1925 | if int(scopename1.bodyStart.linenr) > int(scopename2.bodyStart.linenr): |
| 1926 | self.reportError(scopename1.bodyStart, 5, 2) |
| 1927 | else: |
| 1928 | self.reportError(scopename2.bodyStart, 5, 2) |
| 1929 | |
| 1930 | def misra_5_4(self, data): |
| 1931 | num_sign_chars = self.get_num_significant_naming_chars(data) |
nothing calls this directly
no test coverage detected