less 2.3.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/.idea/inspectionProfiles/Project_Default.xml +1 -0
  2. package/.idea/jsLinters/jscs.xml +4 -0
  3. package/.idea/jsLinters/jshint.xml +58 -4
  4. package/.idea/workspace.xml +427 -892
  5. package/.jscsrc +34 -2
  6. package/.jshintrc +0 -1
  7. package/CHANGELOG.md +7 -0
  8. package/bin/lessc +8 -3
  9. package/bower.json +1 -1
  10. package/dist/less.js +362 -245
  11. package/dist/less.min.js +5 -5
  12. package/lib/less/data/unit-conversions.js +3 -3
  13. package/lib/less/environment/abstract-file-manager.js +4 -4
  14. package/lib/less/functions/color-blending.js +3 -3
  15. package/lib/less/functions/color.js +7 -7
  16. package/lib/less/functions/data-uri.js +3 -2
  17. package/lib/less/functions/string.js +3 -1
  18. package/lib/less/functions/svg.js +6 -3
  19. package/lib/less/functions/types.js +3 -1
  20. package/lib/less/import-manager.js +4 -1
  21. package/lib/less/index.js +1 -1
  22. package/lib/less/parser/parser.js +12 -7
  23. package/lib/less/source-map-output.js +3 -3
  24. package/lib/less/transform-tree.js +1 -1
  25. package/lib/less/tree/condition.js +1 -1
  26. package/lib/less/tree/debug-info.js +6 -2
  27. package/lib/less/tree/dimension.js +1 -1
  28. package/lib/less/tree/directive.js +15 -3
  29. package/lib/less/tree/import.js +1 -1
  30. package/lib/less/tree/media.js +3 -2
  31. package/lib/less/tree/mixin-call.js +3 -4
  32. package/lib/less/tree/mixin-definition.js +4 -3
  33. package/lib/less/tree/quoted.js +1 -1
  34. package/lib/less/tree/rule.js +2 -3
  35. package/lib/less/tree/ruleset.js +223 -149
  36. package/lib/less/tree/selector.js +2 -1
  37. package/lib/less/tree/url.js +1 -1
  38. package/lib/less/tree/value.js +1 -1
  39. package/lib/less/tree/variable.js +1 -1
  40. package/lib/less/visitors/extend-visitor.js +30 -22
  41. package/lib/less/visitors/import-visitor.js +2 -1
  42. package/lib/less/visitors/to-css-visitor.js +5 -4
  43. package/lib/less-browser/utils.js +5 -5
  44. package/lib/less-node/file-manager.js +8 -4
  45. package/lib/less-node/url-file-manager.js +2 -2
  46. package/lib/less-rhino/index.js +2 -2
  47. package/package.json +3 -3
  48. package/test/browser/common.js +3 -3
  49. package/test/browser/jasmine-jsreporter.js +2 -2
  50. package/test/browser/less.js +29 -0
  51. package/test/copy-bom.js +14 -8
  52. package/test/css/selectors.css +9 -0
  53. package/test/index.js +1 -1
  54. package/test/less/selectors.less +18 -3
  55. package/test/less-bom/charsets.less +3 -0
  56. package/test/less-bom/colors.less +98 -0
  57. package/test/less-bom/comments.less +102 -0
  58. package/test/less-bom/comments2.less +20 -0
  59. package/test/less-bom/compression/compression.less +36 -0
  60. package/test/less-bom/css-3.less +154 -0
  61. package/test/less-bom/css-escapes.less +33 -0
  62. package/test/less-bom/css-guards.less +103 -0
  63. package/test/less-bom/css.less +108 -0
  64. package/test/less-bom/debug/import/test.less +25 -0
  65. package/test/less-bom/debug/linenumbers.less +33 -0
  66. package/test/less-bom/detached-rulesets.less +103 -0
  67. package/test/less-bom/empty.less +1 -0
  68. package/test/less-bom/errors/add-mixed-units.less +3 -0
  69. package/test/less-bom/errors/add-mixed-units.txt +4 -0
  70. package/test/less-bom/errors/add-mixed-units2.less +3 -0
  71. package/test/less-bom/errors/add-mixed-units2.txt +4 -0
  72. package/test/less-bom/errors/at-rules-undefined-var.less +4 -0
  73. package/test/less-bom/errors/at-rules-undefined-var.txt +4 -0
  74. package/test/less-bom/errors/bad-variable-declaration1.less +1 -0
  75. package/test/less-bom/errors/bad-variable-declaration1.txt +2 -0
  76. package/test/less-bom/errors/color-func-invalid-color.less +3 -0
  77. package/test/less-bom/errors/color-func-invalid-color.txt +4 -0
  78. package/test/less-bom/errors/color-invalid-hex-code.less +3 -0
  79. package/test/less-bom/errors/color-invalid-hex-code.txt +4 -0
  80. package/test/less-bom/errors/color-invalid-hex-code2.less +3 -0
  81. package/test/less-bom/errors/color-invalid-hex-code2.txt +4 -0
  82. package/test/less-bom/errors/css-guard-default-func.less +4 -0
  83. package/test/less-bom/errors/css-guard-default-func.txt +4 -0
  84. package/test/less-bom/errors/detached-ruleset-1.less +6 -0
  85. package/test/less-bom/errors/detached-ruleset-1.txt +4 -0
  86. package/test/less-bom/errors/detached-ruleset-2.less +6 -0
  87. package/test/less-bom/errors/detached-ruleset-2.txt +4 -0
  88. package/test/less-bom/errors/detached-ruleset-3.less +4 -0
  89. package/test/less-bom/errors/detached-ruleset-3.txt +4 -0
  90. package/test/less-bom/errors/detached-ruleset-4.less +5 -0
  91. package/test/less-bom/errors/detached-ruleset-4.txt +4 -0
  92. package/test/less-bom/errors/detached-ruleset-5.less +4 -0
  93. package/test/less-bom/errors/detached-ruleset-5.txt +3 -0
  94. package/test/less-bom/errors/detached-ruleset-6.less +5 -0
  95. package/test/less-bom/errors/detached-ruleset-6.txt +4 -0
  96. package/test/less-bom/errors/divide-mixed-units.less +3 -0
  97. package/test/less-bom/errors/divide-mixed-units.txt +4 -0
  98. package/test/less-bom/errors/extend-no-selector.less +3 -0
  99. package/test/less-bom/errors/extend-no-selector.txt +3 -0
  100. package/test/less-bom/errors/extend-not-at-end.less +3 -0
  101. package/test/less-bom/errors/extend-not-at-end.txt +3 -0
  102. package/test/less-bom/errors/import-malformed.less +1 -0
  103. package/test/less-bom/errors/import-malformed.txt +3 -0
  104. package/test/less-bom/errors/import-missing.less +6 -0
  105. package/test/less-bom/errors/import-missing.txt +3 -0
  106. package/test/less-bom/errors/import-no-semi.less +1 -0
  107. package/test/less-bom/errors/import-no-semi.txt +2 -0
  108. package/test/less-bom/errors/import-subfolder1.less +1 -0
  109. package/test/less-bom/errors/import-subfolder1.txt +3 -0
  110. package/test/less-bom/errors/import-subfolder2.less +1 -0
  111. package/test/less-bom/errors/import-subfolder2.txt +4 -0
  112. package/test/less-bom/errors/imports/import-subfolder1.less +1 -0
  113. package/test/less-bom/errors/imports/import-subfolder2.less +1 -0
  114. package/test/less-bom/errors/imports/import-test.less +4 -0
  115. package/test/less-bom/errors/imports/subfolder/mixin-not-defined.less +1 -0
  116. package/test/less-bom/errors/imports/subfolder/parse-error-curly-bracket.less +1 -0
  117. package/test/less-bom/errors/javascript-error.less +3 -0
  118. package/test/less-bom/errors/javascript-error.txt +4 -0
  119. package/test/less-bom/errors/javascript-undefined-var.less +3 -0
  120. package/test/less-bom/errors/javascript-undefined-var.txt +4 -0
  121. package/test/less-bom/errors/mixed-mixin-definition-args-1.less +6 -0
  122. package/test/less-bom/errors/mixed-mixin-definition-args-1.txt +4 -0
  123. package/test/less-bom/errors/mixed-mixin-definition-args-2.less +6 -0
  124. package/test/less-bom/errors/mixed-mixin-definition-args-2.txt +4 -0
  125. package/test/less-bom/errors/mixin-not-defined.less +11 -0
  126. package/test/less-bom/errors/mixin-not-defined.txt +3 -0
  127. package/test/less-bom/errors/mixin-not-matched.less +6 -0
  128. package/test/less-bom/errors/mixin-not-matched.txt +3 -0
  129. package/test/less-bom/errors/mixin-not-matched2.less +6 -0
  130. package/test/less-bom/errors/mixin-not-matched2.txt +3 -0
  131. package/test/less-bom/errors/mixin-not-visible-in-scope-1.less +9 -0
  132. package/test/less-bom/errors/mixin-not-visible-in-scope-1.txt +4 -0
  133. package/test/less-bom/errors/mixins-guards-default-func-1.less +9 -0
  134. package/test/less-bom/errors/mixins-guards-default-func-1.txt +4 -0
  135. package/test/less-bom/errors/mixins-guards-default-func-2.less +9 -0
  136. package/test/less-bom/errors/mixins-guards-default-func-2.txt +4 -0
  137. package/test/less-bom/errors/mixins-guards-default-func-3.less +9 -0
  138. package/test/less-bom/errors/mixins-guards-default-func-3.txt +4 -0
  139. package/test/less-bom/errors/multiple-guards-on-css-selectors.less +4 -0
  140. package/test/less-bom/errors/multiple-guards-on-css-selectors.txt +4 -0
  141. package/test/less-bom/errors/multiple-guards-on-css-selectors2.less +4 -0
  142. package/test/less-bom/errors/multiple-guards-on-css-selectors2.txt +4 -0
  143. package/test/less-bom/errors/multiply-mixed-units.less +7 -0
  144. package/test/less-bom/errors/multiply-mixed-units.txt +4 -0
  145. package/test/less-bom/errors/parens-error-1.less +3 -0
  146. package/test/less-bom/errors/parens-error-1.txt +4 -0
  147. package/test/less-bom/errors/parens-error-2.less +3 -0
  148. package/test/less-bom/errors/parens-error-2.txt +4 -0
  149. package/test/less-bom/errors/parens-error-3.less +3 -0
  150. package/test/less-bom/errors/parens-error-3.txt +4 -0
  151. package/test/less-bom/errors/parse-error-curly-bracket.less +4 -0
  152. package/test/less-bom/errors/parse-error-curly-bracket.txt +4 -0
  153. package/test/less-bom/errors/parse-error-extra-parens.less +5 -0
  154. package/test/less-bom/errors/parse-error-extra-parens.txt +3 -0
  155. package/test/less-bom/errors/parse-error-missing-bracket.less +2 -0
  156. package/test/less-bom/errors/parse-error-missing-bracket.txt +3 -0
  157. package/test/less-bom/errors/parse-error-missing-parens.less +5 -0
  158. package/test/less-bom/errors/parse-error-missing-parens.txt +3 -0
  159. package/test/less-bom/errors/parse-error-with-import.less +13 -0
  160. package/test/less-bom/errors/parse-error-with-import.txt +4 -0
  161. package/test/less-bom/errors/percentage-missing-space.less +3 -0
  162. package/test/less-bom/errors/percentage-missing-space.txt +4 -0
  163. package/test/less-bom/errors/property-asterisk-only-name.less +3 -0
  164. package/test/less-bom/errors/property-asterisk-only-name.txt +4 -0
  165. package/test/less-bom/errors/property-ie5-hack.less +3 -0
  166. package/test/less-bom/errors/property-ie5-hack.txt +3 -0
  167. package/test/less-bom/errors/property-in-root.less +4 -0
  168. package/test/less-bom/errors/property-in-root.txt +4 -0
  169. package/test/less-bom/errors/property-in-root2.less +1 -0
  170. package/test/less-bom/errors/property-in-root2.txt +4 -0
  171. package/test/less-bom/errors/property-in-root3.less +4 -0
  172. package/test/less-bom/errors/property-in-root3.txt +3 -0
  173. package/test/less-bom/errors/property-interp-not-defined.less +1 -0
  174. package/test/less-bom/errors/property-interp-not-defined.txt +2 -0
  175. package/test/less-bom/errors/recursive-variable.less +1 -0
  176. package/test/less-bom/errors/recursive-variable.txt +2 -0
  177. package/test/less-bom/errors/single-character.less +1 -0
  178. package/test/less-bom/errors/single-character.txt +2 -0
  179. package/test/less-bom/errors/svg-gradient1.less +3 -0
  180. package/test/less-bom/errors/svg-gradient1.txt +4 -0
  181. package/test/less-bom/errors/svg-gradient2.less +3 -0
  182. package/test/less-bom/errors/svg-gradient2.txt +4 -0
  183. package/test/less-bom/errors/svg-gradient3.less +3 -0
  184. package/test/less-bom/errors/svg-gradient3.txt +4 -0
  185. package/test/less-bom/errors/unit-function.less +3 -0
  186. package/test/less-bom/errors/unit-function.txt +4 -0
  187. package/test/less-bom/extend-chaining.less +91 -0
  188. package/test/less-bom/extend-clearfix.less +19 -0
  189. package/test/less-bom/extend-exact.less +46 -0
  190. package/test/less-bom/extend-media.less +24 -0
  191. package/test/less-bom/extend-nest.less +65 -0
  192. package/test/less-bom/extend-selector.less +99 -0
  193. package/test/less-bom/extend.less +81 -0
  194. package/test/less-bom/extract-and-length.less +133 -0
  195. package/test/less-bom/functions.less +201 -0
  196. package/test/less-bom/globalVars/extended.json +5 -0
  197. package/test/less-bom/globalVars/extended.less +10 -0
  198. package/test/less-bom/globalVars/simple.json +3 -0
  199. package/test/less-bom/globalVars/simple.less +3 -0
  200. package/test/less-bom/ie-filters.less +15 -0
  201. package/test/less-bom/import/deeper/deeper-2/url-import-2.less +3 -0
  202. package/test/less-bom/import/deeper/deeper-2/url-import.less +1 -0
  203. package/test/less-bom/import/deeper/import-once-test-a.less +1 -0
  204. package/test/less-bom/import/deeper/url-import.less +1 -0
  205. package/test/less-bom/import/import-and-relative-paths-test.less +17 -0
  206. package/test/less-bom/import/import-charset-test.less +1 -0
  207. package/test/less-bom/import/import-interpolation.less +2 -0
  208. package/test/less-bom/import/import-interpolation2.less +5 -0
  209. package/test/less-bom/import/import-once-test-c.less +6 -0
  210. package/test/less-bom/import/import-reference.less +89 -0
  211. package/test/less-bom/import/import-test-a.less +4 -0
  212. package/test/less-bom/import/import-test-b.less +8 -0
  213. package/test/less-bom/import/import-test-c.less +6 -0
  214. package/test/less-bom/import/import-test-d.css +1 -0
  215. package/test/less-bom/import/import-test-e.less +2 -0
  216. package/test/less-bom/import/import-test-f.less +5 -0
  217. package/test/less-bom/import/imports/font.less +8 -0
  218. package/test/less-bom/import/imports/logo.less +5 -0
  219. package/test/less-bom/import/interpolation-vars.less +6 -0
  220. package/test/less-bom/import/invalid-css.less +1 -0
  221. package/test/less-bom/import/urls.less +1 -0
  222. package/test/less-bom/import-inline.less +3 -0
  223. package/test/less-bom/import-interpolation.less +8 -0
  224. package/test/less-bom/import-once.less +6 -0
  225. package/test/less-bom/import-reference.less +23 -0
  226. package/test/less-bom/import.less +30 -0
  227. package/test/less-bom/include-path/include-path.less +6 -0
  228. package/test/less-bom/javascript.less +38 -0
  229. package/test/less-bom/lazy-eval.less +6 -0
  230. package/test/less-bom/legacy/legacy.less +7 -0
  231. package/test/less-bom/media.less +234 -0
  232. package/test/less-bom/merge.less +78 -0
  233. package/test/less-bom/mixins-args.less +215 -0
  234. package/test/less-bom/mixins-closure.less +26 -0
  235. package/test/less-bom/mixins-guards-default-func.less +195 -0
  236. package/test/less-bom/mixins-guards.less +271 -0
  237. package/test/less-bom/mixins-important.less +37 -0
  238. package/test/less-bom/mixins-interpolated.less +75 -0
  239. package/test/less-bom/mixins-named-args.less +36 -0
  240. package/test/less-bom/mixins-nested.less +22 -0
  241. package/test/less-bom/mixins-pattern.less +102 -0
  242. package/test/less-bom/mixins.less +145 -0
  243. package/test/less-bom/modifyVars/extended.json +5 -0
  244. package/test/less-bom/modifyVars/extended.less +11 -0
  245. package/test/less-bom/nested-gradient-with-svg-gradient/mixin-consumer.less +5 -0
  246. package/test/less-bom/nested-gradient-with-svg-gradient/svg-gradient-mixin.less +15 -0
  247. package/test/less-bom/no-js-errors/no-js-errors.less +3 -0
  248. package/test/less-bom/no-js-errors/no-js-errors.txt +4 -0
  249. package/test/less-bom/no-output.less +2 -0
  250. package/test/less-bom/operations.less +62 -0
  251. package/test/less-bom/parens.less +45 -0
  252. package/test/less-bom/property-name-interp.less +56 -0
  253. package/test/less-bom/rulesets.less +30 -0
  254. package/test/less-bom/scope.less +104 -0
  255. package/test/less-bom/selectors.less +174 -0
  256. package/test/less-bom/sourcemaps/basic.json +3 -0
  257. package/test/less-bom/sourcemaps/basic.less +27 -0
  258. package/test/less-bom/sourcemaps/imported.css +7 -0
  259. package/test/less-bom/static-urls/urls.less +33 -0
  260. package/test/less-bom/strict-units/strict-units.less +4 -0
  261. package/test/less-bom/strings.less +73 -0
  262. package/test/less-bom/url-args/urls.less +63 -0
  263. package/test/less-bom/urls.less +94 -0
  264. package/test/less-bom/variables-in-at-rules.less +20 -0
  265. package/test/less-bom/variables.less +119 -0
  266. package/test/less-bom/whitespace.less +44 -0
  267. package/test/less-test.js +2 -2
  268. package/test/modify-vars.js +6 -4
@@ -0,0 +1,3 @@
1
+ .a {
2
+ error: (1px + 3em);
3
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Incompatible units. Change the units or use the unit function. Bad units: 'px' and 'em'. in {path}add-mixed-units.less on line 2, column 3:
2
+ 1 .a {
3
+ 2 error: (1px + 3em);
4
+ 3 }
@@ -0,0 +1,3 @@
1
+ .a {
2
+ error: ((1px * 2px) + (3em * 3px));
3
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Incompatible units. Change the units or use the unit function. Bad units: 'px*px' and 'em*px'. in {path}add-mixed-units2.less on line 2, column 3:
2
+ 1 .a {
3
+ 2 error: ((1px * 2px) + (3em * 3px));
4
+ 3 }
@@ -0,0 +1,4 @@
1
+ 
2
+ @keyframes @name {
3
+ 50% {width: 20px;}
4
+ }
@@ -0,0 +1,4 @@
1
+ NameError: variable @name is undefined in {path}at-rules-undefined-var.less on line 2, column 12:
2
+ 1
3
+ 2 @keyframes @name {
4
+ 3 50% {width: 20px;}
@@ -0,0 +1 @@
1
+ @@demo: "hi";
@@ -0,0 +1,2 @@
1
+ ParseError: Unrecognised input in {path}bad-variable-declaration1.less on line 1, column 1:
2
+ 1 @@demo: "hi";
@@ -0,0 +1,3 @@
1
+ .test {
2
+ color: color("NOT A COLOR");
3
+ }
@@ -0,0 +1,4 @@
1
+ ArgumentError: error evaluating function `color`: argument must be a color keyword or 3/6 digit hex e.g. #FFF in {path}color-func-invalid-color.less on line 2, column 10:
2
+ 1 .test {
3
+ 2 color: color("NOT A COLOR");
4
+ 3 }
@@ -0,0 +1,3 @@
1
+ .a {
2
+ @wrongHEXColorCode: #DCALLB;
3
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Invalid HEX color code in {path}color-invalid-hex-code.less on line 2, column 29:
2
+ 1 .a {
3
+ 2 @wrongHEXColorCode: #DCALLB;
4
+ 3 }
@@ -0,0 +1,3 @@
1
+ .a {
2
+ @wrongHEXColorCode: #fffblack;
3
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Invalid HEX color code in {path}color-invalid-hex-code2.less on line 2, column 29:
2
+ 1 .a {
3
+ 2 @wrongHEXColorCode: #fffblack;
4
+ 3 }
@@ -0,0 +1,4 @@
1
+ 
2
+ selector when (default()) {
3
+ color: red;
4
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: error evaluating function `default`: it is currently only allowed in parametric mixin guards, in {path}css-guard-default-func.less on line 2, column 16:
2
+ 1
3
+ 2 selector when (default()) {
4
+ 3 color: red;
@@ -0,0 +1,6 @@
1
+ @a: {
2
+ b: 1;
3
+ };
4
+ .a {
5
+ a: @a;
6
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Rulesets cannot be evaluated on a property. in {path}detached-ruleset-1.less on line 5, column 3:
2
+ 4 .a {
3
+ 5 a: @a;
4
+ 6 }
@@ -0,0 +1,6 @@
1
+ @a: {
2
+ b: 1;
3
+ };
4
+ .a {
5
+ a: @a();
6
+ }
@@ -0,0 +1,4 @@
1
+ ParseError: Expected ')' in {path}detached-ruleset-2.less on line 5, column 9:
2
+ 4 .a {
3
+ 5 a: @a();
4
+ 6 }
@@ -0,0 +1,4 @@
1
+ @a: {
2
+ b: 1;
3
+ };
4
+ @a();
@@ -0,0 +1,4 @@
1
+ SyntaxError: properties must be inside selector blocks, they cannot be in the root. in {path}detached-ruleset-3.less on line 2, column 3:
2
+ 1 @a: {
3
+ 2 b: 1;
4
+ 3 };
@@ -0,0 +1,5 @@
1
+ .mixin-definition(@a: {
2
+ b: 1;
3
+ }) {
4
+ @a();
5
+ }
@@ -0,0 +1,4 @@
1
+ ParseError: Unrecognised input in {path}detached-ruleset-4.less on line 3, column 4:
2
+ 2 b: 1;
3
+ 3 }) {
4
+ 4 @a();
@@ -0,0 +1,4 @@
1
+ .mixin-definition(@b) {
2
+ @a();
3
+ }
4
+ .mixin-definition({color: red;});
@@ -0,0 +1,3 @@
1
+ SyntaxError: variable @a is undefined in {path}detached-ruleset-5.less on line 4, column 1:
2
+ 3 }
3
+ 4 .mixin-definition({color: red;});
@@ -0,0 +1,5 @@
1
+ .a {
2
+ b: {
3
+ color: red;
4
+ };
5
+ }
@@ -0,0 +1,4 @@
1
+ ParseError: Unrecognised input in {path}detached-ruleset-6.less on line 2, column 6:
2
+ 1 .a {
3
+ 2 b: {
4
+ 3 color: red;
@@ -0,0 +1,3 @@
1
+ .a {
2
+ error: (1px / 3em);
3
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Multiple units in dimension. Correct the units or use the unit function. Bad unit: px/em in {path}divide-mixed-units.less on line 2, column 3:
2
+ 1 .a {
3
+ 2 error: (1px / 3em);
4
+ 3 }
@@ -0,0 +1,3 @@
1
+ :extend(.a all) {
2
+ property: red;
3
+ }
@@ -0,0 +1,3 @@
1
+ SyntaxError: Extend must be used to extend a selector, it cannot be used on its own in {path}extend-no-selector.less on line 1, column 17:
2
+ 1 :extend(.a all) {
3
+ 2 property: red;
@@ -0,0 +1,3 @@
1
+ .a:extend(.b all).c {
2
+ property: red;
3
+ }
@@ -0,0 +1,3 @@
1
+ SyntaxError: Extend can only be used at the end of selector in {path}extend-not-at-end.less on line 1, column 21:
2
+ 1 .a:extend(.b all).c {
3
+ 2 property: red;
@@ -0,0 +1 @@
1
+ @import malformed "this-statement-is-invalid.less";
@@ -0,0 +1,3 @@
1
+ SyntaxError: malformed import statement in {path}import-malformed.less on line 1, column 1:
2
+ 1 @import malformed "this-statement-is-invalid.less";
3
+ 2
@@ -0,0 +1,6 @@
1
+ .a {
2
+ color: green;
3
+ // tests line number for import reference is correct
4
+ }
5
+
6
+ @import "file-does-not-exist.less";
@@ -0,0 +1,3 @@
1
+ FileError: '{pathhref}file-does-not-exist.less' wasn't found{404status}{node}. Tried - {path}file-does-not-exist.less,{pathrel}file-does-not-exist.less,file-does-not-exist.less{/node} in {path}import-missing.less on line 6, column 1:
2
+ 5
3
+ 6 @import "file-does-not-exist.less";
@@ -0,0 +1 @@
1
+ @import "this-statement-is-invalid.less"
@@ -0,0 +1,2 @@
1
+ SyntaxError: missing semi-colon or unrecognised media features on import in {path}import-no-semi.less on line 1, column 1:
2
+ 1 @import "this-statement-is-invalid.less"
@@ -0,0 +1 @@
1
+ @import "imports/import-subfolder1.less";
@@ -0,0 +1,3 @@
1
+ NameError: .mixin-not-defined is undefined in {path}mixin-not-defined.less on line 11, column 1:
2
+ 10
3
+ 11 .mixin-not-defined();
@@ -0,0 +1 @@
1
+ @import "imports/import-subfolder2.less";
@@ -0,0 +1,4 @@
1
+ ParseError: Unrecognised input. Possibly missing opening '{' in {path}parse-error-curly-bracket.less on line 4, column 1:
2
+ 3 }
3
+ 4 }
4
+ 5
@@ -0,0 +1 @@
1
+ @import "subfolder/mixin-not-defined.less";
@@ -0,0 +1 @@
1
+ @import "subfolder/parse-error-curly-bracket.less";
@@ -0,0 +1,4 @@
1
+ .someclass
2
+ {
3
+ font-weight: bold;
4
+ }
@@ -0,0 +1 @@
1
+ @import "../../mixin-not-defined.less";
@@ -0,0 +1 @@
1
+ @import "../../parse-error-curly-bracket.less";
@@ -0,0 +1,3 @@
1
+ .scope {
2
+ var: `this.foo.toJS`;
3
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: JavaScript evaluation error: 'TypeError: Cannot read property 'toJS' of undefined' in {path}javascript-error.less on line 2, column 10:
2
+ 1 .scope {
3
+ 2 var: `this.foo.toJS`;
4
+ 3 }
@@ -0,0 +1,3 @@
1
+ .scope {
2
+ @a: `@{b}`;
3
+ }
@@ -0,0 +1,4 @@
1
+ NameError: variable @b is undefined in {path}javascript-undefined-var.less on line 2, column 9:
2
+ 1 .scope {
3
+ 2 @a: `@{b}`;
4
+ 3 }
@@ -0,0 +1,6 @@
1
+ .mixin(@a : 4, @b : 3, @c: 2) {
2
+ will: fail;
3
+ }
4
+ .mixin-test {
5
+ .mixin(@a: 5; @b: 6, @c: 7);
6
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Cannot mix ; and , as delimiter types in {path}mixed-mixin-definition-args-1.less on line 5, column 30:
2
+ 4 .mixin-test {
3
+ 5 .mixin(@a: 5; @b: 6, @c: 7);
4
+ 6 }
@@ -0,0 +1,6 @@
1
+ .mixin(@a : 4, @b : 3, @c: 2) {
2
+ will: fail;
3
+ }
4
+ .mixin-test {
5
+ .mixin(@a: 5, @b: 6; @c: 7);
6
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Cannot mix ; and , as delimiter types in {path}mixed-mixin-definition-args-2.less on line 5, column 26:
2
+ 4 .mixin-test {
3
+ 5 .mixin(@a: 5, @b: 6; @c: 7);
4
+ 6 }
@@ -0,0 +1,11 @@
1
+ 
2
+ .error-is-further-on() {
3
+ }
4
+
5
+ .pad-here-to-reproduce-error-in() {
6
+ }
7
+
8
+ .the-import-subfolder-test() {
9
+ }
10
+
11
+ .mixin-not-defined();
@@ -0,0 +1,3 @@
1
+ NameError: .mixin-not-defined is undefined in {path}mixin-not-defined.less on line 11, column 1:
2
+ 10
3
+ 11 .mixin-not-defined();
@@ -0,0 +1,6 @@
1
+ @saxofon:trumpete;
2
+
3
+ .mixin(saxofon) {
4
+ }
5
+
6
+ .mixin(@saxofon);
@@ -0,0 +1,3 @@
1
+ RuntimeError: No matching definition was found for `.mixin(trumpete)` in {path}mixin-not-matched.less on line 6, column 1:
2
+ 5
3
+ 6 .mixin(@saxofon);
@@ -0,0 +1,6 @@
1
+ @saxofon:trumpete;
2
+
3
+ .mixin(@a, @b) {
4
+ }
5
+
6
+ .mixin(@a: @saxofon);
@@ -0,0 +1,3 @@
1
+ RuntimeError: No matching definition was found for `.mixin(@a:trumpete)` in {path}mixin-not-matched2.less on line 6, column 1:
2
+ 5
3
+ 6 .mixin(@a: @saxofon);
@@ -0,0 +1,9 @@
1
+ .something {
2
+ & {
3
+ .a {value: a}
4
+ }
5
+
6
+ & {
7
+ .b {.a} // was Err. before 1.6.2
8
+ }
9
+ }
@@ -0,0 +1,4 @@
1
+ NameError: .a is undefined in {path}mixin-not-visible-in-scope-1.less on line 7, column 13:
2
+ 6 & {
3
+ 7 .b {.a} // was Err. before 1.6.2
4
+ 8 }
@@ -0,0 +1,9 @@
1
+ 
2
+ guard-default-func-conflict {
3
+ .m(@x, 1) {}
4
+ .m(@x, 2) when (default()) {}
5
+ .m(@x, 2) when (default()) {}
6
+
7
+ .m(1, 1);
8
+ .m(1, 2);
9
+ }
@@ -0,0 +1,4 @@
1
+ RuntimeError: Ambiguous use of `default()` found when matching for `.m(1, 2)` in {path}mixins-guards-default-func-1.less on line 8, column 5:
2
+ 7 .m(1, 1);
3
+ 8 .m(1, 2);
4
+ 9 }
@@ -0,0 +1,9 @@
1
+ 
2
+ guard-default-func-conflict {
3
+ .m(1) {}
4
+ .m(@x) when not(default()) {}
5
+ .m(@x) when (@x = 3) and (default()) {}
6
+
7
+ .m(2);
8
+ .m(3);
9
+ }
@@ -0,0 +1,4 @@
1
+ RuntimeError: Ambiguous use of `default()` found when matching for `.m(3)` in {path}mixins-guards-default-func-2.less on line 8, column 5:
2
+ 7 .m(2);
3
+ 8 .m(3);
4
+ 9 }
@@ -0,0 +1,9 @@
1
+ 
2
+ guard-default-func-conflict {
3
+ .m(1) {}
4
+ .m(@x) when not(default()) {}
5
+ .m(@x) when not(default()) {}
6
+
7
+ .m(1);
8
+ .m(2);
9
+ }
@@ -0,0 +1,4 @@
1
+ RuntimeError: Ambiguous use of `default()` found when matching for `.m(2)` in {path}mixins-guards-default-func-3.less on line 8, column 5:
2
+ 7 .m(1);
3
+ 8 .m(2);
4
+ 9 }
@@ -0,0 +1,4 @@
1
+ @ie8: true;
2
+ .a when (@ie8 = true),
3
+ .b {
4
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Guards are only currently allowed on a single selector. in {path}multiple-guards-on-css-selectors.less on line 3, column 1:
2
+ 2 .a when (@ie8 = true),
3
+ 3 .b {
4
+ 4 }
@@ -0,0 +1,4 @@
1
+ @ie8: true;
2
+ .a,
3
+ .b when (@ie8 = true) {
4
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Guards are only currently allowed on a single selector. in {path}multiple-guards-on-css-selectors2.less on line 3, column 23:
2
+ 2 .a,
3
+ 3 .b when (@ie8 = true) {
4
+ 4 }
@@ -0,0 +1,7 @@
1
+ /* Test */
2
+ #blah {
3
+ // blah
4
+ }
5
+ .a {
6
+ error: (1px * 1em);
7
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Multiple units in dimension. Correct the units or use the unit function. Bad unit: em*px in {path}multiply-mixed-units.less on line 6, column 3:
2
+ 5 .a {
3
+ 6 error: (1px * 1em);
4
+ 7 }
@@ -0,0 +1,3 @@
1
+ .a {
2
+ something: (12 (13 + 5 -23) + 5);
3
+ }
@@ -0,0 +1,4 @@
1
+ ParseError: Expected ')' in {path}parens-error-1.less on line 2, column 18:
2
+ 1 .a {
3
+ 2 something: (12 (13 + 5 -23) + 5);
4
+ 3 }
@@ -0,0 +1,3 @@
1
+ .a {
2
+ something: (12 * (13 + 5 -23));
3
+ }
@@ -0,0 +1,4 @@
1
+ ParseError: Expected ')' in {path}parens-error-2.less on line 2, column 28:
2
+ 1 .a {
3
+ 2 something: (12 * (13 + 5 -23));
4
+ 3 }
@@ -0,0 +1,3 @@
1
+ .a {
2
+ something: (12 + (13 + 10 -23));
3
+ }
@@ -0,0 +1,4 @@
1
+ ParseError: Expected ')' in {path}parens-error-3.less on line 2, column 29:
2
+ 1 .a {
3
+ 2 something: (12 + (13 + 10 -23));
4
+ 3 }
@@ -0,0 +1,4 @@
1
+ body {
2
+ background-color: #fff;
3
+ }
4
+ }
@@ -0,0 +1,4 @@
1
+ ParseError: Unrecognised input. Possibly missing opening '{' in {path}parse-error-curly-bracket.less on line 4, column 1:
2
+ 3 }
3
+ 4 }
4
+ 5
@@ -0,0 +1,5 @@
1
+ @media (extra: bracket)) {
2
+ body {
3
+ background-color: #fff;
4
+ }
5
+ }
@@ -0,0 +1,3 @@
1
+ ParseError: Unrecognised input. Possibly missing opening '(' in {path}parse-error-extra-parens.less on line 1, column 24:
2
+ 1 @media (extra: bracket)) {
3
+ 2 body {
@@ -0,0 +1,2 @@
1
+ body {
2
+ background-color: #fff;
@@ -0,0 +1,3 @@
1
+ ParseError: Unrecognised input. Possibly missing something in {path}parse-error-missing-bracket.less on line 3, column 1:
2
+ 2 background-color: #fff;
3
+ 3
@@ -0,0 +1,5 @@
1
+ @media (missing: bracket {
2
+ body {
3
+ background-color: #fff;
4
+ }
5
+ }
@@ -0,0 +1,3 @@
1
+ ParseError: Missing closing ')' in {path}parse-error-missing-parens.less on line 1, column 26:
2
+ 1 @media (missing: bracket {
3
+ 2 body {
@@ -0,0 +1,13 @@
1
+ @import 'import/import-test.less';
2
+
3
+ body
4
+ {
5
+ font-family: arial, sans-serif;
6
+ }
7
+
8
+ nonsense;
9
+
10
+ .clickable
11
+ {
12
+ cursor: pointer;
13
+ }
@@ -0,0 +1,4 @@
1
+ ParseError: Unrecognised input in {path}parse-error-with-import.less on line 8, column 9:
2
+ 7
3
+ 8 nonsense;
4
+ 9
@@ -0,0 +1,3 @@
1
+ .a {
2
+ error: calc(1 %);
3
+ }
@@ -0,0 +1,4 @@
1
+ SyntaxError: Invalid % without number in {path}percentage-missing-space.less on line 2, column 3:
2
+ 1 .a {
3
+ 2 error: calc(1 %);
4
+ 3 }
@@ -0,0 +1,3 @@
1
+ a {
2
+ * : 1;
3
+ }
@@ -0,0 +1,4 @@
1
+ ParseError: Unrecognised input in {path}property-asterisk-only-name.less on line 2, column 7:
2
+ 1 a {
3
+ 2 * : 1;
4
+ 3 }
@@ -0,0 +1,3 @@
1
+ .test {
2
+ display/*/: block; /*sorry for IE5*/
3
+ }
@@ -0,0 +1,3 @@
1
+ ParseError: Unrecognised input. Possibly missing opening '{' in {path}property-ie5-hack.less on line 3, column 1:
2
+ 2 display/*/: block; /*sorry for IE5*/
3
+ 3 }
@@ -0,0 +1,4 @@
1
+ .a() {
2
+ prop:1;
3
+ }
4
+ .a();
@@ -0,0 +1,4 @@
1
+ SyntaxError: properties must be inside selector blocks, they cannot be in the root. in {path}property-in-root.less on line 2, column 3:
2
+ 1 .a() {
3
+ 2 prop:1;
4
+ 3 }
@@ -0,0 +1 @@
1
+ @import "property-in-root";