Page MenuHomePhabricator

[Regression] CSS import with variable name no longer works
Closed, ResolvedPublic

Description

It seems that after the ImportVisitor refactor (T353133), the output difference in the urls.less test case (T353147) is now a crash instead of a minor difference.

Minimal test case:

.add_an_import(@file_to_import) {
	@import "@{file_to_import}";
}

.add_an_import("file.css");

Expected

@import "file.css";

Actual:

PHP Fatal error:  Uncaught Less_Exception_Compiler: variable @file_to_import is undefined in file /Users/krinkle/Development/less.php/input.less in input.less on line 3, column 10
1| 
2| .add_an_import(@file_to_import) {
3| 	@import "@{file_to_import}";
4| }
5| 
6| .add_an_import("file.css"); in /Users/krinkle/Development/less.php/lib/Less/Tree/Variable.php:50
Stack trace:
#0 /Users/krinkle/Development/less.php/lib/Less/Tree/Quoted.php(58): Less_Tree_Variable->compile(Object(Less_Environment))
#1 /Users/krinkle/Development/less.php/lib/Less/Tree/Import.php(134): Less_Tree_Quoted->compile(Object(Less_Environment))
#2 /Users/krinkle/Development/less.php/lib/Less/ImportVisitor.php(52): Less_Tree_Import->compileForImport(Object(Less_Environment))
#3 /Users/krinkle/Development/less.php/lib/Less/ImportVisitor.php(214): Less_ImportVisitor->processImportNode(Object(Less_Tree_Import), Object(Less_Environment), Object(Less_Tree_Mixin_Definition))
#4 /Users/krinkle/Development/less.php/lib/Less/ImportVisitor.php(25): Less_ImportVisitor->tryRun()
#5 /Users/krinkle/Development/less.php/lib/Less/Parser.php(217): Less_ImportVisitor->run(Object(Less_Tree_Ruleset))
#6 /Users/krinkle/Development/less.php/bin/lessc(189): Less_Parser->getCss()
#7 {main}
  thrown in /Users/krinkle/Development/less.php/lib/Less/Tree/Variable.php on line 50

Fatal error: Uncaught Less_Exception_Compiler: variable @file_to_import is undefined in file /Users/krinkle/Development/less.php/input.less in input.less on line 3, column 10
1| 
2| .add_an_import(@file_to_import) {
3| 	@import "@{file_to_import}";
4| }
5| 
6| .add_an_import("file.css"); in /Users/krinkle/Development/less.php/lib/Less/Tree/Variable.php on line 50

Details

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
Krinkle triaged this task as High priority.Mar 30 2024, 1:14 AM
Krinkle moved this task from Inbox, needs triage to In progress on the MediaWiki-Platform-Team board.

Change #1016400 had a related patch set uploaded (by Hokwelum; author: Hokwelum):

[mediawiki/libs/less.php@master] Fix Css import with variable name

https://gerrit.wikimedia.org/r/1016400

Change #1016400 merged by jenkins-bot:

[mediawiki/libs/less.php@master] Fix crash on CSS @import with variable name

https://gerrit.wikimedia.org/r/1016400