Index: vendor/michelf/php-markdown/Michelf/Markdown.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/vendor/michelf/php-markdown/Michelf/Markdown.php b/vendor/michelf/php-markdown/Michelf/Markdown.php --- a/vendor/michelf/php-markdown/Michelf/Markdown.php +++ b/vendor/michelf/php-markdown/Michelf/Markdown.php (date 1641756251765) @@ -952,7 +952,7 @@ return $matches[0]; } - $level = $matches[2]{0} == '=' ? 1 : 2; + $level = substr($matches[2], 0, 1) == '=' ? 1 : 2; // ID attribute generation $idAtt = $this->_generateIdFromHeaderValue($matches[1]); @@ -1358,7 +1358,7 @@ } else { // Other closing marker: close one em or strong and // change current token state to match the other - $token_stack[0] = str_repeat($token{0}, 3-$token_len); + $token_stack[0] = str_repeat(substr($token, 0, 1), 3-$token_len); $tag = $token_len == 2 ? "strong" : "em"; $span = $text_stack[0]; $span = $this->runSpanGamut($span); @@ -1383,7 +1383,7 @@ } else { // Reached opening three-char emphasis marker. Push on token // stack; will be handled by the special condition above. - $em = $token{0}; + $em = substr($token, 0, 1); $strong = "$em$em"; array_unshift($token_stack, $token); array_unshift($text_stack, ''); @@ -1796,9 +1796,9 @@ * @return string */ protected function handleSpanToken($token, &$str) { - switch ($token{0}) { + switch (substr($token, 0, 1)) { case "\\": - return $this->hashPart("&#". ord($token{1}). ";"); + return $this->hashPart("&#". ord(substr($token, 1, 1)). ";"); case "`": // Search for end marker in remaining text. if (preg_match('/^(.*?[^`])'.preg_quote($token).'(?!`)(.*)$/sm', Index: vendor/michelf/php-markdown/Michelf/MarkdownExtra.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php b/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php --- a/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php +++ b/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php (date 1641756087884) @@ -212,9 +212,9 @@ $attributes = array(); $id = false; foreach ($elements as $element) { - if ($element{0} == '.') { + if (substr($element, 0,1) == '.') { $classes[] = substr($element, 1); - } else if ($element{0} == '#') { + } else if (substr($element, 0,1) == '#') { if ($id === false) $id = substr($element, 1); } else if (strpos($element, '=') > 0) { $parts = explode('=', $element, 2); @@ -508,14 +508,14 @@ } } // Check for: Indented code block. - else if ($tag{0} == "\n" || $tag{0} == " ") { + else if (substr($tag, 0, 1) == "\n" || substr($tag, 0, 1) == " ") { // Indented code block: pass it unchanged, will be handled // later. $parsed .= $tag; } // Check for: Code span marker // Note: need to check this after backtick fenced code blocks - else if ($tag{0} == "`") { + else if (substr($tag, 0, 1) == "`") { // Find corresponding end marker. $tag_re = preg_quote($tag); if (preg_match('{^(?>.+?|\n(?!\n))*?(?clean_tags_re . ')\b}', $tag) || - $tag{1} == '!' || $tag{1} == '?') + substr($tag, 1, 1) == '!' || substr($tag, 1, 1) == '?') { // Need to parse tag and following text using the HTML parser. // (don't check for markdown attribute) @@ -564,8 +564,8 @@ preg_match('{^) // Comments and Processing Instructions. if (preg_match('{^auto_close_tags_re . ')\b}', $tag) || - $tag{1} == '!' || $tag{1} == '?') + substr($tag, 1, 1) == '!' || substr($tag, 1, 1) == '?') { // Just add the tag to the block as if it was text. $block_text .= $tag; @@ -683,8 +683,8 @@ // Increase/decrease nested tag count. Only do so if // the tag's name match base tag's. if (preg_match('{^header_id_func) ? call_user_func($this->header_id_func, $matches[1]) : null; @@ -1466,7 +1466,7 @@ $classes = array(); if ($classname != "") { - if ($classname{0} == '.') + if (substr($classname, 0, 1) == '.') $classname = substr($classname, 1); $classes[] = $this->code_class_prefix . $classname; } Index: vendor/twig/twig/src/Node/Node.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/vendor/twig/twig/src/Node/Node.php b/vendor/twig/twig/src/Node/Node.php --- a/vendor/twig/twig/src/Node/Node.php +++ b/vendor/twig/twig/src/Node/Node.php (date 1641756438442) @@ -43,7 +43,7 @@ { foreach ($nodes as $name => $node) { if (!$node instanceof self) { - throw new \InvalidArgumentException(sprintf('Using "%s" for the value of node "%s" of "%s" is not supported. You must pass a \Twig\Node\Node instance.', \is_object($node) ? \get_class($node) : null === $node ? 'null' : \gettype($node), $name, \get_class($this))); + throw new \InvalidArgumentException(sprintf('Using "%s" for the value of node "%s" of "%s" is not supported. You must pass a \Twig\Node\Node instance.', (\is_object($node) ? \get_class($node) : (null === $node ? 'null' : \gettype($node))), $name, \get_class($this))); } } $this->nodes = $nodes; Index: vendor/twig/twig/src/Extension/CoreExtension.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/vendor/twig/twig/src/Extension/CoreExtension.php b/vendor/twig/twig/src/Extension/CoreExtension.php --- a/vendor/twig/twig/src/Extension/CoreExtension.php +++ b/vendor/twig/twig/src/Extension/CoreExtension.php (date 1641756556403) @@ -1589,7 +1589,7 @@ // object property if (/* Template::METHOD_CALL */ 'method' !== $type) { - if (isset($object->$item) || \array_key_exists((string) $item, $object)) { + if (isset($object->$item) || \is_array($object) && \array_key_exists((string) $item, $object)) { if ($isDefinedTest) { return true; }