varshluck / closure-stylesheets

Automatically exported from code.google.com/p/closure-stylesheets
Apache License 2.0
0 stars 0 forks source link

Problem using mixins or conditionals inside a rule. #24

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Source files:

--- menu.gss ---
li.social {
    @mixin debug_italics();
    padding-left: 15px;
}

--- 00-debug.gss ---
@if (DEBUG) {
    @defmixin debug_italics() {
            font-style: italics;
    }
} @else {
    @defmixin debug_italics() {
        /* Nothing. */
    }
}

-- OR --

li.social {
    @if (DEBUG) {
        font-style: italic;
    }
    padding-left: 15px;
}

-------------------------------
Neither work, the first example results in:

Compiler internal error: com.google.common.css.compiler.ast.CssMixinNode cannot 
be cast to com.google.common.css.compiler.ast.CssDeclarationNode
java.lang.ClassCastException: com.google.common.css.compiler.ast.CssMixinNode 
cannot be cast to com.google.common.css.compiler.ast.CssDeclarationNode
    at com.google.common.css.compiler.passes.DisallowDuplicateDeclarations.enterRuleset(DisallowDuplicateDeclarations.java:64)
    at com.google.common.css.compiler.ast.DefaultVisitController$VisitRulesetState.doVisit(DefaultVisitController.java:762)
    at com.google.common.css.compiler.ast.DefaultVisitController.startVisit(DefaultVisitController.java:1762)
    at com.google.common.css.compiler.passes.DisallowDuplicateDeclarations.runPass(DisallowDuplicateDeclarations.java:75)
    at com.google.common.css.compiler.passes.PassRunner.runPasses(PassRunner.java:142)
    at com.google.common.css.compiler.commandline.DefaultCommandLineCompiler.parseAndPrint(DefaultCommandLineCompiler.java:106)
    at com.google.common.css.compiler.commandline.DefaultCommandLineCompiler.compile(DefaultCommandLineCompiler.java:94)
    at com.google.common.css.compiler.commandline.DefaultCommandLineCompiler.execute(DefaultCommandLineCompiler.java:129)
    at com.google.common.css.compiler.commandline.ClosureCommandLineCompiler.executeJob(ClosureCommandLineCompiler.java:286)
    at com.google.common.css.compiler.commandline.ClosureCommandLineCompiler.main(ClosureCommandLineCompiler.java:359)

--------------------

The second results in:

Compiler internal error: 
com.google.common.css.compiler.ast.CssUnknownAtRuleNode cannot be cast to 
com.google.common.css.compiler.ast.CssDeclarationNode
java.lang.ClassCastException: 
com.google.common.css.compiler.ast.CssUnknownAtRuleNode cannot be cast to 
com.google.common.css.compiler.ast.CssDeclarationNode
    at com.google.common.css.compiler.passes.DisallowDuplicateDeclarations.enterRuleset(DisallowDuplicateDeclarations.java:64)
    at com.google.common.css.compiler.ast.DefaultVisitController$VisitRulesetState.doVisit(DefaultVisitController.java:762)
    at com.google.common.css.compiler.ast.DefaultVisitController.startVisit(DefaultVisitController.java:1762)
    at com.google.common.css.compiler.passes.DisallowDuplicateDeclarations.runPass(DisallowDuplicateDeclarations.java:75)
    at com.google.common.css.compiler.passes.PassRunner.runPasses(PassRunner.java:142)
    at com.google.common.css.compiler.commandline.DefaultCommandLineCompiler.parseAndPrint(DefaultCommandLineCompiler.java:106)
    at com.google.common.css.compiler.commandline.DefaultCommandLineCompiler.compile(DefaultCommandLineCompiler.java:94)
    at com.google.common.css.compiler.commandline.DefaultCommandLineCompiler.execute(DefaultCommandLineCompiler.java:129)
    at com.google.common.css.compiler.commandline.ClosureCommandLineCompiler.executeJob(ClosureCommandLineCompiler.java:286)
    at com.google.common.css.compiler.commandline.ClosureCommandLineCompiler.main(ClosureCommandLineCompiler.java:359)

------------------

I've tried this with the tip-of-the-tree version, the latest downloadable 
version, and the version before that, all with the same errors. What do?

Original issue reported on code.google.com by SeligArkin@gmail.com on 22 Jul 2012 at 10:23