summaryrefslogtreecommitdiffstats
path: root/theme-compiler/tests/resources/sasslang/scss
diff options
context:
space:
mode:
Diffstat (limited to 'theme-compiler/tests/resources/sasslang/scss')
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/1-test_attribute_unification.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/10-test_combinator_unification_double_plus.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/100-test_optional_extend_does_not_warn_when_extension_fails.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/101-test_placeholder_descendant_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/102-test_placeholder_interpolation.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/103-test_placeholder_selector_as_modifier.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/104-test_placeholder_selector_with_multiple_extenders.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/105-test_pseudo_unification.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/106-test_pseudoclass_remains_at_end_of_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/107-test_pseudoelement_goes_lefter_than_not.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/108-test_pseudoelement_goes_lefter_than_pseudoclass.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/109-test_pseudoelement_remains_at_end_of_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/11-test_combinator_unification_double_tilde.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/110-test_redundant_selector_elimination.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/111-test_semi_placeholder_selector.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/112-test_target_with_child.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/113-test_three_level_extend_loop.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/114-test_universal_unification_with_namespaced_element_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/115-test_universal_unification_with_namespaced_universal_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/116-test_universal_unification_with_namespaceless_element_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/117-test_universal_unification_with_namespaceless_universal_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/118-test_universal_unification_with_simple_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/119-test_unused_placeholder_selector.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/12-test_combinator_unification_for_hacky_combinators.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/120-test_can_resolve_generated_imports.scss7
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/121-test_extension_overrides.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/122-test_staleness_check_across_importers.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/123-compile_file.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/124-test_multibyte_and_interpolation.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/125-test_original_filename_set.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/126-test_selector_tracing.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/127-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/128-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/129-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/13-test_combinator_unification_nested.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/130-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/131-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/132-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/133-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/134-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/135-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/136-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/137-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/138-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/139-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/14-test_combinator_unification_plus_space.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/140-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/141-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/142-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/143-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/144-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/145-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/146-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/147-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/148-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/149-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/15-test_combinator_unification_tilde_plus.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/150-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/151-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/152-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/153-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/154-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/155-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/156-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/157-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/158-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/159-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/16-test_combinator_unification_with_newlines.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/160-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/161-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/162-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/163-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/164-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/165-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/166-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/167-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/168-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/169-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/17-test_comma_extendee.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/170-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/171-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/172-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/173-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/174-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/175-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/176-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/177-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/178-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/179-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/18-test_control_flow_for.scss8
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/180-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/181-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/182-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/183-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/184-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/185-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/186-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/187-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/188-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/189-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/19-test_control_flow_if.scss10
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/190-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/191-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/192-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/193-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/194-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/195-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/196-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/197-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/198-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/199-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/2-test_basic.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/20-test_control_flow_while.scss10
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/200-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/201-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/202-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/203-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/204-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/205-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/206-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/207-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/208-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/209-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/21-test_duplicated_selector_with_newlines.scss7
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/210-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/211-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/212-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/213-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/214-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/215-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/216-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/217-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/218-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/219-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/22-test_dynamic_extendee.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/220-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/221-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/222-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/223-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/224-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/225-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/226-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/227-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/228-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/229-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/23-test_element_unification_with_namespaced_element_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/230-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/231-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/232-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/233-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/234-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/235-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/236-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/237-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/238-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/239-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/24-test_element_unification_with_namespaced_universal_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/240-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/241-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/242-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/243-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/244-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/245-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/246-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/247-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/248-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/249-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/25-test_element_unification_with_namespaceless_element_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/250-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/251-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/252-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/253-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/254-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/255-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/256-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/257-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/258-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/259-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/26-test_element_unification_with_namespaceless_universal_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/260-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/261-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/262-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/263-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/264-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/265-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/266-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/267-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/268-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/269-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/27-test_element_unification_with_simple_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/270-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/271-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/272-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/273-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/274-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/275-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/276-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/277-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/278-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/279-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/28-test_extend_cross_branch_redundancy_elimination.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/280-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/281-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/282-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/283-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/284-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/285-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/286-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/287-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/288-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/289-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/29-test_extend_does_not_warn_when_one_extension_fails_but_others_dont.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/290-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/291-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/292-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/293-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/294-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/295-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/296-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/297-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/298-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/299-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/3-test_basic_extend_loop.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/30-test_extend_out_of_media.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/300-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/301-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/302-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/303-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/304-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/305-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/306-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/307-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/308-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/309-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/31-test_extend_out_of_nested_directives.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/310-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/311-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/312-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/313-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/314-update_stylesheet.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/315-update_stylesheet.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/316-update_stylesheet.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/317-test_almost_ambiguous_nested_rules_and_declarations.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/318-test_basic_function.scss7
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/319-test_basic_mixins.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/32-test_extend_out_of_unknown_directive.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/320-test_basic_prop_name_interpolation.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/321-test_basic_selector_interpolation.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/322-test_block_comment_in_script.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/323-test_comment_after_if_directive.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/324-test_css_import_directive.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/325-test_css_import_directive.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/326-test_css_import_directive.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/327-test_css_import_directive.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/328-test_css_import_directive.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/329-test_debug_directive.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/33-test_extend_redundancy_elimination_never_eliminates_base_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/330-test_directive_interpolation.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/331-test_dynamic_media_import.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/332-test_each_directive.scss10
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/333-test_empty_content.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/334-test_for_directive.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/335-test_function_args.scss7
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/336-test_function_empty_var_args.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/337-test_function_splat_args.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/338-test_function_splat_args_with_var_args.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/339-test_function_splat_args_with_var_args_and_normal_args.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/340-test_function_splat_args_with_var_args_preserves_separator.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/341-test_function_splat_expression.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/342-test_function_var_and_splat_args_pass_through_keywords.scss9
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/343-test_function_var_args.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/344-test_function_var_args_act_like_list.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/345-test_function_var_args_passed_to_native.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/346-test_guard_assign.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/347-test_http_import.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/348-test_if_directive.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/349-test_import_with_interpolation.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/35-test_extend_redundancy_elimination_when_it_would_reduce_specificity.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/350-test_interpolation.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/351-test_interpolation_with_bracket_on_next_line.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/352-test_keyword_args_in_functions.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/353-test_line_comment_in_script.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/354-test_media_import.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/355-test_media_interpolation.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/356-test_media_interpolation_with_reparse.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/357-test_mixin_content.scss13
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/358-test_mixin_empty_var_args.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/359-test_mixin_splat_args.scss9
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/36-test_extend_self_loop.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/360-test_mixin_splat_args_with_var_args.scss7
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/361-test_mixin_splat_args_with_var_args_and_normal_args.scss8
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/362-test_mixin_splat_args_with_var_args_preserves_separator.scss7
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/363-test_mixin_splat_expression.scss8
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/364-test_mixin_var_and_splat_args_pass_through_keywords.scss11
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/365-test_mixin_var_args.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/366-test_mixin_var_args_act_like_list.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/367-test_mixin_with_keyword_args.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/368-test_mixins_with_args.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/369-test_mixins_with_empty_args.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/37-test_extend_warns_when_extendee_doesnt_exist.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/370-test_moz_document_interpolation.scss7
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/371-test_multiline_var.scss10
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/372-test_namespace_properties.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/373-test_namespace_properties_with_script_value.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/374-test_namespace_properties_with_value.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/375-test_nested_function_def.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/376-test_nested_function_shadow.scss8
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/377-test_nested_mixin_def.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/378-test_nested_mixin_shadow.scss8
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/379-test_nested_namespace_properties.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/38-test_extend_warns_when_extension_fails.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/380-test_nested_rules.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/381-test_nested_rules_with_declarations.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/382-test_nested_rules_with_fancy_selectors.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/383-test_newline_selector_rendered_multiple_times.scss8
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/384-test_newlines_in_selectors.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/385-test_newlines_removed_from_selectors_when_compressed.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/386-test_no_buffer_overflow.scss18
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/387-test_no_namespace_properties_without_space.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/388-test_one_line_comments.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/389-test_options_passed_to_script.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/39-test_extend_with_subject_fails_with_conflicting_subject.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/390-test_parent_selector_with_parent_and_subject.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/391-test_parent_selector_with_subject.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/392-test_parent_selectors.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/393-test_passing_all_as_keyword_args_in_opposite_order.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/394-test_passing_required_args_as_a_keyword_arg.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/395-test_prop_name_interpolation_after_hyphen.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/396-test_prop_name_only_interpolation.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/397-test_random_directive_interpolation.scss7
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/398-test_reference_combinator_with_parent_ref.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/399-test_sass_script.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/4-test_basic_placeholder_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/40-test_extend_with_subject_retains_subject_on_extender.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/400-test_script_in_media.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/401-test_selector_interpolation_at_attr_beginning.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/402-test_selector_interpolation_at_attr_end.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/403-test_selector_interpolation_at_class_begininng.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/404-test_selector_interpolation_at_dashes.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/405-test_selector_interpolation_at_id_begininng.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/406-test_selector_interpolation_at_pseudo_begininng.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/407-test_selector_interpolation_before_element_name.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/408-test_selector_interpolation_in_pseudoclass.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/409-test_selector_interpolation_in_reference_combinator.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/41-test_extend_with_subject_retains_subject_on_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/410-test_selector_interpolation_in_string.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/411-test_selector_only_interpolation.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/412-test_several_namespace_properties.scss10
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/413-test_star_plus_and_parent.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/414-test_supports_bubbling.scss8
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/415-test_supports_with_expressions.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/416-test_trailing_comma_in_selector.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/417-test_unicode_variables.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/418-test_url_import.scss1
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/419-test_variables.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/42-test_extend_with_subject_transfers_subject_to_extender.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/420-test_warn_directive.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/421-test_weird_added_space.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/422-test_while_directive.scss8
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/43-test_extend_with_subject_transfers_subject_to_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/44-test_extend_within_and_without_media.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/45-test_extend_within_and_without_nested_directives.scss7
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/46-test_extend_within_and_without_unknown_directive.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/47-test_extend_within_disparate_media.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/48-test_extend_within_disparate_nested_directives.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/49-test_extend_within_disparate_unknown_directive.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/5-test_chained_extends.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/50-test_extend_within_media.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/51-test_extend_within_nested_directives.scss6
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/52-test_extend_within_unknown_directive.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/53-test_extended_parent_and_child_redundancy_elimination.scss5
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/54-test_id_unification.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/55-test_long_extendee.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/56-test_long_extendee_matches_supersets.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/57-test_long_extendee_requires_all_selectors.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/58-test_long_extendee_runs_unification.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/59-test_long_extender.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/6-test_class_unification.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/60-test_long_extender_aborts_unification.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/61-test_long_extender_runs_unification.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/62-test_media_in_placeholder_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/63-test_multiple_extendees.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/64-test_multiple_extender_merges_with_superset_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/65-test_multiple_extends_with_multiple_extenders_and_single_target.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/66-test_multiple_extends_with_single_extender_and_single_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/67-test_multiple_targets.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/68-test_negation_unification.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/69-test_nested_extend_loop.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/7-test_combinator_unification_angle_sibling.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/70-test_nested_extender.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/71-test_nested_extender_aborts_unification.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/72-test_nested_extender_alternates_parents.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/73-test_nested_extender_chooses_first_subseq.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/74-test_nested_extender_counts_extended_subselectors.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/75-test_nested_extender_counts_extended_superselectors.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/76-test_nested_extender_doesnt_find_common_selectors_around_adjacent_sibling_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/77-test_nested_extender_doesnt_find_common_selectors_around_reference_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/78-test_nested_extender_doesnt_find_common_selectors_around_sibling_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/79-test_nested_extender_finds_common_selectors_around_child_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/8-test_combinator_unification_angle_space.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/80-test_nested_extender_merges_with_same_selector.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/81-test_nested_extender_runs_unification.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/82-test_nested_extender_unifies_common_subseq.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/83-test_nested_extender_unifies_common_substring.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/84-test_nested_extender_unifies_identical_parents.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/85-test_nested_extender_with_child_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/86-test_nested_extender_with_child_selector_merges_with_same_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/87-test_nested_extender_with_child_selector_unifies.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/88-test_nested_extender_with_early_child_selectors_doesnt_subseq_them.scss4
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/89-test_nested_extender_with_hacky_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/9-test_combinator_unification_double_angle.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/90-test_nested_extender_with_sibling_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/91-test_nested_selector_with_child_selector_hack_extendee.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/92-test_nested_selector_with_child_selector_hack_extender.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/93-test_nested_selector_with_child_selector_hack_extender_and_extendee.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/94-test_nested_selector_with_child_selector_hack_extender_and_extendee_and_newline.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/96-test_nested_target.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/97-test_newline_near_combinator.scss3
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/98-test_not_remains_at_end_of_selector.scss2
-rw-r--r--theme-compiler/tests/resources/sasslang/scss/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.scss1
422 files changed, 2704 insertions, 0 deletions
diff --git a/theme-compiler/tests/resources/sasslang/scss/1-test_attribute_unification.scss b/theme-compiler/tests/resources/sasslang/scss/1-test_attribute_unification.scss
new file mode 100644
index 0000000000..33c77486b3
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/1-test_attribute_unification.scss
@@ -0,0 +1,2 @@
+%-a [foo=bar].baz {a: b}
+[foo=baz] {@extend .baz} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/10-test_combinator_unification_double_plus.scss b/theme-compiler/tests/resources/sasslang/scss/10-test_combinator_unification_double_plus.scss
new file mode 100644
index 0000000000..66aa84db77
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/10-test_combinator_unification_double_plus.scss
@@ -0,0 +1,2 @@
+.a.b + x {a: b}
+.b + y {@extend x}
diff --git a/theme-compiler/tests/resources/sasslang/scss/100-test_optional_extend_does_not_warn_when_extension_fails.scss b/theme-compiler/tests/resources/sasslang/scss/100-test_optional_extend_does_not_warn_when_extension_fails.scss
new file mode 100644
index 0000000000..6d707236f2
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/100-test_optional_extend_does_not_warn_when_extension_fails.scss
@@ -0,0 +1,2 @@
+a.bar {a: b}
+b.foo {@extend .bar !optional}
diff --git a/theme-compiler/tests/resources/sasslang/scss/101-test_placeholder_descendant_selector.scss b/theme-compiler/tests/resources/sasslang/scss/101-test_placeholder_descendant_selector.scss
new file mode 100644
index 0000000000..32c4bbd164
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/101-test_placeholder_descendant_selector.scss
@@ -0,0 +1,2 @@
+#context %foo a {a: b}
+.bar {@extend %foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/102-test_placeholder_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/102-test_placeholder_interpolation.scss
new file mode 100644
index 0000000000..cbf572e4bb
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/102-test_placeholder_interpolation.scss
@@ -0,0 +1,4 @@
+$foo: foo;
+
+%#{$foo} {color: blue}
+.bar {@extend %foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/103-test_placeholder_selector_as_modifier.scss b/theme-compiler/tests/resources/sasslang/scss/103-test_placeholder_selector_as_modifier.scss
new file mode 100644
index 0000000000..16efb9ecdf
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/103-test_placeholder_selector_as_modifier.scss
@@ -0,0 +1,3 @@
+a%foo.baz {color: blue}
+.bar {@extend %foo}
+div {@extend %foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/104-test_placeholder_selector_with_multiple_extenders.scss b/theme-compiler/tests/resources/sasslang/scss/104-test_placeholder_selector_with_multiple_extenders.scss
new file mode 100644
index 0000000000..16c35af632
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/104-test_placeholder_selector_with_multiple_extenders.scss
@@ -0,0 +1,3 @@
+%foo {color: blue}
+.bar {@extend %foo}
+.baz {@extend %foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/105-test_pseudo_unification.scss b/theme-compiler/tests/resources/sasslang/scss/105-test_pseudo_unification.scss
new file mode 100644
index 0000000000..b14b24b026
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/105-test_pseudo_unification.scss
@@ -0,0 +1,2 @@
+%-a :foo.baz {a: b}
+:foo(2n+1) {@extend .baz} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/106-test_pseudoclass_remains_at_end_of_selector.scss b/theme-compiler/tests/resources/sasslang/scss/106-test_pseudoclass_remains_at_end_of_selector.scss
new file mode 100644
index 0000000000..619bbb51cd
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/106-test_pseudoclass_remains_at_end_of_selector.scss
@@ -0,0 +1,2 @@
+.foo:bar {a: b}
+.baz {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/107-test_pseudoelement_goes_lefter_than_not.scss b/theme-compiler/tests/resources/sasslang/scss/107-test_pseudoelement_goes_lefter_than_not.scss
new file mode 100644
index 0000000000..f50ad04b12
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/107-test_pseudoelement_goes_lefter_than_not.scss
@@ -0,0 +1,2 @@
+.foo::bar {a: b}
+.baz:not(.bang) {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/108-test_pseudoelement_goes_lefter_than_pseudoclass.scss b/theme-compiler/tests/resources/sasslang/scss/108-test_pseudoelement_goes_lefter_than_pseudoclass.scss
new file mode 100644
index 0000000000..230f925a10
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/108-test_pseudoelement_goes_lefter_than_pseudoclass.scss
@@ -0,0 +1,2 @@
+.foo::bar {a: b}
+.baz:bang {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/109-test_pseudoelement_remains_at_end_of_selector.scss b/theme-compiler/tests/resources/sasslang/scss/109-test_pseudoelement_remains_at_end_of_selector.scss
new file mode 100644
index 0000000000..cd588ed24a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/109-test_pseudoelement_remains_at_end_of_selector.scss
@@ -0,0 +1,2 @@
+.foo::bar {a: b}
+.baz {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/11-test_combinator_unification_double_tilde.scss b/theme-compiler/tests/resources/sasslang/scss/11-test_combinator_unification_double_tilde.scss
new file mode 100644
index 0000000000..6f5c90d1e2
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/11-test_combinator_unification_double_tilde.scss
@@ -0,0 +1,2 @@
+.a.b ~ x {a: b}
+.a ~ y {@extend x}
diff --git a/theme-compiler/tests/resources/sasslang/scss/110-test_redundant_selector_elimination.scss b/theme-compiler/tests/resources/sasslang/scss/110-test_redundant_selector_elimination.scss
new file mode 100644
index 0000000000..ab8ba4845f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/110-test_redundant_selector_elimination.scss
@@ -0,0 +1,3 @@
+.foo.bar {a: b}
+.x {@extend .foo, .bar}
+.y {@extend .foo, .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/111-test_semi_placeholder_selector.scss b/theme-compiler/tests/resources/sasslang/scss/111-test_semi_placeholder_selector.scss
new file mode 100644
index 0000000000..ee864ae54d
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/111-test_semi_placeholder_selector.scss
@@ -0,0 +1 @@
+#context %foo, .bar .baz {color: blue}
diff --git a/theme-compiler/tests/resources/sasslang/scss/112-test_target_with_child.scss b/theme-compiler/tests/resources/sasslang/scss/112-test_target_with_child.scss
new file mode 100644
index 0000000000..3748f64233
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/112-test_target_with_child.scss
@@ -0,0 +1,2 @@
+.foo .bar {a: b}
+.baz {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/113-test_three_level_extend_loop.scss b/theme-compiler/tests/resources/sasslang/scss/113-test_three_level_extend_loop.scss
new file mode 100644
index 0000000000..b3905b57d2
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/113-test_three_level_extend_loop.scss
@@ -0,0 +1,3 @@
+.foo {a: b; @extend .bar}
+.bar {c: d; @extend .baz}
+.baz {e: f; @extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/114-test_universal_unification_with_namespaced_element_target.scss b/theme-compiler/tests/resources/sasslang/scss/114-test_universal_unification_with_namespaced_element_target.scss
new file mode 100644
index 0000000000..5863cb2bb9
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/114-test_universal_unification_with_namespaced_element_target.scss
@@ -0,0 +1,2 @@
+%-a ns|a.foo {a: b}
+* {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/115-test_universal_unification_with_namespaced_universal_target.scss b/theme-compiler/tests/resources/sasslang/scss/115-test_universal_unification_with_namespaced_universal_target.scss
new file mode 100644
index 0000000000..bb8cb04933
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/115-test_universal_unification_with_namespaced_universal_target.scss
@@ -0,0 +1,2 @@
+%-a ns|*.foo {a: b}
+* {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/116-test_universal_unification_with_namespaceless_element_target.scss b/theme-compiler/tests/resources/sasslang/scss/116-test_universal_unification_with_namespaceless_element_target.scss
new file mode 100644
index 0000000000..f0da6e39a5
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/116-test_universal_unification_with_namespaceless_element_target.scss
@@ -0,0 +1,2 @@
+%-a a.foo {a: b}
+* {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/117-test_universal_unification_with_namespaceless_universal_target.scss b/theme-compiler/tests/resources/sasslang/scss/117-test_universal_unification_with_namespaceless_universal_target.scss
new file mode 100644
index 0000000000..cf7771152d
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/117-test_universal_unification_with_namespaceless_universal_target.scss
@@ -0,0 +1,2 @@
+%-a *.foo {a: b}
+* {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/118-test_universal_unification_with_simple_target.scss b/theme-compiler/tests/resources/sasslang/scss/118-test_universal_unification_with_simple_target.scss
new file mode 100644
index 0000000000..1aa11eff9b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/118-test_universal_unification_with_simple_target.scss
@@ -0,0 +1,2 @@
+%-a .foo {a: b}
+* {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/119-test_unused_placeholder_selector.scss b/theme-compiler/tests/resources/sasslang/scss/119-test_unused_placeholder_selector.scss
new file mode 100644
index 0000000000..5b7b5b95dd
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/119-test_unused_placeholder_selector.scss
@@ -0,0 +1,3 @@
+%foo {color: blue}
+%bar {color: red}
+.baz {@extend %foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/12-test_combinator_unification_for_hacky_combinators.scss b/theme-compiler/tests/resources/sasslang/scss/12-test_combinator_unification_for_hacky_combinators.scss
new file mode 100644
index 0000000000..3059f3e5b4
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/12-test_combinator_unification_for_hacky_combinators.scss
@@ -0,0 +1,2 @@
+.a > + x {a: b}
+.b y {@extend x}
diff --git a/theme-compiler/tests/resources/sasslang/scss/120-test_can_resolve_generated_imports.scss b/theme-compiler/tests/resources/sasslang/scss/120-test_can_resolve_generated_imports.scss
new file mode 100644
index 0000000000..0ec4e0eac0
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/120-test_can_resolve_generated_imports.scss
@@ -0,0 +1,7 @@
+
+ $pear-color: green;
+ @import "fruits/apple"; @import "fruits/orange"; @import "fruits/pear";
+ .apple { @include apple; }
+ .orange { @include orange; }
+ .pear { @include pear; }
+
diff --git a/theme-compiler/tests/resources/sasslang/scss/121-test_extension_overrides.scss b/theme-compiler/tests/resources/sasslang/scss/121-test_extension_overrides.scss
new file mode 100644
index 0000000000..20708486db
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/121-test_extension_overrides.scss
@@ -0,0 +1,4 @@
+
+ @import "foo", "bar";
+ @import "foo.ssas", "bar.sscs";
+
diff --git a/theme-compiler/tests/resources/sasslang/scss/122-test_staleness_check_across_importers.scss b/theme-compiler/tests/resources/sasslang/scss/122-test_staleness_check_across_importers.scss
new file mode 100644
index 0000000000..1468ac9362
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/122-test_staleness_check_across_importers.scss
@@ -0,0 +1 @@
+@import "apple";
diff --git a/theme-compiler/tests/resources/sasslang/scss/123-compile_file.scss b/theme-compiler/tests/resources/sasslang/scss/123-compile_file.scss
new file mode 100644
index 0000000000..77fb6bcbb5
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/123-compile_file.scss
@@ -0,0 +1 @@
+$who: world; div { hello: $who }
diff --git a/theme-compiler/tests/resources/sasslang/scss/124-test_multibyte_and_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/124-test_multibyte_and_interpolation.scss
new file mode 100644
index 0000000000..756aedd806
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/124-test_multibyte_and_interpolation.scss
@@ -0,0 +1,4 @@
+#bar {
+ // 
+ background: #{a} 0%;
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/125-test_original_filename_set.scss b/theme-compiler/tests/resources/sasslang/scss/125-test_original_filename_set.scss
new file mode 100644
index 0000000000..30d082666a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/125-test_original_filename_set.scss
@@ -0,0 +1 @@
+@import "imported"; div{color:blue}
diff --git a/theme-compiler/tests/resources/sasslang/scss/126-test_selector_tracing.scss b/theme-compiler/tests/resources/sasslang/scss/126-test_selector_tracing.scss
new file mode 100644
index 0000000000..89c077c199
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/126-test_selector_tracing.scss
@@ -0,0 +1,6 @@
+ @mixin mixed {
+ .mixed { color: red; }
+ }
+ .context {
+ @include mixed;
+ }
diff --git a/theme-compiler/tests/resources/sasslang/scss/127-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/127-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/127-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/128-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/128-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/128-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/129-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/129-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/129-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/13-test_combinator_unification_nested.scss b/theme-compiler/tests/resources/sasslang/scss/13-test_combinator_unification_nested.scss
new file mode 100644
index 0000000000..9df5ebcb23
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/13-test_combinator_unification_nested.scss
@@ -0,0 +1,2 @@
+.a > .b + x {a: b}
+.c > .d + y {@extend x}
diff --git a/theme-compiler/tests/resources/sasslang/scss/130-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/130-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/130-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/131-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/131-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/131-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/132-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/132-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/132-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/133-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/133-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/133-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/134-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/134-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/134-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/135-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/135-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/135-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/136-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/136-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/136-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/137-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/137-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/137-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/138-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/138-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/138-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/139-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/139-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/139-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/14-test_combinator_unification_plus_space.scss b/theme-compiler/tests/resources/sasslang/scss/14-test_combinator_unification_plus_space.scss
new file mode 100644
index 0000000000..9cfa958289
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/14-test_combinator_unification_plus_space.scss
@@ -0,0 +1,2 @@
+.a.b + x {a: b}
+.a y {@extend x}
diff --git a/theme-compiler/tests/resources/sasslang/scss/140-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/140-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/140-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/141-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/141-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/141-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/142-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/142-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/142-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/143-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/143-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/143-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/144-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/144-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/144-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/145-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/145-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/145-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/146-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/146-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/146-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/147-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/147-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/147-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/148-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/148-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/148-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/149-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/149-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/149-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/15-test_combinator_unification_tilde_plus.scss b/theme-compiler/tests/resources/sasslang/scss/15-test_combinator_unification_tilde_plus.scss
new file mode 100644
index 0000000000..c2dae3d6fc
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/15-test_combinator_unification_tilde_plus.scss
@@ -0,0 +1,2 @@
+.a.b + x {a: b}
+.a ~ y {@extend x}
diff --git a/theme-compiler/tests/resources/sasslang/scss/150-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/150-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/150-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/151-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/151-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/151-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/152-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/152-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/152-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/153-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/153-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/153-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/154-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/154-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/154-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/155-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/155-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/155-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/156-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/156-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/156-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/157-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/157-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/157-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/158-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/158-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/158-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/159-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/159-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/159-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/16-test_combinator_unification_with_newlines.scss b/theme-compiler/tests/resources/sasslang/scss/16-test_combinator_unification_with_newlines.scss
new file mode 100644
index 0000000000..e59198064e
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/16-test_combinator_unification_with_newlines.scss
@@ -0,0 +1,6 @@
+.a >
+.b
++ x {a: b}
+.c
+> .d +
+y {@extend x}
diff --git a/theme-compiler/tests/resources/sasslang/scss/160-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/160-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/160-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/161-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/161-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/161-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/162-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/162-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/162-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/163-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/163-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/163-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/164-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/164-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/164-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/165-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/165-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/165-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/166-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/166-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/166-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/167-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/167-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/167-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/168-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/168-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/168-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/169-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/169-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/169-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/17-test_comma_extendee.scss b/theme-compiler/tests/resources/sasslang/scss/17-test_comma_extendee.scss
new file mode 100644
index 0000000000..ea96c2ba65
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/17-test_comma_extendee.scss
@@ -0,0 +1,3 @@
+.foo {a: b}
+.bar {c: d}
+.baz {@extend .foo, .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/170-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/170-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/170-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/171-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/171-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/171-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/172-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/172-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/172-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/173-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/173-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/173-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/174-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/174-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/174-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/175-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/175-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/175-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/176-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/176-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/176-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/177-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/177-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/177-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/178-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/178-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/178-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/179-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/179-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/179-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/18-test_control_flow_for.scss b/theme-compiler/tests/resources/sasslang/scss/18-test_control_flow_for.scss
new file mode 100644
index 0000000000..8e08e5ad05
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/18-test_control_flow_for.scss
@@ -0,0 +1,8 @@
+.base-0 { color: green; }
+.base-1 { display: block; }
+.base-2 { border: 1px solid blue; }
+.added {
+ @for $i from 0 to 3 {
+ @extend .base-#{$i};
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/180-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/180-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/180-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/181-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/181-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/181-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/182-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/182-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/182-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/183-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/183-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/183-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/184-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/184-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/184-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/185-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/185-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/185-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/186-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/186-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/186-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/187-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/187-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/187-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/188-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/188-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/188-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/189-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/189-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/189-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/19-test_control_flow_if.scss b/theme-compiler/tests/resources/sasslang/scss/19-test_control_flow_if.scss
new file mode 100644
index 0000000000..be53e52341
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/19-test_control_flow_if.scss
@@ -0,0 +1,10 @@
+.true { color: green; }
+.false { color: red; }
+.also-true {
+ @if true { @extend .true; }
+ @else { @extend .false; }
+}
+.also-false {
+ @if false { @extend .true; }
+ @else { @extend .false; }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/190-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/190-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/190-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/191-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/191-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/191-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/192-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/192-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/192-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/193-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/193-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/193-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/194-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/194-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/194-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/195-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/195-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/195-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/196-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/196-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/196-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/197-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/197-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/197-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/198-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/198-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/198-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/199-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/199-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/199-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/2-test_basic.scss b/theme-compiler/tests/resources/sasslang/scss/2-test_basic.scss
new file mode 100644
index 0000000000..9f3cde0011
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/2-test_basic.scss
@@ -0,0 +1,2 @@
+.foo {a: b}
+.bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/20-test_control_flow_while.scss b/theme-compiler/tests/resources/sasslang/scss/20-test_control_flow_while.scss
new file mode 100644
index 0000000000..8aa2616638
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/20-test_control_flow_while.scss
@@ -0,0 +1,10 @@
+.base-0 { color: green; }
+.base-1 { display: block; }
+.base-2 { border: 1px solid blue; }
+.added {
+ $i : 0;
+ @while $i < 3 {
+ @extend .base-#{$i};
+ $i : $i + 1;
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/200-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/200-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/200-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/201-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/201-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/201-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/202-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/202-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/202-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/203-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/203-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/203-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/204-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/204-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/204-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/205-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/205-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/205-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/206-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/206-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/206-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/207-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/207-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/207-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/208-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/208-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/208-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/209-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/209-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/209-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/21-test_duplicated_selector_with_newlines.scss b/theme-compiler/tests/resources/sasslang/scss/21-test_duplicated_selector_with_newlines.scss
new file mode 100644
index 0000000000..4e22b4eda9
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/21-test_duplicated_selector_with_newlines.scss
@@ -0,0 +1,7 @@
+.example-1-1,
+.example-1-2,
+.example-1-3 {
+ a: b;
+}
+
+.my-page-1 .my-module-1-1 {@extend .example-1-2}
diff --git a/theme-compiler/tests/resources/sasslang/scss/210-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/210-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/210-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/211-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/211-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/211-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/212-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/212-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/212-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/213-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/213-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/213-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/214-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/214-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/214-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/215-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/215-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/215-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/216-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/216-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/216-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/217-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/217-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/217-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/218-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/218-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/218-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/219-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/219-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/219-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/22-test_dynamic_extendee.scss b/theme-compiler/tests/resources/sasslang/scss/22-test_dynamic_extendee.scss
new file mode 100644
index 0000000000..e9545143c7
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/22-test_dynamic_extendee.scss
@@ -0,0 +1,2 @@
+.foo {a: b}
+.bar {@extend #{".foo"}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/220-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/220-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/220-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/221-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/221-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/221-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/222-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/222-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/222-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/223-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/223-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/223-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/224-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/224-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/224-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/225-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/225-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/225-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/226-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/226-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/226-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/227-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/227-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/227-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/228-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/228-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/228-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/229-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/229-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/229-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/23-test_element_unification_with_namespaced_element_target.scss b/theme-compiler/tests/resources/sasslang/scss/23-test_element_unification_with_namespaced_element_target.scss
new file mode 100644
index 0000000000..6228dee87b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/23-test_element_unification_with_namespaced_element_target.scss
@@ -0,0 +1,2 @@
+%-a ns|a.foo {a: b}
+a {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/230-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/230-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/230-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/231-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/231-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/231-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/232-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/232-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/232-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/233-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/233-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/233-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/234-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/234-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/234-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/235-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/235-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/235-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/236-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/236-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/236-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/237-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/237-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/237-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/238-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/238-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/238-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/239-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/239-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/239-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/24-test_element_unification_with_namespaced_universal_target.scss b/theme-compiler/tests/resources/sasslang/scss/24-test_element_unification_with_namespaced_universal_target.scss
new file mode 100644
index 0000000000..7ad4cc2d46
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/24-test_element_unification_with_namespaced_universal_target.scss
@@ -0,0 +1,2 @@
+%-a ns|*.foo {a: b}
+a {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/240-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/240-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/240-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/241-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/241-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/241-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/242-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/242-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/242-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/243-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/243-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/243-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/244-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/244-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/244-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/245-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/245-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/245-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/246-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/246-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/246-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/247-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/247-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/247-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/248-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/248-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/248-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/249-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/249-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/249-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/25-test_element_unification_with_namespaceless_element_target.scss b/theme-compiler/tests/resources/sasslang/scss/25-test_element_unification_with_namespaceless_element_target.scss
new file mode 100644
index 0000000000..a144f79b3b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/25-test_element_unification_with_namespaceless_element_target.scss
@@ -0,0 +1,2 @@
+%-a a.foo {a: b}
+a {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/250-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/250-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/250-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/251-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/251-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/251-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/252-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/252-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/252-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/253-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/253-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/253-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/254-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/254-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/254-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/255-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/255-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/255-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/256-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/256-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/256-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/257-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/257-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/257-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/258-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/258-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/258-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/259-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/259-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/259-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/26-test_element_unification_with_namespaceless_universal_target.scss b/theme-compiler/tests/resources/sasslang/scss/26-test_element_unification_with_namespaceless_universal_target.scss
new file mode 100644
index 0000000000..94843f9b11
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/26-test_element_unification_with_namespaceless_universal_target.scss
@@ -0,0 +1,2 @@
+%-a *.foo {a: b}
+a {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/260-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/260-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/260-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/261-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/261-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/261-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/262-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/262-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/262-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/263-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/263-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/263-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/264-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/264-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/264-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/265-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/265-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/265-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/266-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/266-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/266-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/267-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/267-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/267-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/268-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/268-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/268-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/269-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/269-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/269-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/27-test_element_unification_with_simple_target.scss b/theme-compiler/tests/resources/sasslang/scss/27-test_element_unification_with_simple_target.scss
new file mode 100644
index 0000000000..b09b2fd558
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/27-test_element_unification_with_simple_target.scss
@@ -0,0 +1,2 @@
+%-a .foo {a: b}
+a {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/270-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/270-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/270-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/271-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/271-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/271-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/272-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/272-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/272-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/273-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/273-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/273-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/274-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/274-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/274-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/275-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/275-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/275-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/276-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/276-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/276-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/277-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/277-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/277-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/278-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/278-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/278-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/279-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/279-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/279-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/28-test_extend_cross_branch_redundancy_elimination.scss b/theme-compiler/tests/resources/sasslang/scss/28-test_extend_cross_branch_redundancy_elimination.scss
new file mode 100644
index 0000000000..0998fcae6e
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/28-test_extend_cross_branch_redundancy_elimination.scss
@@ -0,0 +1,3 @@
+%x c %y {a: b}
+a, b {@extend %x}
+a d {@extend %y}
diff --git a/theme-compiler/tests/resources/sasslang/scss/280-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/280-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/280-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/281-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/281-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/281-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/282-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/282-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/282-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/283-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/283-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/283-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/284-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/284-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/284-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/285-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/285-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/285-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/286-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/286-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/286-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/287-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/287-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/287-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/288-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/288-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/288-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/289-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/289-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/289-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/29-test_extend_does_not_warn_when_one_extension_fails_but_others_dont.scss b/theme-compiler/tests/resources/sasslang/scss/29-test_extend_does_not_warn_when_one_extension_fails_but_others_dont.scss
new file mode 100644
index 0000000000..a5a0dff1d0
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/29-test_extend_does_not_warn_when_one_extension_fails_but_others_dont.scss
@@ -0,0 +1,3 @@
+a.bar {a: b}
+.bar {c: d}
+b.foo {@extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/290-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/290-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/290-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/291-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/291-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/291-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/292-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/292-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/292-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/293-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/293-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/293-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/294-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/294-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/294-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/295-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/295-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/295-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/296-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/296-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/296-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/297-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/297-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/297-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/298-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/298-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/298-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/299-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/299-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/299-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/3-test_basic_extend_loop.scss b/theme-compiler/tests/resources/sasslang/scss/3-test_basic_extend_loop.scss
new file mode 100644
index 0000000000..f8b9df62de
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/3-test_basic_extend_loop.scss
@@ -0,0 +1,2 @@
+.foo {a: b; @extend .bar}
+.bar {c: d; @extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/30-test_extend_out_of_media.scss b/theme-compiler/tests/resources/sasslang/scss/30-test_extend_out_of_media.scss
new file mode 100644
index 0000000000..ad82f7c75f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/30-test_extend_out_of_media.scss
@@ -0,0 +1,4 @@
+.foo {a: b}
+@media screen {
+ .bar {@extend .foo}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/300-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/300-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/300-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/301-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/301-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/301-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/302-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/302-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/302-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/303-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/303-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/303-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/304-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/304-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/304-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/305-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/305-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/305-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/306-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/306-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/306-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/307-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/307-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/307-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/308-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/308-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/308-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/309-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/309-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/309-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/31-test_extend_out_of_nested_directives.scss b/theme-compiler/tests/resources/sasslang/scss/31-test_extend_out_of_nested_directives.scss
new file mode 100644
index 0000000000..694863b3ca
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/31-test_extend_out_of_nested_directives.scss
@@ -0,0 +1,6 @@
+@media screen {
+ .foo {a: b}
+ @flooblehoof {
+ .bar {@extend .foo}
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/310-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/310-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/310-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/311-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/311-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/311-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/312-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/312-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/312-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/313-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/313-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/313-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/314-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/314-update_stylesheet.scss
new file mode 100644
index 0000000000..e43d50813b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/314-update_stylesheet.scss
@@ -0,0 +1,18 @@
+@import "filename_fn_import";
+
+@mixin local-mixin {
+ local-mixin: filename();
+}
+
+@function local-function() {
+ @return filename();
+}
+
+filename {
+ local: filename();
+ @include local-mixin;
+ local-function: local-function();
+
+ @include imported-mixin;
+ imported-function: imported-function();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/315-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/315-update_stylesheet.scss
new file mode 100644
index 0000000000..f64d80bd19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/315-update_stylesheet.scss
@@ -0,0 +1,11 @@
+$preconst: hello;
+
+@mixin premixin {pre-mixin: here}
+
+@import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
+@import "partial.sass";
+
+nonimported {
+ myconst: $preconst;
+ otherconst: $postconst;
+ @include postmixin; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/316-update_stylesheet.scss b/theme-compiler/tests/resources/sasslang/scss/316-update_stylesheet.scss
new file mode 100644
index 0000000000..df49e68944
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/316-update_stylesheet.scss
@@ -0,0 +1 @@
+scss {imported: yes}
diff --git a/theme-compiler/tests/resources/sasslang/scss/317-test_almost_ambiguous_nested_rules_and_declarations.scss b/theme-compiler/tests/resources/sasslang/scss/317-test_almost_ambiguous_nested_rules_and_declarations.scss
new file mode 100644
index 0000000000..c747226d98
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/317-test_almost_ambiguous_nested_rules_and_declarations.scss
@@ -0,0 +1,4 @@
+foo {
+ bar:baz:bang:bop:biddle:woo:look:at:all:these:pseudoclasses {a: b};
+ bar:baz bang bop biddle woo look at all these elems {a: b};
+ bar:baz bang bop biddle woo look at all these elems; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/318-test_basic_function.scss b/theme-compiler/tests/resources/sasslang/scss/318-test_basic_function.scss
new file mode 100644
index 0000000000..9c0d7d6125
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/318-test_basic_function.scss
@@ -0,0 +1,7 @@
+@function foo() {
+ @return 1 + 2;
+}
+
+bar {
+ a: foo();
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/319-test_basic_mixins.scss b/theme-compiler/tests/resources/sasslang/scss/319-test_basic_mixins.scss
new file mode 100644
index 0000000000..7542565d2b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/319-test_basic_mixins.scss
@@ -0,0 +1,4 @@
+@mixin foo {
+ .foo {a: b}}
+
+@include foo;
diff --git a/theme-compiler/tests/resources/sasslang/scss/32-test_extend_out_of_unknown_directive.scss b/theme-compiler/tests/resources/sasslang/scss/32-test_extend_out_of_unknown_directive.scss
new file mode 100644
index 0000000000..725de2b2d7
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/32-test_extend_out_of_unknown_directive.scss
@@ -0,0 +1,4 @@
+.foo {a: b}
+@flooblehoof {
+ .bar {@extend .foo}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/320-test_basic_prop_name_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/320-test_basic_prop_name_interpolation.scss
new file mode 100644
index 0000000000..5d9bc844ca
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/320-test_basic_prop_name_interpolation.scss
@@ -0,0 +1 @@
+foo {bar#{"baz" + "bang"}: blip}
diff --git a/theme-compiler/tests/resources/sasslang/scss/321-test_basic_selector_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/321-test_basic_selector_interpolation.scss
new file mode 100644
index 0000000000..03a49a19e9
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/321-test_basic_selector_interpolation.scss
@@ -0,0 +1 @@
+foo #{1 + 2} baz {a: b}
diff --git a/theme-compiler/tests/resources/sasslang/scss/322-test_block_comment_in_script.scss b/theme-compiler/tests/resources/sasslang/scss/322-test_block_comment_in_script.scss
new file mode 100644
index 0000000000..7de5663cdc
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/322-test_block_comment_in_script.scss
@@ -0,0 +1 @@
+foo {a: 1 + /* flang */ bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/323-test_comment_after_if_directive.scss b/theme-compiler/tests/resources/sasslang/scss/323-test_comment_after_if_directive.scss
new file mode 100644
index 0000000000..ff0ece9add
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/323-test_comment_after_if_directive.scss
@@ -0,0 +1,4 @@
+foo {
+ @if true {a: b}
+ /* This is a comment */
+ c: d }
diff --git a/theme-compiler/tests/resources/sasslang/scss/324-test_css_import_directive.scss b/theme-compiler/tests/resources/sasslang/scss/324-test_css_import_directive.scss
new file mode 100644
index 0000000000..8d44575a6a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/324-test_css_import_directive.scss
@@ -0,0 +1 @@
+@import "foo.css";
diff --git a/theme-compiler/tests/resources/sasslang/scss/325-test_css_import_directive.scss b/theme-compiler/tests/resources/sasslang/scss/325-test_css_import_directive.scss
new file mode 100644
index 0000000000..a295e22711
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/325-test_css_import_directive.scss
@@ -0,0 +1 @@
+@import 'foo.css';
diff --git a/theme-compiler/tests/resources/sasslang/scss/326-test_css_import_directive.scss b/theme-compiler/tests/resources/sasslang/scss/326-test_css_import_directive.scss
new file mode 100644
index 0000000000..e2bde2649a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/326-test_css_import_directive.scss
@@ -0,0 +1 @@
+@import url("foo.css");
diff --git a/theme-compiler/tests/resources/sasslang/scss/327-test_css_import_directive.scss b/theme-compiler/tests/resources/sasslang/scss/327-test_css_import_directive.scss
new file mode 100644
index 0000000000..e2bde2649a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/327-test_css_import_directive.scss
@@ -0,0 +1 @@
+@import url("foo.css");
diff --git a/theme-compiler/tests/resources/sasslang/scss/328-test_css_import_directive.scss b/theme-compiler/tests/resources/sasslang/scss/328-test_css_import_directive.scss
new file mode 100644
index 0000000000..0d876d06e8
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/328-test_css_import_directive.scss
@@ -0,0 +1 @@
+@import url(foo.css);
diff --git a/theme-compiler/tests/resources/sasslang/scss/329-test_debug_directive.scss b/theme-compiler/tests/resources/sasslang/scss/329-test_debug_directive.scss
new file mode 100644
index 0000000000..59e43dd684
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/329-test_debug_directive.scss
@@ -0,0 +1,3 @@
+foo {a: b}
+@debug "hello world!";
+bar {c: d}
diff --git a/theme-compiler/tests/resources/sasslang/scss/33-test_extend_redundancy_elimination_never_eliminates_base_selector.scss b/theme-compiler/tests/resources/sasslang/scss/33-test_extend_redundancy_elimination_never_eliminates_base_selector.scss
new file mode 100644
index 0000000000..ac6ad58994
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/33-test_extend_redundancy_elimination_never_eliminates_base_selector.scss
@@ -0,0 +1,2 @@
+a.foo {a: b}
+.foo {@extend a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/330-test_directive_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/330-test_directive_interpolation.scss
new file mode 100644
index 0000000000..f9f5bb5820
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/330-test_directive_interpolation.scss
@@ -0,0 +1,2 @@
+$baz: 12;
+@foo bar#{$baz} qux {a: b}
diff --git a/theme-compiler/tests/resources/sasslang/scss/331-test_dynamic_media_import.scss b/theme-compiler/tests/resources/sasslang/scss/331-test_dynamic_media_import.scss
new file mode 100644
index 0000000000..1886cb8f77
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/331-test_dynamic_media_import.scss
@@ -0,0 +1,4 @@
+$media: print;
+$key: -webkit-min-device-pixel-ratio;
+$value: 20;
+@import "foo" #{$media} and ($key + "-foo": $value + 5);
diff --git a/theme-compiler/tests/resources/sasslang/scss/332-test_each_directive.scss b/theme-compiler/tests/resources/sasslang/scss/332-test_each_directive.scss
new file mode 100644
index 0000000000..fc1fb510bb
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/332-test_each_directive.scss
@@ -0,0 +1,10 @@
+a {
+ @each $number in 1px 2px 3px 4px {
+ b: $number;
+ }
+}
+c {
+ @each $str in foo, bar, baz, bang {
+ d: $str;
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/333-test_empty_content.scss b/theme-compiler/tests/resources/sasslang/scss/333-test_empty_content.scss
new file mode 100644
index 0000000000..ad8df41f25
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/333-test_empty_content.scss
@@ -0,0 +1,2 @@
+@mixin foo { @content }
+a { b: c; @include foo {} }
diff --git a/theme-compiler/tests/resources/sasslang/scss/334-test_for_directive.scss b/theme-compiler/tests/resources/sasslang/scss/334-test_for_directive.scss
new file mode 100644
index 0000000000..d3f285c591
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/334-test_for_directive.scss
@@ -0,0 +1,3 @@
+.foo {
+ @for $var from 1 to 5 {a: $var;}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/335-test_function_args.scss b/theme-compiler/tests/resources/sasslang/scss/335-test_function_args.scss
new file mode 100644
index 0000000000..81c969f6a1
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/335-test_function_args.scss
@@ -0,0 +1,7 @@
+@function plus($var1, $var2) {
+ @return $var1 + $var2;
+}
+
+bar {
+ a: plus(1, 2);
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/336-test_function_empty_var_args.scss b/theme-compiler/tests/resources/sasslang/scss/336-test_function_empty_var_args.scss
new file mode 100644
index 0000000000..5340be365b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/336-test_function_empty_var_args.scss
@@ -0,0 +1,5 @@
+@function foo($a, $b...) {
+ @return "a: #{$a}, b: #{length($b)}";
+}
+
+.foo {val: foo(1)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/337-test_function_splat_args.scss b/theme-compiler/tests/resources/sasslang/scss/337-test_function_splat_args.scss
new file mode 100644
index 0000000000..6dfed0ae2d
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/337-test_function_splat_args.scss
@@ -0,0 +1,6 @@
+@function foo($a, $b, $c, $d) {
+ @return "a: #{$a}, b: #{$b}, c: #{$c}, d: #{$d}";
+}
+
+$list: 2, 3, 4;
+.foo {val: foo(1, $list...)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/338-test_function_splat_args_with_var_args.scss b/theme-compiler/tests/resources/sasslang/scss/338-test_function_splat_args_with_var_args.scss
new file mode 100644
index 0000000000..d53ccee1ac
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/338-test_function_splat_args_with_var_args.scss
@@ -0,0 +1,6 @@
+@function foo($a, $b...) {
+ @return "a: #{$a}, b: #{$b}";
+}
+
+$list: 2, 3, 4;
+.foo {val: foo(1, $list...)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/339-test_function_splat_args_with_var_args_and_normal_args.scss b/theme-compiler/tests/resources/sasslang/scss/339-test_function_splat_args_with_var_args_and_normal_args.scss
new file mode 100644
index 0000000000..e01bfd84ed
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/339-test_function_splat_args_with_var_args_and_normal_args.scss
@@ -0,0 +1,6 @@
+@function foo($a, $b, $c...) {
+ @return "a: #{$a}, b: #{$b}, c: #{$c}";
+}
+
+$list: 2, 3, 4;
+.foo {val: foo(1, $list...)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.scss b/theme-compiler/tests/resources/sasslang/scss/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.scss
new file mode 100644
index 0000000000..713644b221
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/34-test_extend_redundancy_elimination_when_it_would_preserve_specificity.scss
@@ -0,0 +1,2 @@
+.bar a {a: b}
+a.foo {@extend a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/340-test_function_splat_args_with_var_args_preserves_separator.scss b/theme-compiler/tests/resources/sasslang/scss/340-test_function_splat_args_with_var_args_preserves_separator.scss
new file mode 100644
index 0000000000..e33cbeca0e
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/340-test_function_splat_args_with_var_args_preserves_separator.scss
@@ -0,0 +1,6 @@
+@function foo($a, $b...) {
+ @return "a: #{$a}, b: #{$b}";
+}
+
+$list: 3 4 5;
+.foo {val: foo(1, 2, $list...)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/341-test_function_splat_expression.scss b/theme-compiler/tests/resources/sasslang/scss/341-test_function_splat_expression.scss
new file mode 100644
index 0000000000..7daa63618a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/341-test_function_splat_expression.scss
@@ -0,0 +1,5 @@
+@function foo($a, $b, $c, $d) {
+ @return "a: #{$a}, b: #{$b}, c: #{$c}, d: #{$d}";
+}
+
+.foo {val: foo(1, (2, 3, 4)...)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/342-test_function_var_and_splat_args_pass_through_keywords.scss b/theme-compiler/tests/resources/sasslang/scss/342-test_function_var_and_splat_args_pass_through_keywords.scss
new file mode 100644
index 0000000000..99841a75d2
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/342-test_function_var_and_splat_args_pass_through_keywords.scss
@@ -0,0 +1,9 @@
+@function foo($a...) {
+ @return bar($a...);
+}
+
+@function bar($b, $c, $a) {
+ @return "a: #{$a}, b: #{$b}, c: #{$c}";
+}
+
+.foo {val: foo(1, $c: 2, $a: 3)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/343-test_function_var_args.scss b/theme-compiler/tests/resources/sasslang/scss/343-test_function_var_args.scss
new file mode 100644
index 0000000000..17fcb201a7
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/343-test_function_var_args.scss
@@ -0,0 +1,5 @@
+@function foo($a, $b...) {
+ @return "a: #{$a}, b: #{$b}";
+}
+
+.foo {val: foo(1, 2, 3, 4)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/344-test_function_var_args_act_like_list.scss b/theme-compiler/tests/resources/sasslang/scss/344-test_function_var_args_act_like_list.scss
new file mode 100644
index 0000000000..5d761edbbb
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/344-test_function_var_args_act_like_list.scss
@@ -0,0 +1,5 @@
+@function foo($a, $b...) {
+ @return "a: #{length($b)}, b: #{nth($b, 2)}";
+}
+
+.foo {val: foo(1, 2, 3, 4)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/345-test_function_var_args_passed_to_native.scss b/theme-compiler/tests/resources/sasslang/scss/345-test_function_var_args_passed_to_native.scss
new file mode 100644
index 0000000000..3dcb5473cd
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/345-test_function_var_args_passed_to_native.scss
@@ -0,0 +1,5 @@
+@function foo($args...) {
+ @return adjust-color($args...);
+}
+
+.foo {val: foo(#102030, $blue: 5)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/346-test_guard_assign.scss b/theme-compiler/tests/resources/sasslang/scss/346-test_guard_assign.scss
new file mode 100644
index 0000000000..b230ee8f0c
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/346-test_guard_assign.scss
@@ -0,0 +1,4 @@
+$var: 1;
+$var: 2 !default;
+
+foo {a: $var}
diff --git a/theme-compiler/tests/resources/sasslang/scss/347-test_http_import.scss b/theme-compiler/tests/resources/sasslang/scss/347-test_http_import.scss
new file mode 100644
index 0000000000..89e12cb973
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/347-test_http_import.scss
@@ -0,0 +1 @@
+@import "http://fonts.googleapis.com/css?family=Droid+Sans";
diff --git a/theme-compiler/tests/resources/sasslang/scss/348-test_if_directive.scss b/theme-compiler/tests/resources/sasslang/scss/348-test_if_directive.scss
new file mode 100644
index 0000000000..bcfc67a0de
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/348-test_if_directive.scss
@@ -0,0 +1,2 @@
+@if "foo" == "foo" {foo {a: b}}
+@if "foo" != "foo" {bar {a: b}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/349-test_import_with_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/349-test_import_with_interpolation.scss
new file mode 100644
index 0000000000..3d73357c60
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/349-test_import_with_interpolation.scss
@@ -0,0 +1,2 @@
+$family: unquote("Droid+Sans");
+@import url("http://fonts.googleapis.com/css?family=#{$family}");
diff --git a/theme-compiler/tests/resources/sasslang/scss/35-test_extend_redundancy_elimination_when_it_would_reduce_specificity.scss b/theme-compiler/tests/resources/sasslang/scss/35-test_extend_redundancy_elimination_when_it_would_reduce_specificity.scss
new file mode 100644
index 0000000000..30a9d092cb
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/35-test_extend_redundancy_elimination_when_it_would_reduce_specificity.scss
@@ -0,0 +1,2 @@
+a {a: b}
+a.foo {@extend a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/350-test_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/350-test_interpolation.scss
new file mode 100644
index 0000000000..bb9c9a2c8f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/350-test_interpolation.scss
@@ -0,0 +1,2 @@
+$bar : "#foo";
+ul li#{$bar} a span.label { foo: bar; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/351-test_interpolation_with_bracket_on_next_line.scss b/theme-compiler/tests/resources/sasslang/scss/351-test_interpolation_with_bracket_on_next_line.scss
new file mode 100644
index 0000000000..40c6bc3c30
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/351-test_interpolation_with_bracket_on_next_line.scss
@@ -0,0 +1,2 @@
+a.#{"foo"} b
+{color: red}
diff --git a/theme-compiler/tests/resources/sasslang/scss/352-test_keyword_args_in_functions.scss b/theme-compiler/tests/resources/sasslang/scss/352-test_keyword_args_in_functions.scss
new file mode 100644
index 0000000000..8b4feb6fcb
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/352-test_keyword_args_in_functions.scss
@@ -0,0 +1 @@
+.keyed { color: rgba($color: #a7c, $alpha: 0.4) }
diff --git a/theme-compiler/tests/resources/sasslang/scss/353-test_line_comment_in_script.scss b/theme-compiler/tests/resources/sasslang/scss/353-test_line_comment_in_script.scss
new file mode 100644
index 0000000000..ab0b69d5a7
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/353-test_line_comment_in_script.scss
@@ -0,0 +1,2 @@
+foo {a: 1 + // flang }
+ blang }
diff --git a/theme-compiler/tests/resources/sasslang/scss/354-test_media_import.scss b/theme-compiler/tests/resources/sasslang/scss/354-test_media_import.scss
new file mode 100644
index 0000000000..09f590534e
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/354-test_media_import.scss
@@ -0,0 +1 @@
+@import "./fonts.sass" all;
diff --git a/theme-compiler/tests/resources/sasslang/scss/355-test_media_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/355-test_media_interpolation.scss
new file mode 100644
index 0000000000..92f58436dd
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/355-test_media_interpolation.scss
@@ -0,0 +1,2 @@
+$baz: 12;
+@media bar#{$baz} {a: b}
diff --git a/theme-compiler/tests/resources/sasslang/scss/356-test_media_interpolation_with_reparse.scss b/theme-compiler/tests/resources/sasslang/scss/356-test_media_interpolation_with_reparse.scss
new file mode 100644
index 0000000000..abc579a3ef
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/356-test_media_interpolation_with_reparse.scss
@@ -0,0 +1,11 @@
+$constraint: "(max-width: 300px)";
+$fragment: "nd #{$constraint}";
+$comma: "een, pri";
+@media screen and #{$constraint} {a: b}
+@media screen {
+ @media #{$constraint} {a: b}
+}
+@media screen a#{$fragment} {a: b}
+@media scr#{$comma}nt {
+ @media #{$constraint} {a: b}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/357-test_mixin_content.scss b/theme-compiler/tests/resources/sasslang/scss/357-test_mixin_content.scss
new file mode 100644
index 0000000000..96f50a7f28
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/357-test_mixin_content.scss
@@ -0,0 +1,13 @@
+$color: blue;
+@mixin context($class, $color: red) {
+ .#{$class} {
+ background-color: $color;
+ @content;
+ border-color: $color;
+ }
+}
+@include context(parent) {
+ @include context(child, $color: yellow) {
+ color: $color;
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/358-test_mixin_empty_var_args.scss b/theme-compiler/tests/resources/sasslang/scss/358-test_mixin_empty_var_args.scss
new file mode 100644
index 0000000000..862748d5cd
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/358-test_mixin_empty_var_args.scss
@@ -0,0 +1,6 @@
+@mixin foo($a, $b...) {
+ a: $a;
+ b: length($b);
+}
+
+.foo {@include foo(1)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/359-test_mixin_splat_args.scss b/theme-compiler/tests/resources/sasslang/scss/359-test_mixin_splat_args.scss
new file mode 100644
index 0000000000..a543bce700
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/359-test_mixin_splat_args.scss
@@ -0,0 +1,9 @@
+@mixin foo($a, $b, $c, $d) {
+ a: $a;
+ b: $b;
+ c: $c;
+ d: $d;
+}
+
+$list: 2, 3, 4;
+.foo {@include foo(1, $list...)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/36-test_extend_self_loop.scss b/theme-compiler/tests/resources/sasslang/scss/36-test_extend_self_loop.scss
new file mode 100644
index 0000000000..ac40f00573
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/36-test_extend_self_loop.scss
@@ -0,0 +1 @@
+.foo {a: b; @extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/360-test_mixin_splat_args_with_var_args.scss b/theme-compiler/tests/resources/sasslang/scss/360-test_mixin_splat_args_with_var_args.scss
new file mode 100644
index 0000000000..fc614fa649
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/360-test_mixin_splat_args_with_var_args.scss
@@ -0,0 +1,7 @@
+@mixin foo($a, $b...) {
+ a: $a;
+ b: $b;
+}
+
+$list: 2, 3, 4;
+.foo {@include foo(1, $list...)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/361-test_mixin_splat_args_with_var_args_and_normal_args.scss b/theme-compiler/tests/resources/sasslang/scss/361-test_mixin_splat_args_with_var_args_and_normal_args.scss
new file mode 100644
index 0000000000..4e277b7988
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/361-test_mixin_splat_args_with_var_args_and_normal_args.scss
@@ -0,0 +1,8 @@
+@mixin foo($a, $b, $c...) {
+ a: $a;
+ b: $b;
+ c: $c;
+}
+
+$list: 2, 3, 4;
+.foo {@include foo(1, $list...)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/362-test_mixin_splat_args_with_var_args_preserves_separator.scss b/theme-compiler/tests/resources/sasslang/scss/362-test_mixin_splat_args_with_var_args_preserves_separator.scss
new file mode 100644
index 0000000000..c03d7e7612
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/362-test_mixin_splat_args_with_var_args_preserves_separator.scss
@@ -0,0 +1,7 @@
+@mixin foo($a, $b...) {
+ a: $a;
+ b: $b;
+}
+
+$list: 3 4 5;
+.foo {@include foo(1, 2, $list...)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/363-test_mixin_splat_expression.scss b/theme-compiler/tests/resources/sasslang/scss/363-test_mixin_splat_expression.scss
new file mode 100644
index 0000000000..aea2508caa
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/363-test_mixin_splat_expression.scss
@@ -0,0 +1,8 @@
+@mixin foo($a, $b, $c, $d) {
+ a: $a;
+ b: $b;
+ c: $c;
+ d: $d;
+}
+
+.foo {@include foo(1, (2, 3, 4)...)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/364-test_mixin_var_and_splat_args_pass_through_keywords.scss b/theme-compiler/tests/resources/sasslang/scss/364-test_mixin_var_and_splat_args_pass_through_keywords.scss
new file mode 100644
index 0000000000..7bc3249da1
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/364-test_mixin_var_and_splat_args_pass_through_keywords.scss
@@ -0,0 +1,11 @@
+@mixin foo($a...) {
+ @include bar($a...);
+}
+
+@mixin bar($b, $c, $a) {
+ a: $a;
+ b: $b;
+ c: $c;
+}
+
+.foo {@include foo(1, $c: 2, $a: 3)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/365-test_mixin_var_args.scss b/theme-compiler/tests/resources/sasslang/scss/365-test_mixin_var_args.scss
new file mode 100644
index 0000000000..0cf6efa77b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/365-test_mixin_var_args.scss
@@ -0,0 +1,6 @@
+@mixin foo($a, $b...) {
+ a: $a;
+ b: $b;
+}
+
+.foo {@include foo(1, 2, 3, 4)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/366-test_mixin_var_args_act_like_list.scss b/theme-compiler/tests/resources/sasslang/scss/366-test_mixin_var_args_act_like_list.scss
new file mode 100644
index 0000000000..a13332857d
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/366-test_mixin_var_args_act_like_list.scss
@@ -0,0 +1,6 @@
+@mixin foo($a, $b...) {
+ a: length($b);
+ b: nth($b, 2);
+}
+
+.foo {@include foo(1, 2, 3, 4)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/367-test_mixin_with_keyword_args.scss b/theme-compiler/tests/resources/sasslang/scss/367-test_mixin_with_keyword_args.scss
new file mode 100644
index 0000000000..db6dd27f18
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/367-test_mixin_with_keyword_args.scss
@@ -0,0 +1,6 @@
+@mixin a-mixin($required, $arg1: default-val1, $arg2: default-val2) {
+ required: $required;
+ arg1: $arg1;
+ arg2: $arg2;
+}
+.mixed { @include a-mixin(foo, $arg2: non-default-val2); }
diff --git a/theme-compiler/tests/resources/sasslang/scss/368-test_mixins_with_args.scss b/theme-compiler/tests/resources/sasslang/scss/368-test_mixins_with_args.scss
new file mode 100644
index 0000000000..3ba39ecac2
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/368-test_mixins_with_args.scss
@@ -0,0 +1,3 @@
+@mixin foo($a) {a: $a}
+
+.foo {@include foo(bar)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/369-test_mixins_with_empty_args.scss b/theme-compiler/tests/resources/sasslang/scss/369-test_mixins_with_empty_args.scss
new file mode 100644
index 0000000000..f608979293
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/369-test_mixins_with_empty_args.scss
@@ -0,0 +1,3 @@
+@mixin foo() {a: b}
+
+.foo {@include foo();}
diff --git a/theme-compiler/tests/resources/sasslang/scss/37-test_extend_warns_when_extendee_doesnt_exist.scss b/theme-compiler/tests/resources/sasslang/scss/37-test_extend_warns_when_extendee_doesnt_exist.scss
new file mode 100644
index 0000000000..cd54108c97
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/37-test_extend_warns_when_extendee_doesnt_exist.scss
@@ -0,0 +1 @@
+.foo {@extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/370-test_moz_document_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/370-test_moz_document_interpolation.scss
new file mode 100644
index 0000000000..fd76408d9f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/370-test_moz_document_interpolation.scss
@@ -0,0 +1,7 @@
+$domain: "sass-lang.com";
+@-moz-document url(http://#{$domain}/),
+ url-prefix(http://#{$domain}/docs),
+ domain(#{$domain}),
+ #{domain($domain)} {
+ .foo {a: b}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/371-test_multiline_var.scss b/theme-compiler/tests/resources/sasslang/scss/371-test_multiline_var.scss
new file mode 100644
index 0000000000..8d127a578f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/371-test_multiline_var.scss
@@ -0,0 +1,10 @@
+foo {
+ $var1: 1 +
+ 2;
+ $var2: true and
+ false;
+ $var3: a b
+ c;
+ a: $var1;
+ b: $var2;
+ c: $var3; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/372-test_namespace_properties.scss b/theme-compiler/tests/resources/sasslang/scss/372-test_namespace_properties.scss
new file mode 100644
index 0000000000..94e24fefdd
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/372-test_namespace_properties.scss
@@ -0,0 +1,5 @@
+foo {
+ bar: baz;
+ bang: {
+ bip: 1px;
+ bop: bar;}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/373-test_namespace_properties_with_script_value.scss b/theme-compiler/tests/resources/sasslang/scss/373-test_namespace_properties_with_script_value.scss
new file mode 100644
index 0000000000..e99edfd640
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/373-test_namespace_properties_with_script_value.scss
@@ -0,0 +1,4 @@
+foo {
+ bar: baz + bang {
+ bip: bop;
+ bing: bop; }}
diff --git a/theme-compiler/tests/resources/sasslang/scss/374-test_namespace_properties_with_value.scss b/theme-compiler/tests/resources/sasslang/scss/374-test_namespace_properties_with_value.scss
new file mode 100644
index 0000000000..9d1985f4d8
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/374-test_namespace_properties_with_value.scss
@@ -0,0 +1,4 @@
+foo {
+ bar: baz {
+ bip: bop;
+ bing: bop; }}
diff --git a/theme-compiler/tests/resources/sasslang/scss/375-test_nested_function_def.scss b/theme-compiler/tests/resources/sasslang/scss/375-test_nested_function_def.scss
new file mode 100644
index 0000000000..b9a478d2ee
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/375-test_nested_function_def.scss
@@ -0,0 +1,5 @@
+foo {
+ @function foo() {@return 1}
+ a: foo(); }
+
+bar {b: foo()}
diff --git a/theme-compiler/tests/resources/sasslang/scss/376-test_nested_function_shadow.scss b/theme-compiler/tests/resources/sasslang/scss/376-test_nested_function_shadow.scss
new file mode 100644
index 0000000000..d69639668e
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/376-test_nested_function_shadow.scss
@@ -0,0 +1,8 @@
+@function foo() {@return 1}
+
+foo {
+ @function foo() {@return 2}
+ a: foo();
+}
+
+baz {b: foo()}
diff --git a/theme-compiler/tests/resources/sasslang/scss/377-test_nested_mixin_def.scss b/theme-compiler/tests/resources/sasslang/scss/377-test_nested_mixin_def.scss
new file mode 100644
index 0000000000..6069639d02
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/377-test_nested_mixin_def.scss
@@ -0,0 +1,3 @@
+foo {
+ @mixin bar {a: b}
+ @include bar; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/378-test_nested_mixin_shadow.scss b/theme-compiler/tests/resources/sasslang/scss/378-test_nested_mixin_shadow.scss
new file mode 100644
index 0000000000..9b5870089a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/378-test_nested_mixin_shadow.scss
@@ -0,0 +1,8 @@
+@mixin bar {a: b}
+
+foo {
+ @mixin bar {c: d}
+ @include bar;
+}
+
+baz {@include bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/379-test_nested_namespace_properties.scss b/theme-compiler/tests/resources/sasslang/scss/379-test_nested_namespace_properties.scss
new file mode 100644
index 0000000000..7bfea39aa4
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/379-test_nested_namespace_properties.scss
@@ -0,0 +1,6 @@
+foo {
+ bar: baz;
+ bang: {
+ bip: 1px;
+ bop: bar;
+ blat:{baf:bort}}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/38-test_extend_warns_when_extension_fails.scss b/theme-compiler/tests/resources/sasslang/scss/38-test_extend_warns_when_extension_fails.scss
new file mode 100644
index 0000000000..8381c7279a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/38-test_extend_warns_when_extension_fails.scss
@@ -0,0 +1,2 @@
+a.bar {a: b}
+b.foo {@extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/380-test_nested_rules.scss b/theme-compiler/tests/resources/sasslang/scss/380-test_nested_rules.scss
new file mode 100644
index 0000000000..9ba420ee94
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/380-test_nested_rules.scss
@@ -0,0 +1 @@
+foo {bar {a: b}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/381-test_nested_rules_with_declarations.scss b/theme-compiler/tests/resources/sasslang/scss/381-test_nested_rules_with_declarations.scss
new file mode 100644
index 0000000000..3645322ad6
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/381-test_nested_rules_with_declarations.scss
@@ -0,0 +1,3 @@
+foo {
+ a: b;
+ bar {c: d}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/382-test_nested_rules_with_fancy_selectors.scss b/theme-compiler/tests/resources/sasslang/scss/382-test_nested_rules_with_fancy_selectors.scss
new file mode 100644
index 0000000000..f4f7bd3445
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/382-test_nested_rules_with_fancy_selectors.scss
@@ -0,0 +1,4 @@
+foo {
+ .bar {a: b}
+ :baz {c: d}
+ bang:bop {e: f}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/383-test_newline_selector_rendered_multiple_times.scss b/theme-compiler/tests/resources/sasslang/scss/383-test_newline_selector_rendered_multiple_times.scss
new file mode 100644
index 0000000000..7d193aaa00
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/383-test_newline_selector_rendered_multiple_times.scss
@@ -0,0 +1,8 @@
+@for $i from 1 through 2 {
+ form {
+ input,
+ select {
+ color: white;
+ }
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/384-test_newlines_in_selectors.scss b/theme-compiler/tests/resources/sasslang/scss/384-test_newlines_in_selectors.scss
new file mode 100644
index 0000000000..e6872f75a8
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/384-test_newlines_in_selectors.scss
@@ -0,0 +1,2 @@
+foo
+bar {a: b}
diff --git a/theme-compiler/tests/resources/sasslang/scss/385-test_newlines_removed_from_selectors_when_compressed.scss b/theme-compiler/tests/resources/sasslang/scss/385-test_newlines_removed_from_selectors_when_compressed.scss
new file mode 100644
index 0000000000..c04a1ee63a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/385-test_newlines_removed_from_selectors_when_compressed.scss
@@ -0,0 +1,6 @@
+a
+, b {
+ z & {
+ display: block;
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/386-test_no_buffer_overflow.scss b/theme-compiler/tests/resources/sasslang/scss/386-test_no_buffer_overflow.scss
new file mode 100644
index 0000000000..c56e4e5db2
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/386-test_no_buffer_overflow.scss
@@ -0,0 +1,18 @@
+.aaa {
+ background-color: white;
+}
+.aaa .aaa .aaa {
+ background-color: black;
+}
+.bbb {
+ @extend .aaa;
+}
+.xxx {
+ @extend .bbb;
+}
+.yyy {
+ @extend .bbb;
+}
+.zzz {
+ @extend .bbb;
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/387-test_no_namespace_properties_without_space.scss b/theme-compiler/tests/resources/sasslang/scss/387-test_no_namespace_properties_without_space.scss
new file mode 100644
index 0000000000..b7184dea57
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/387-test_no_namespace_properties_without_space.scss
@@ -0,0 +1,3 @@
+foo {
+ bar:baz {
+ bip: bop }}
diff --git a/theme-compiler/tests/resources/sasslang/scss/388-test_one_line_comments.scss b/theme-compiler/tests/resources/sasslang/scss/388-test_one_line_comments.scss
new file mode 100644
index 0000000000..59f75b6777
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/388-test_one_line_comments.scss
@@ -0,0 +1,3 @@
+.foo {// bar: baz;}
+ baz: bang; //}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/389-test_options_passed_to_script.scss b/theme-compiler/tests/resources/sasslang/scss/389-test_options_passed_to_script.scss
new file mode 100644
index 0000000000..3d725d5d3f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/389-test_options_passed_to_script.scss
@@ -0,0 +1 @@
+foo {color: darken(black, 10%)}
diff --git a/theme-compiler/tests/resources/sasslang/scss/39-test_extend_with_subject_fails_with_conflicting_subject.scss b/theme-compiler/tests/resources/sasslang/scss/39-test_extend_with_subject_fails_with_conflicting_subject.scss
new file mode 100644
index 0000000000..bb47652161
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/39-test_extend_with_subject_fails_with_conflicting_subject.scss
@@ -0,0 +1,2 @@
+x! .bar {a: b}
+y! .bap {@extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/390-test_parent_selector_with_parent_and_subject.scss b/theme-compiler/tests/resources/sasslang/scss/390-test_parent_selector_with_parent_and_subject.scss
new file mode 100644
index 0000000000..646238f379
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/390-test_parent_selector_with_parent_and_subject.scss
@@ -0,0 +1,3 @@
+$subject: "!";
+foo {
+ bar &.baz#{$subject} .bip {c: d}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/391-test_parent_selector_with_subject.scss b/theme-compiler/tests/resources/sasslang/scss/391-test_parent_selector_with_subject.scss
new file mode 100644
index 0000000000..fad847940b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/391-test_parent_selector_with_subject.scss
@@ -0,0 +1,5 @@
+foo {
+ bar &.baz! .bip {a: b}}
+
+foo bar {
+ bar &.baz! .bip {c: d}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/392-test_parent_selectors.scss b/theme-compiler/tests/resources/sasslang/scss/392-test_parent_selectors.scss
new file mode 100644
index 0000000000..1106bdfcf2
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/392-test_parent_selectors.scss
@@ -0,0 +1,3 @@
+foo {
+ &:hover {a: b}
+ bar &.baz {c: d}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/393-test_passing_all_as_keyword_args_in_opposite_order.scss b/theme-compiler/tests/resources/sasslang/scss/393-test_passing_all_as_keyword_args_in_opposite_order.scss
new file mode 100644
index 0000000000..8830d000b1
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/393-test_passing_all_as_keyword_args_in_opposite_order.scss
@@ -0,0 +1,5 @@
+@mixin a-mixin($required, $arg1: default-val1, $arg2: default-val2) {
+ required: $required;
+ arg1: $arg1;
+ arg2: $arg2; }
+.mixed { @include a-mixin($arg2: non-default-val2, $arg1: non-default-val1, $required: foo); }
diff --git a/theme-compiler/tests/resources/sasslang/scss/394-test_passing_required_args_as_a_keyword_arg.scss b/theme-compiler/tests/resources/sasslang/scss/394-test_passing_required_args_as_a_keyword_arg.scss
new file mode 100644
index 0000000000..2e5ef27a0d
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/394-test_passing_required_args_as_a_keyword_arg.scss
@@ -0,0 +1,5 @@
+@mixin a-mixin($required, $arg1: default-val1, $arg2: default-val2) {
+ required: $required;
+ arg1: $arg1;
+ arg2: $arg2; }
+.mixed { @include a-mixin($required: foo); }
diff --git a/theme-compiler/tests/resources/sasslang/scss/395-test_prop_name_interpolation_after_hyphen.scss b/theme-compiler/tests/resources/sasslang/scss/395-test_prop_name_interpolation_after_hyphen.scss
new file mode 100644
index 0000000000..b5c95f6baa
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/395-test_prop_name_interpolation_after_hyphen.scss
@@ -0,0 +1 @@
+a { -#{"foo"}-bar: b; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/396-test_prop_name_only_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/396-test_prop_name_only_interpolation.scss
new file mode 100644
index 0000000000..ffa53d221d
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/396-test_prop_name_only_interpolation.scss
@@ -0,0 +1 @@
+foo {#{"baz" + "bang"}: blip}
diff --git a/theme-compiler/tests/resources/sasslang/scss/397-test_random_directive_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/397-test_random_directive_interpolation.scss
new file mode 100644
index 0000000000..b03fc8f115
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/397-test_random_directive_interpolation.scss
@@ -0,0 +1,7 @@
+$domain: "sass-lang.com";
+@foo url(http://#{$domain}/),
+ #{domain($domain)},
+ "foo#{'ba' + 'r'}baz",
+ foo#{'ba' + 'r'}baz {
+ .foo {a: b}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/398-test_reference_combinator_with_parent_ref.scss b/theme-compiler/tests/resources/sasslang/scss/398-test_reference_combinator_with_parent_ref.scss
new file mode 100644
index 0000000000..fcef052421
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/398-test_reference_combinator_with_parent_ref.scss
@@ -0,0 +1 @@
+a {& /foo/ b {c: d}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/399-test_sass_script.scss b/theme-compiler/tests/resources/sasslang/scss/399-test_sass_script.scss
new file mode 100644
index 0000000000..a1fe64d4f7
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/399-test_sass_script.scss
@@ -0,0 +1,5 @@
+foo {
+ a: 1 + 2;
+ b: 1 - 2;
+ c: foo + bar;
+ d: floor(12.3px); }
diff --git a/theme-compiler/tests/resources/sasslang/scss/4-test_basic_placeholder_selector.scss b/theme-compiler/tests/resources/sasslang/scss/4-test_basic_placeholder_selector.scss
new file mode 100644
index 0000000000..affb7d91dd
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/4-test_basic_placeholder_selector.scss
@@ -0,0 +1,2 @@
+%foo {a: b}
+.bar {@extend %foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/40-test_extend_with_subject_retains_subject_on_extender.scss b/theme-compiler/tests/resources/sasslang/scss/40-test_extend_with_subject_retains_subject_on_extender.scss
new file mode 100644
index 0000000000..fd48ca58a9
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/40-test_extend_with_subject_retains_subject_on_extender.scss
@@ -0,0 +1,2 @@
+.foo .bar {a: b}
+.bip! .bap {@extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/400-test_script_in_media.scss b/theme-compiler/tests/resources/sasslang/scss/400-test_script_in_media.scss
new file mode 100644
index 0000000000..e9d6909213
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/400-test_script_in_media.scss
@@ -0,0 +1,5 @@
+$media1: screen;
+$media2: print;
+$var: -webkit-min-device-pixel-ratio;
+$val: 20;
+@media #{$media1} and ($var: $val), only #{$media2} {a: b}
diff --git a/theme-compiler/tests/resources/sasslang/scss/401-test_selector_interpolation_at_attr_beginning.scss b/theme-compiler/tests/resources/sasslang/scss/401-test_selector_interpolation_at_attr_beginning.scss
new file mode 100644
index 0000000000..16bf116364
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/401-test_selector_interpolation_at_attr_beginning.scss
@@ -0,0 +1,2 @@
+$zzz: zzz;
+[#{$zzz}=foo] { a: b; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/402-test_selector_interpolation_at_attr_end.scss b/theme-compiler/tests/resources/sasslang/scss/402-test_selector_interpolation_at_attr_end.scss
new file mode 100644
index 0000000000..503b146e3f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/402-test_selector_interpolation_at_attr_end.scss
@@ -0,0 +1,2 @@
+$zzz: zzz;
+[foo=#{$zzz}] { a: b; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/403-test_selector_interpolation_at_class_begininng.scss b/theme-compiler/tests/resources/sasslang/scss/403-test_selector_interpolation_at_class_begininng.scss
new file mode 100644
index 0000000000..b939dbf0a0
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/403-test_selector_interpolation_at_class_begininng.scss
@@ -0,0 +1,2 @@
+$zzz: zzz;
+.#{$zzz} { a: b; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/404-test_selector_interpolation_at_dashes.scss b/theme-compiler/tests/resources/sasslang/scss/404-test_selector_interpolation_at_dashes.scss
new file mode 100644
index 0000000000..de8ced2a25
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/404-test_selector_interpolation_at_dashes.scss
@@ -0,0 +1,3 @@
+$a : a;
+$b : b;
+div { -foo-#{$a}-#{$b}-foo: foo }
diff --git a/theme-compiler/tests/resources/sasslang/scss/405-test_selector_interpolation_at_id_begininng.scss b/theme-compiler/tests/resources/sasslang/scss/405-test_selector_interpolation_at_id_begininng.scss
new file mode 100644
index 0000000000..6c5f2b017a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/405-test_selector_interpolation_at_id_begininng.scss
@@ -0,0 +1,2 @@
+$zzz: zzz;
+##{$zzz} { a: b; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/406-test_selector_interpolation_at_pseudo_begininng.scss b/theme-compiler/tests/resources/sasslang/scss/406-test_selector_interpolation_at_pseudo_begininng.scss
new file mode 100644
index 0000000000..4733bfd12a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/406-test_selector_interpolation_at_pseudo_begininng.scss
@@ -0,0 +1,2 @@
+$zzz: zzz;
+:#{$zzz}::#{$zzz} { a: b; }
diff --git a/theme-compiler/tests/resources/sasslang/scss/407-test_selector_interpolation_before_element_name.scss b/theme-compiler/tests/resources/sasslang/scss/407-test_selector_interpolation_before_element_name.scss
new file mode 100644
index 0000000000..12a2a9055a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/407-test_selector_interpolation_before_element_name.scss
@@ -0,0 +1 @@
+#{"foo" + " bar"}baz {a: b}
diff --git a/theme-compiler/tests/resources/sasslang/scss/408-test_selector_interpolation_in_pseudoclass.scss b/theme-compiler/tests/resources/sasslang/scss/408-test_selector_interpolation_in_pseudoclass.scss
new file mode 100644
index 0000000000..271ae20576
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/408-test_selector_interpolation_in_pseudoclass.scss
@@ -0,0 +1 @@
+foo:nth-child(#{5 + "n"}) {a: b}
diff --git a/theme-compiler/tests/resources/sasslang/scss/409-test_selector_interpolation_in_reference_combinator.scss b/theme-compiler/tests/resources/sasslang/scss/409-test_selector_interpolation_in_reference_combinator.scss
new file mode 100644
index 0000000000..867692ff24
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/409-test_selector_interpolation_in_reference_combinator.scss
@@ -0,0 +1,4 @@
+$a: a;
+$b: b;
+$c: c;
+.foo /#{$a}/ .bar /#{$b}|#{$c}/ .baz {a: b}
diff --git a/theme-compiler/tests/resources/sasslang/scss/41-test_extend_with_subject_retains_subject_on_target.scss b/theme-compiler/tests/resources/sasslang/scss/41-test_extend_with_subject_retains_subject_on_target.scss
new file mode 100644
index 0000000000..8fde815f1d
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/41-test_extend_with_subject_retains_subject_on_target.scss
@@ -0,0 +1,2 @@
+.foo! .bar {a: b}
+.bip .bap {@extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/410-test_selector_interpolation_in_string.scss b/theme-compiler/tests/resources/sasslang/scss/410-test_selector_interpolation_in_string.scss
new file mode 100644
index 0000000000..185d9dcb13
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/410-test_selector_interpolation_in_string.scss
@@ -0,0 +1 @@
+foo[val="bar #{"foo" + " bar"} baz"] {a: b}
diff --git a/theme-compiler/tests/resources/sasslang/scss/411-test_selector_only_interpolation.scss b/theme-compiler/tests/resources/sasslang/scss/411-test_selector_only_interpolation.scss
new file mode 100644
index 0000000000..7f27bf073f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/411-test_selector_only_interpolation.scss
@@ -0,0 +1 @@
+#{"foo" + " bar"} {a: b}
diff --git a/theme-compiler/tests/resources/sasslang/scss/412-test_several_namespace_properties.scss b/theme-compiler/tests/resources/sasslang/scss/412-test_several_namespace_properties.scss
new file mode 100644
index 0000000000..d2a5232f95
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/412-test_several_namespace_properties.scss
@@ -0,0 +1,10 @@
+foo {
+ bar: baz;
+ bang: {
+ bip: 1px;
+ bop: bar;}
+ buzz: {
+ fram: "foo";
+ frum: moo;
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/413-test_star_plus_and_parent.scss b/theme-compiler/tests/resources/sasslang/scss/413-test_star_plus_and_parent.scss
new file mode 100644
index 0000000000..7a28dd584d
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/413-test_star_plus_and_parent.scss
@@ -0,0 +1 @@
+foo {*+html & {a: b}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/414-test_supports_bubbling.scss b/theme-compiler/tests/resources/sasslang/scss/414-test_supports_bubbling.scss
new file mode 100644
index 0000000000..86f75997b8
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/414-test_supports_bubbling.scss
@@ -0,0 +1,8 @@
+a {
+ @supports (foo: bar) {
+ b: c;
+ @supports (baz: bang) {
+ d: e;
+ }
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/415-test_supports_with_expressions.scss b/theme-compiler/tests/resources/sasslang/scss/415-test_supports_with_expressions.scss
new file mode 100644
index 0000000000..a131950d46
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/415-test_supports_with_expressions.scss
@@ -0,0 +1,6 @@
+$query: "(feature1: val)";
+$feature: feature2;
+$val: val;
+@supports #{$query} and ($feature: $val) or (not ($feature + 3: $val + 4)) {
+ foo {a: b}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/416-test_trailing_comma_in_selector.scss b/theme-compiler/tests/resources/sasslang/scss/416-test_trailing_comma_in_selector.scss
new file mode 100644
index 0000000000..5615804797
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/416-test_trailing_comma_in_selector.scss
@@ -0,0 +1,4 @@
+#foo #bar,,
+,#baz #boom, {a: b}
+
+#bip #bop, ,, {c: d}
diff --git a/theme-compiler/tests/resources/sasslang/scss/417-test_unicode_variables.scss b/theme-compiler/tests/resources/sasslang/scss/417-test_unicode_variables.scss
new file mode 100644
index 0000000000..374d498033
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/417-test_unicode_variables.scss
@@ -0,0 +1,3 @@
+$vär: foo;
+
+blat {a: $vär}
diff --git a/theme-compiler/tests/resources/sasslang/scss/418-test_url_import.scss b/theme-compiler/tests/resources/sasslang/scss/418-test_url_import.scss
new file mode 100644
index 0000000000..e4ebe59e66
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/418-test_url_import.scss
@@ -0,0 +1 @@
+@import url(fonts.sass);
diff --git a/theme-compiler/tests/resources/sasslang/scss/419-test_variables.scss b/theme-compiler/tests/resources/sasslang/scss/419-test_variables.scss
new file mode 100644
index 0000000000..90275fa67f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/419-test_variables.scss
@@ -0,0 +1,3 @@
+$var: foo;
+
+blat {a: $var}
diff --git a/theme-compiler/tests/resources/sasslang/scss/42-test_extend_with_subject_transfers_subject_to_extender.scss b/theme-compiler/tests/resources/sasslang/scss/42-test_extend_with_subject_transfers_subject_to_extender.scss
new file mode 100644
index 0000000000..6bc9174dde
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/42-test_extend_with_subject_transfers_subject_to_extender.scss
@@ -0,0 +1,2 @@
+foo bar! baz {a: b}
+.bip .bap {@extend bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/420-test_warn_directive.scss b/theme-compiler/tests/resources/sasslang/scss/420-test_warn_directive.scss
new file mode 100644
index 0000000000..53546355cc
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/420-test_warn_directive.scss
@@ -0,0 +1,3 @@
+@mixin foo { @warn "this is a mixin";}
+@warn "this is a warning";
+bar {c: d; @include foo;}
diff --git a/theme-compiler/tests/resources/sasslang/scss/421-test_weird_added_space.scss b/theme-compiler/tests/resources/sasslang/scss/421-test_weird_added_space.scss
new file mode 100644
index 0000000000..fc86eb4b32
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/421-test_weird_added_space.scss
@@ -0,0 +1,5 @@
+$value : bip;
+
+foo {
+ bar: -moz-#{$value};
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/422-test_while_directive.scss b/theme-compiler/tests/resources/sasslang/scss/422-test_while_directive.scss
new file mode 100644
index 0000000000..5058186ea0
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/422-test_while_directive.scss
@@ -0,0 +1,8 @@
+$i: 1;
+
+.foo {
+ @while $i != 5 {
+ a: $i;
+ $i: $i + 1;
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/43-test_extend_with_subject_transfers_subject_to_target.scss b/theme-compiler/tests/resources/sasslang/scss/43-test_extend_with_subject_transfers_subject_to_target.scss
new file mode 100644
index 0000000000..1ad5c6e3be
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/43-test_extend_with_subject_transfers_subject_to_target.scss
@@ -0,0 +1,2 @@
+a.foo .bar {a: b}
+.bip .bap! {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/44-test_extend_within_and_without_media.scss b/theme-compiler/tests/resources/sasslang/scss/44-test_extend_within_and_without_media.scss
new file mode 100644
index 0000000000..27e00d314d
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/44-test_extend_within_and_without_media.scss
@@ -0,0 +1,5 @@
+.foo {a: b}
+@media screen {
+ .foo {c: d}
+ .bar {@extend .foo}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/45-test_extend_within_and_without_nested_directives.scss b/theme-compiler/tests/resources/sasslang/scss/45-test_extend_within_and_without_nested_directives.scss
new file mode 100644
index 0000000000..139408946b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/45-test_extend_within_and_without_nested_directives.scss
@@ -0,0 +1,7 @@
+@media screen {
+ .foo {a: b}
+ @flooblehoof {
+ .foo {c: d}
+ .bar {@extend .foo}
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/46-test_extend_within_and_without_unknown_directive.scss b/theme-compiler/tests/resources/sasslang/scss/46-test_extend_within_and_without_unknown_directive.scss
new file mode 100644
index 0000000000..cdaa3a594d
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/46-test_extend_within_and_without_unknown_directive.scss
@@ -0,0 +1,5 @@
+.foo {a: b}
+@flooblehoof {
+ .foo {c: d}
+ .bar {@extend .foo}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/47-test_extend_within_disparate_media.scss b/theme-compiler/tests/resources/sasslang/scss/47-test_extend_within_disparate_media.scss
new file mode 100644
index 0000000000..27390c4985
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/47-test_extend_within_disparate_media.scss
@@ -0,0 +1,2 @@
+@media screen {.foo {a: b}}
+@media screen {.bar {@extend .foo}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/48-test_extend_within_disparate_nested_directives.scss b/theme-compiler/tests/resources/sasslang/scss/48-test_extend_within_disparate_nested_directives.scss
new file mode 100644
index 0000000000..258109a1a9
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/48-test_extend_within_disparate_nested_directives.scss
@@ -0,0 +1,2 @@
+@media screen {@flooblehoof {.foo {a: b}}}
+@media screen {@flooblehoof {.bar {@extend .foo}}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/49-test_extend_within_disparate_unknown_directive.scss b/theme-compiler/tests/resources/sasslang/scss/49-test_extend_within_disparate_unknown_directive.scss
new file mode 100644
index 0000000000..d7350a9b33
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/49-test_extend_within_disparate_unknown_directive.scss
@@ -0,0 +1,2 @@
+@flooblehoof {.foo {a: b}}
+@flooblehoof {.bar {@extend .foo}}
diff --git a/theme-compiler/tests/resources/sasslang/scss/5-test_chained_extends.scss b/theme-compiler/tests/resources/sasslang/scss/5-test_chained_extends.scss
new file mode 100644
index 0000000000..36a2c1905c
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/5-test_chained_extends.scss
@@ -0,0 +1,4 @@
+.foo {a: b}
+.bar {@extend .foo}
+.baz {@extend .bar}
+.bip {@extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/50-test_extend_within_media.scss b/theme-compiler/tests/resources/sasslang/scss/50-test_extend_within_media.scss
new file mode 100644
index 0000000000..037bfc4b19
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/50-test_extend_within_media.scss
@@ -0,0 +1,4 @@
+@media screen {
+ .foo {a: b}
+ .bar {@extend .foo}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/51-test_extend_within_nested_directives.scss b/theme-compiler/tests/resources/sasslang/scss/51-test_extend_within_nested_directives.scss
new file mode 100644
index 0000000000..41192701e1
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/51-test_extend_within_nested_directives.scss
@@ -0,0 +1,6 @@
+@media screen {
+ @flooblehoof {
+ .foo {a: b}
+ .bar {@extend .foo}
+ }
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/52-test_extend_within_unknown_directive.scss b/theme-compiler/tests/resources/sasslang/scss/52-test_extend_within_unknown_directive.scss
new file mode 100644
index 0000000000..fbaf90bacf
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/52-test_extend_within_unknown_directive.scss
@@ -0,0 +1,4 @@
+@flooblehoof {
+ .foo {a: b}
+ .bar {@extend .foo}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/53-test_extended_parent_and_child_redundancy_elimination.scss b/theme-compiler/tests/resources/sasslang/scss/53-test_extended_parent_and_child_redundancy_elimination.scss
new file mode 100644
index 0000000000..08306a50b4
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/53-test_extended_parent_and_child_redundancy_elimination.scss
@@ -0,0 +1,5 @@
+a {
+ b {a: b}
+ c {@extend b}
+}
+d {@extend a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/54-test_id_unification.scss b/theme-compiler/tests/resources/sasslang/scss/54-test_id_unification.scss
new file mode 100644
index 0000000000..a6e59ad4de
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/54-test_id_unification.scss
@@ -0,0 +1,2 @@
+%-a .foo.bar {a: b}
+#baz {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/55-test_long_extendee.scss b/theme-compiler/tests/resources/sasslang/scss/55-test_long_extendee.scss
new file mode 100644
index 0000000000..26ab65d344
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/55-test_long_extendee.scss
@@ -0,0 +1,2 @@
+.foo.bar {a: b}
+.baz {@extend .foo.bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/56-test_long_extendee_matches_supersets.scss b/theme-compiler/tests/resources/sasslang/scss/56-test_long_extendee_matches_supersets.scss
new file mode 100644
index 0000000000..aba9557471
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/56-test_long_extendee_matches_supersets.scss
@@ -0,0 +1,2 @@
+.foo.bar.bap {a: b}
+.baz {@extend .foo.bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/57-test_long_extendee_requires_all_selectors.scss b/theme-compiler/tests/resources/sasslang/scss/57-test_long_extendee_requires_all_selectors.scss
new file mode 100644
index 0000000000..011d26a83e
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/57-test_long_extendee_requires_all_selectors.scss
@@ -0,0 +1,2 @@
+.foo {a: b}
+.baz {@extend .foo.bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/58-test_long_extendee_runs_unification.scss b/theme-compiler/tests/resources/sasslang/scss/58-test_long_extendee_runs_unification.scss
new file mode 100644
index 0000000000..6edc3cad9c
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/58-test_long_extendee_runs_unification.scss
@@ -0,0 +1,2 @@
+ns|*.foo.bar {a: b}
+a.baz {@extend .foo.bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/59-test_long_extender.scss b/theme-compiler/tests/resources/sasslang/scss/59-test_long_extender.scss
new file mode 100644
index 0000000000..8b25f60734
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/59-test_long_extender.scss
@@ -0,0 +1,2 @@
+.foo.bar {a: b}
+.baz.bang {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/6-test_class_unification.scss b/theme-compiler/tests/resources/sasslang/scss/6-test_class_unification.scss
new file mode 100644
index 0000000000..f3c5744858
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/6-test_class_unification.scss
@@ -0,0 +1,2 @@
+%-a .foo.bar {a: b}
+.baz {@extend .foo} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/60-test_long_extender_aborts_unification.scss b/theme-compiler/tests/resources/sasslang/scss/60-test_long_extender_aborts_unification.scss
new file mode 100644
index 0000000000..5238f3f93e
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/60-test_long_extender_aborts_unification.scss
@@ -0,0 +1,2 @@
+a.foo#bar {a: b}
+h1.baz {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/61-test_long_extender_runs_unification.scss b/theme-compiler/tests/resources/sasslang/scss/61-test_long_extender_runs_unification.scss
new file mode 100644
index 0000000000..3239c26545
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/61-test_long_extender_runs_unification.scss
@@ -0,0 +1,2 @@
+ns|*.foo.bar {a: b}
+a.baz {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/62-test_media_in_placeholder_selector.scss b/theme-compiler/tests/resources/sasslang/scss/62-test_media_in_placeholder_selector.scss
new file mode 100644
index 0000000000..d8916e2eee
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/62-test_media_in_placeholder_selector.scss
@@ -0,0 +1,2 @@
+%foo {bar {@media screen {a: b}}}
+.baz {c: d}
diff --git a/theme-compiler/tests/resources/sasslang/scss/63-test_multiple_extendees.scss b/theme-compiler/tests/resources/sasslang/scss/63-test_multiple_extendees.scss
new file mode 100644
index 0000000000..2c0f5aa72a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/63-test_multiple_extendees.scss
@@ -0,0 +1,3 @@
+.foo {a: b}
+.bar {c: d}
+.baz {@extend .foo; @extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/64-test_multiple_extender_merges_with_superset_selector.scss b/theme-compiler/tests/resources/sasslang/scss/64-test_multiple_extender_merges_with_superset_selector.scss
new file mode 100644
index 0000000000..7041fd6ab2
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/64-test_multiple_extender_merges_with_superset_selector.scss
@@ -0,0 +1,2 @@
+.foo {@extend .bar; @extend .baz}
+a.bar.baz {a: b}
diff --git a/theme-compiler/tests/resources/sasslang/scss/65-test_multiple_extends_with_multiple_extenders_and_single_target.scss b/theme-compiler/tests/resources/sasslang/scss/65-test_multiple_extends_with_multiple_extenders_and_single_target.scss
new file mode 100644
index 0000000000..4c2a4c59f8
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/65-test_multiple_extends_with_multiple_extenders_and_single_target.scss
@@ -0,0 +1,3 @@
+.foo .bar {a: b}
+.baz {@extend .foo}
+.bang {@extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/66-test_multiple_extends_with_single_extender_and_single_target.scss b/theme-compiler/tests/resources/sasslang/scss/66-test_multiple_extends_with_single_extender_and_single_target.scss
new file mode 100644
index 0000000000..48d9c5b733
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/66-test_multiple_extends_with_single_extender_and_single_target.scss
@@ -0,0 +1,2 @@
+.foo .bar {a: b}
+.baz {@extend .foo; @extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/67-test_multiple_targets.scss b/theme-compiler/tests/resources/sasslang/scss/67-test_multiple_targets.scss
new file mode 100644
index 0000000000..fdcba65999
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/67-test_multiple_targets.scss
@@ -0,0 +1,3 @@
+.foo {a: b}
+.bar {@extend .foo}
+.blip .foo {c: d}
diff --git a/theme-compiler/tests/resources/sasslang/scss/68-test_negation_unification.scss b/theme-compiler/tests/resources/sasslang/scss/68-test_negation_unification.scss
new file mode 100644
index 0000000000..05350cc706
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/68-test_negation_unification.scss
@@ -0,0 +1,2 @@
+%-a :not(.foo).baz {a: b}
+:not(.bar) {@extend .baz} -a {@extend %-a}
diff --git a/theme-compiler/tests/resources/sasslang/scss/69-test_nested_extend_loop.scss b/theme-compiler/tests/resources/sasslang/scss/69-test_nested_extend_loop.scss
new file mode 100644
index 0000000000..3143a1f078
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/69-test_nested_extend_loop.scss
@@ -0,0 +1,4 @@
+.bar {
+ a: b;
+ .foo {c: d; @extend .bar}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/7-test_combinator_unification_angle_sibling.scss b/theme-compiler/tests/resources/sasslang/scss/7-test_combinator_unification_angle_sibling.scss
new file mode 100644
index 0000000000..b0120ac34e
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/7-test_combinator_unification_angle_sibling.scss
@@ -0,0 +1,2 @@
+.a > x {a: b}
+.b ~ y {@extend x}
diff --git a/theme-compiler/tests/resources/sasslang/scss/70-test_nested_extender.scss b/theme-compiler/tests/resources/sasslang/scss/70-test_nested_extender.scss
new file mode 100644
index 0000000000..6245cdfda7
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/70-test_nested_extender.scss
@@ -0,0 +1,2 @@
+.foo {a: b}
+foo bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/71-test_nested_extender_aborts_unification.scss b/theme-compiler/tests/resources/sasslang/scss/71-test_nested_extender_aborts_unification.scss
new file mode 100644
index 0000000000..bcbb6e181d
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/71-test_nested_extender_aborts_unification.scss
@@ -0,0 +1,2 @@
+baz.foo {a: b}
+foo bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/72-test_nested_extender_alternates_parents.scss b/theme-compiler/tests/resources/sasslang/scss/72-test_nested_extender_alternates_parents.scss
new file mode 100644
index 0000000000..85975ffda2
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/72-test_nested_extender_alternates_parents.scss
@@ -0,0 +1,2 @@
+.baz .bip .foo {a: b}
+foo .grank bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/73-test_nested_extender_chooses_first_subseq.scss b/theme-compiler/tests/resources/sasslang/scss/73-test_nested_extender_chooses_first_subseq.scss
new file mode 100644
index 0000000000..07aa35bff3
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/73-test_nested_extender_chooses_first_subseq.scss
@@ -0,0 +1,2 @@
+.a .b .c .d .foo {a: b}
+.c .d .a .b .bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/74-test_nested_extender_counts_extended_subselectors.scss b/theme-compiler/tests/resources/sasslang/scss/74-test_nested_extender_counts_extended_subselectors.scss
new file mode 100644
index 0000000000..a3c07d48f9
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/74-test_nested_extender_counts_extended_subselectors.scss
@@ -0,0 +1,2 @@
+.a .bip.bop .foo {a: b}
+.b .bip .bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/75-test_nested_extender_counts_extended_superselectors.scss b/theme-compiler/tests/resources/sasslang/scss/75-test_nested_extender_counts_extended_superselectors.scss
new file mode 100644
index 0000000000..9828564b02
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/75-test_nested_extender_counts_extended_superselectors.scss
@@ -0,0 +1,2 @@
+.a .bip .foo {a: b}
+.b .bip.bop .bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/76-test_nested_extender_doesnt_find_common_selectors_around_adjacent_sibling_selector.scss b/theme-compiler/tests/resources/sasslang/scss/76-test_nested_extender_doesnt_find_common_selectors_around_adjacent_sibling_selector.scss
new file mode 100644
index 0000000000..388c74b3b0
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/76-test_nested_extender_doesnt_find_common_selectors_around_adjacent_sibling_selector.scss
@@ -0,0 +1,2 @@
+a + b c .c1 {a: b}
+a c .c2 {@extend .c1}
diff --git a/theme-compiler/tests/resources/sasslang/scss/77-test_nested_extender_doesnt_find_common_selectors_around_reference_selector.scss b/theme-compiler/tests/resources/sasslang/scss/77-test_nested_extender_doesnt_find_common_selectors_around_reference_selector.scss
new file mode 100644
index 0000000000..66772821e6
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/77-test_nested_extender_doesnt_find_common_selectors_around_reference_selector.scss
@@ -0,0 +1,2 @@
+a /for/ b c .c1 {a: b}
+a c .c2 {@extend .c1}
diff --git a/theme-compiler/tests/resources/sasslang/scss/78-test_nested_extender_doesnt_find_common_selectors_around_sibling_selector.scss b/theme-compiler/tests/resources/sasslang/scss/78-test_nested_extender_doesnt_find_common_selectors_around_sibling_selector.scss
new file mode 100644
index 0000000000..65b65d7d73
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/78-test_nested_extender_doesnt_find_common_selectors_around_sibling_selector.scss
@@ -0,0 +1,2 @@
+a ~ b c .c1 {a: b}
+a c .c2 {@extend .c1}
diff --git a/theme-compiler/tests/resources/sasslang/scss/79-test_nested_extender_finds_common_selectors_around_child_selector.scss b/theme-compiler/tests/resources/sasslang/scss/79-test_nested_extender_finds_common_selectors_around_child_selector.scss
new file mode 100644
index 0000000000..9c0a3b7eaf
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/79-test_nested_extender_finds_common_selectors_around_child_selector.scss
@@ -0,0 +1,2 @@
+a > b c .c1 {a: b}
+a c .c2 {@extend .c1}
diff --git a/theme-compiler/tests/resources/sasslang/scss/8-test_combinator_unification_angle_space.scss b/theme-compiler/tests/resources/sasslang/scss/8-test_combinator_unification_angle_space.scss
new file mode 100644
index 0000000000..ca701f7c07
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/8-test_combinator_unification_angle_space.scss
@@ -0,0 +1,2 @@
+.a.b > x {a: b}
+.a y {@extend x}
diff --git a/theme-compiler/tests/resources/sasslang/scss/80-test_nested_extender_merges_with_same_selector.scss b/theme-compiler/tests/resources/sasslang/scss/80-test_nested_extender_merges_with_same_selector.scss
new file mode 100644
index 0000000000..d959cce374
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/80-test_nested_extender_merges_with_same_selector.scss
@@ -0,0 +1,3 @@
+.foo {
+ .bar {a: b}
+ .baz {@extend .bar} }
diff --git a/theme-compiler/tests/resources/sasslang/scss/81-test_nested_extender_runs_unification.scss b/theme-compiler/tests/resources/sasslang/scss/81-test_nested_extender_runs_unification.scss
new file mode 100644
index 0000000000..32c2c0cc62
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/81-test_nested_extender_runs_unification.scss
@@ -0,0 +1,2 @@
+.foo.bar {a: b}
+foo bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/82-test_nested_extender_unifies_common_subseq.scss b/theme-compiler/tests/resources/sasslang/scss/82-test_nested_extender_unifies_common_subseq.scss
new file mode 100644
index 0000000000..378af3bf83
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/82-test_nested_extender_unifies_common_subseq.scss
@@ -0,0 +1,2 @@
+.a .x .b .y .foo {a: b}
+.a .n .b .m bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/83-test_nested_extender_unifies_common_substring.scss b/theme-compiler/tests/resources/sasslang/scss/83-test_nested_extender_unifies_common_substring.scss
new file mode 100644
index 0000000000..67cae3ea5f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/83-test_nested_extender_unifies_common_substring.scss
@@ -0,0 +1,2 @@
+.baz .bip .bap .bink .foo {a: b}
+.brat .bip .bap bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/84-test_nested_extender_unifies_identical_parents.scss b/theme-compiler/tests/resources/sasslang/scss/84-test_nested_extender_unifies_identical_parents.scss
new file mode 100644
index 0000000000..b910f40896
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/84-test_nested_extender_unifies_identical_parents.scss
@@ -0,0 +1,2 @@
+.baz .bip .foo {a: b}
+.baz .bip bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/85-test_nested_extender_with_child_selector.scss b/theme-compiler/tests/resources/sasslang/scss/85-test_nested_extender_with_child_selector.scss
new file mode 100644
index 0000000000..da249ad564
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/85-test_nested_extender_with_child_selector.scss
@@ -0,0 +1,2 @@
+.baz .foo {a: b}
+foo > bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/86-test_nested_extender_with_child_selector_merges_with_same_selector.scss b/theme-compiler/tests/resources/sasslang/scss/86-test_nested_extender_with_child_selector_merges_with_same_selector.scss
new file mode 100644
index 0000000000..224945cd71
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/86-test_nested_extender_with_child_selector_merges_with_same_selector.scss
@@ -0,0 +1,2 @@
+.foo > .bar .baz {a: b}
+.foo > .bar .bang {@extend .baz}
diff --git a/theme-compiler/tests/resources/sasslang/scss/87-test_nested_extender_with_child_selector_unifies.scss b/theme-compiler/tests/resources/sasslang/scss/87-test_nested_extender_with_child_selector_unifies.scss
new file mode 100644
index 0000000000..747f3bed8a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/87-test_nested_extender_with_child_selector_unifies.scss
@@ -0,0 +1,2 @@
+.baz.foo {a: b}
+foo > bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/88-test_nested_extender_with_early_child_selectors_doesnt_subseq_them.scss b/theme-compiler/tests/resources/sasslang/scss/88-test_nested_extender_with_early_child_selectors_doesnt_subseq_them.scss
new file mode 100644
index 0000000000..f2b8c6c07b
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/88-test_nested_extender_with_early_child_selectors_doesnt_subseq_them.scss
@@ -0,0 +1,4 @@
+.foo {
+ .bar {a: b}
+ .bip > .baz {@extend .bar}
+}
diff --git a/theme-compiler/tests/resources/sasslang/scss/89-test_nested_extender_with_hacky_selector.scss b/theme-compiler/tests/resources/sasslang/scss/89-test_nested_extender_with_hacky_selector.scss
new file mode 100644
index 0000000000..82b4526fee
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/89-test_nested_extender_with_hacky_selector.scss
@@ -0,0 +1,2 @@
+.baz .foo {a: b}
+foo + > > + bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/9-test_combinator_unification_double_angle.scss b/theme-compiler/tests/resources/sasslang/scss/9-test_combinator_unification_double_angle.scss
new file mode 100644
index 0000000000..74191429eb
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/9-test_combinator_unification_double_angle.scss
@@ -0,0 +1,2 @@
+.a.b > x {a: b}
+.b > y {@extend x}
diff --git a/theme-compiler/tests/resources/sasslang/scss/90-test_nested_extender_with_sibling_selector.scss b/theme-compiler/tests/resources/sasslang/scss/90-test_nested_extender_with_sibling_selector.scss
new file mode 100644
index 0000000000..b9d495ce76
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/90-test_nested_extender_with_sibling_selector.scss
@@ -0,0 +1,2 @@
+.baz .foo {a: b}
+foo + bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/91-test_nested_selector_with_child_selector_hack_extendee.scss b/theme-compiler/tests/resources/sasslang/scss/91-test_nested_selector_with_child_selector_hack_extendee.scss
new file mode 100644
index 0000000000..928bc64f93
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/91-test_nested_selector_with_child_selector_hack_extendee.scss
@@ -0,0 +1,2 @@
+> .foo {a: b}
+foo bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/92-test_nested_selector_with_child_selector_hack_extender.scss b/theme-compiler/tests/resources/sasslang/scss/92-test_nested_selector_with_child_selector_hack_extender.scss
new file mode 100644
index 0000000000..d220fc8706
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/92-test_nested_selector_with_child_selector_hack_extender.scss
@@ -0,0 +1,2 @@
+.foo .bar {a: b}
+> foo bar {@extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/93-test_nested_selector_with_child_selector_hack_extender_and_extendee.scss b/theme-compiler/tests/resources/sasslang/scss/93-test_nested_selector_with_child_selector_hack_extender_and_extendee.scss
new file mode 100644
index 0000000000..9c890d9cb6
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/93-test_nested_selector_with_child_selector_hack_extender_and_extendee.scss
@@ -0,0 +1,2 @@
+> .foo {a: b}
+> foo bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/94-test_nested_selector_with_child_selector_hack_extender_and_extendee_and_newline.scss b/theme-compiler/tests/resources/sasslang/scss/94-test_nested_selector_with_child_selector_hack_extender_and_extendee_and_newline.scss
new file mode 100644
index 0000000000..b792d69f1f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/94-test_nested_selector_with_child_selector_hack_extender_and_extendee_and_newline.scss
@@ -0,0 +1,3 @@
+> .foo {a: b}
+flip,
+> foo bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss b/theme-compiler/tests/resources/sasslang/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss
new file mode 100644
index 0000000000..73f6254f21
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/95-test_nested_selector_with_child_selector_hack_extender_and_sibling_selector_extendee.scss
@@ -0,0 +1,2 @@
+~ .foo {a: b}
+> foo bar {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/96-test_nested_target.scss b/theme-compiler/tests/resources/sasslang/scss/96-test_nested_target.scss
new file mode 100644
index 0000000000..6662dea791
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/96-test_nested_target.scss
@@ -0,0 +1,2 @@
+.foo .bar {a: b}
+.baz {@extend .bar}
diff --git a/theme-compiler/tests/resources/sasslang/scss/97-test_newline_near_combinator.scss b/theme-compiler/tests/resources/sasslang/scss/97-test_newline_near_combinator.scss
new file mode 100644
index 0000000000..b8a6026af4
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/97-test_newline_near_combinator.scss
@@ -0,0 +1,3 @@
+.a +
+.b x {a: b}
+.c y {@extend x}
diff --git a/theme-compiler/tests/resources/sasslang/scss/98-test_not_remains_at_end_of_selector.scss b/theme-compiler/tests/resources/sasslang/scss/98-test_not_remains_at_end_of_selector.scss
new file mode 100644
index 0000000000..c1af8b1b2a
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/98-test_not_remains_at_end_of_selector.scss
@@ -0,0 +1,2 @@
+.foo:not(.bar) {a: b}
+.baz {@extend .foo}
diff --git a/theme-compiler/tests/resources/sasslang/scss/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.scss b/theme-compiler/tests/resources/sasslang/scss/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.scss
new file mode 100644
index 0000000000..551764036f
--- /dev/null
+++ b/theme-compiler/tests/resources/sasslang/scss/99-test_optional_extend_does_not_warn_when_extendee_doesnt_exist.scss
@@ -0,0 +1 @@
+.foo {@extend .bar !optional}